mirror of
https://github.com/ToruNiina/toml11.git
synced 2025-09-18 10:28:09 +08:00
1132 lines
159 KiB
XML
1132 lines
159 KiB
XML
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>reference on toml11</title><link>https://toruniina.github.io/toml11/ja/docs/reference/</link><description>Recent content in reference on toml11</description><generator>Hugo</generator><language>ja</language><atom:link href="https://toruniina.github.io/toml11/ja/docs/reference/index.xml" rel="self" type="application/rss+xml"/><item><title>color.hpp</title><link>https://toruniina.github.io/toml11/ja/docs/reference/color/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://toruniina.github.io/toml11/ja/docs/reference/color/</guid><description><h1 id="colorhpp">
|
|
color.hpp
|
|
<a class="anchor" href="#colorhpp">#</a>
|
|
</h1>
|
|
<p><code>color.hpp</code>では、エラーメッセージの色付けに関する関数が定義されます。</p>
|
|
<p>色はANSIエスケープシーケンスによって指定されます。
|
|
ANSIエスケープシーケンスをサポートしていないターミナルやその他の出力先では、読みにくくなる可能性があります。</p>
|
|
<h2 id="マクロ">
|
|
マクロ
|
|
<a class="anchor" href="#%e3%83%9e%e3%82%af%e3%83%ad">#</a>
|
|
</h2>
|
|
<h3 id="toml11_colorize_error_message">
|
|
<code>TOML11_COLORIZE_ERROR_MESSAGE</code>
|
|
<a class="anchor" href="#toml11_colorize_error_message">#</a>
|
|
</h3>
|
|
<p>コンパイル時にこのマクロが定義されていた場合(<code>-DTOML11_COLORIZE_ERROR_MESASGE</code>)、
|
|
デフォルトでエラーメッセージに色が付きます。</p>
|
|
<p>定義されていなかった場合、デフォルトでは色は付きません。以下の <code>toml::color::enable()</code> を
|
|
使用して指定する必要があります。</p>
|
|
<h3 id="toml11_use_thread_local_colorization">
|
|
<code>TOML11_USE_THREAD_LOCAL_COLORIZATION</code>
|
|
<a class="anchor" href="#toml11_use_thread_local_colorization">#</a>
|
|
</h3>
|
|
<p>コンパイル時にこのマクロが定義されていた場合(<code>-DTOML11_COLORIZE_ERROR_MESASGE</code>)、
|
|
<code>toml::color::enable</code>の設定が<code>thread_local</code>になります。
|
|
この場合、<code>toml::color::enable()</code>や<code>toml::color::disable()</code>は、それを呼び出したスレッドでの設定しか変更しません。
|
|
つまり、新しいスレッドを起動した際にデフォルトと異なる設定にしたい場合は、再度設定が必要になります。
|
|
その代わり、<code>toml::color::enable()</code>や<code>toml::color::disable()</code>はスレッドセーフになります。</p>
|
|
<p>デフォルトでは設定はグローバルです。
|
|
グローバルの場合、一つのスレッドが<code>toml::color::enable()</code>を実行した場合、すべてのスレッドで色が付きます。
|
|
ただし、あるスレッドが<code>enable()</code>または<code>disable()</code>を実行している間に別のスレッドが<code>enable()</code>、<code>disable()</code>、<code>should_color()</code>を実行した場合、その結果は未定義です。</p>
|
|
<h2 id="関数">
|
|
関数
|
|
<a class="anchor" href="#%e9%96%a2%e6%95%b0">#</a>
|
|
</h2>
|
|
<h3 id="enable">
|
|
<code>enable()</code>
|
|
<a class="anchor" href="#enable">#</a>
|
|
</h3>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> toml {
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> color {
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#a6e22e">enable</span>();
|
|
</span></span><span style="display:flex;"><span>} <span style="color:#75715e">// color
|
|
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>} <span style="color:#75715e">// toml
|
|
</span></span></span></code></pre></div><p>ANSIエスケープシーケンスによる色付けを行うよう設定します。</p>
|
|
<h4 id="例">
|
|
例
|
|
<a class="anchor" href="#%e4%be%8b">#</a>
|
|
</h4>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e">&lt;toml.hpp&gt;</span><span style="color:#75715e">
|
|
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>()
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span> toml<span style="color:#f92672">::</span>color<span style="color:#f92672">::</span>enable(); <span style="color:#75715e">// この後の全てのエラーがカラーになります。
|
|
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">auto</span> input <span style="color:#f92672">=</span> toml<span style="color:#f92672">::</span>parse(<span style="color:#e6db74">&#34;input.toml&#34;</span>);
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
|
|
</span></span><span style="display:flex;"><span>}
|
|
</span></span></code></pre></div><h3 id="disable">
|
|
<code>disable()</code>
|
|
<a class="anchor" href="#disable">#</a>
|
|
</h3>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> toml {
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> color {
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#a6e22e">disable</span>();
|
|
</span></span><span style="display:flex;"><span>} <span style="color:#75715e">// color
|
|
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>} <span style="color:#75715e">// toml
|
|
</span></span></span></code></pre></div><p>ANSIエスケープシーケンスによる色付けを行わないよう設定します。</p></description></item><item><title>comments.hpp</title><link>https://toruniina.github.io/toml11/ja/docs/reference/comments/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://toruniina.github.io/toml11/ja/docs/reference/comments/</guid><description><h1 id="commentshpp">
|
|
comments.hpp
|
|
<a class="anchor" href="#commentshpp">#</a>
|
|
</h1>
|
|
<p><code>color.hpp</code>では、コメントを保持するクラスが提供されます。</p>
|
|
<h1 id="tomlpreserve_comments">
|
|
<code>toml::preserve_comments</code>
|
|
<a class="anchor" href="#tomlpreserve_comments">#</a>
|
|
</h1>
|
|
<p><code>preserve_comments</code>は、コメントを保持するコンテナです。</p>
|
|
<p><code>std::vector&lt;std::string&gt;</code>が持つメンバ関数を全て持っています。</p>
|
|
<p>コメントは<code>std::string</code>として保持されます。
|
|
先頭が<code>#</code>でない場合、出力時に<code>#</code>が補われます。コンテナに要素として追加する段階では補われません。
|
|
スペースは補われないため、<code>#</code>の直後にスペースを入れたい場合、コメントをスペースから始めるか、<code>#</code>を含めたコメントを渡す必要があります。</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> toml
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">class</span> <span style="color:#a6e22e">preserve_comments</span>;
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">==</span>(<span style="color:#66d9ef">const</span> preserve_comments<span style="color:#f92672">&amp;</span>, <span style="color:#66d9ef">const</span> preserve_comments<span style="color:#f92672">&amp;</span>);
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">!=</span>(<span style="color:#66d9ef">const</span> preserve_comments<span style="color:#f92672">&amp;</span>, <span style="color:#66d9ef">const</span> preserve_comments<span style="color:#f92672">&amp;</span>);
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">&lt;</span> (<span style="color:#66d9ef">const</span> preserve_comments<span style="color:#f92672">&amp;</span>, <span style="color:#66d9ef">const</span> preserve_comments<span style="color:#f92672">&amp;</span>);
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">&lt;=</span>(<span style="color:#66d9ef">const</span> preserve_comments<span style="color:#f92672">&amp;</span>, <span style="color:#66d9ef">const</span> preserve_comments<span style="color:#f92672">&amp;</span>);
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">&gt;</span> (<span style="color:#66d9ef">const</span> preserve_comments<span style="color:#f92672">&amp;</span>, <span style="color:#66d9ef">const</span> preserve_comments<span style="color:#f92672">&amp;</span>);
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">&gt;=</span>(<span style="color:#66d9ef">const</span> preserve_comments<span style="color:#f92672">&amp;</span>, <span style="color:#66d9ef">const</span> preserve_comments<span style="color:#f92672">&amp;</span>);
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#a6e22e">swap</span>(preserve_comments<span style="color:#f92672">&amp;</span>, preserve_comments<span style="color:#f92672">&amp;</span>);
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#a6e22e">swap</span>(preserve_comments<span style="color:#f92672">&amp;</span>, std<span style="color:#f92672">::</span>vector<span style="color:#f92672">&lt;</span>std<span style="color:#f92672">::</span>string<span style="color:#f92672">&gt;&amp;</span>);
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#a6e22e">swap</span>(std<span style="color:#f92672">::</span>vector<span style="color:#f92672">&lt;</span>std<span style="color:#f92672">::</span>string<span style="color:#f92672">&gt;&amp;</span>, preserve_comments<span style="color:#f92672">&amp;</span>);
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span>std<span style="color:#f92672">::</span>ostream<span style="color:#f92672">&amp;</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">&lt;&lt;</span>(std<span style="color:#f92672">::</span>ostream<span style="color:#f92672">&amp;</span>, <span style="color:#66d9ef">const</span> preserve_comments<span style="color:#f92672">&amp;</span>);
|
|
</span></span><span style="display:flex;"><span>} <span style="color:#75715e">//toml
|
|
</span></span></span></code></pre></div><h2 id="メンバ型">
|
|
メンバ型
|
|
<a class="anchor" href="#%e3%83%a1%e3%83%b3%e3%83%90%e5%9e%8b">#</a>
|
|
</h2>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">using</span> container_type <span style="color:#f92672">=</span> std<span style="color:#f92672">::</span>vector<span style="color:#f92672">&lt;</span>std<span style="color:#f92672">::</span>string<span style="color:#f92672">&gt;</span>;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> size_type <span style="color:#f92672">=</span> container_type<span style="color:#f92672">::</span>size_type;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> difference_type <span style="color:#f92672">=</span> container_type<span style="color:#f92672">::</span>difference_type;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> value_type <span style="color:#f92672">=</span> container_type<span style="color:#f92672">::</span>value_type;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> reference <span style="color:#f92672">=</span> container_type<span style="color:#f92672">::</span>reference;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> const_reference <span style="color:#f92672">=</span> container_type<span style="color:#f92672">::</span>const_reference;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> pointer <span style="color:#f92672">=</span> container_type<span style="color:#f92672">::</span>pointer;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> const_pointer <span style="color:#f92672">=</span> container_type<span style="color:#f92672">::</span>const_pointer;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> iterator <span style="color:#f92672">=</span> container_type<span style="color:#f92672">::</span>iterator;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> const_iterator <span style="color:#f92672">=</span> container_type<span style="color:#f92672">::</span>const_iterator;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> reverse_iterator <span style="color:#f92672">=</span> container_type<span style="color:#f92672">::</span>reverse_iterator;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> const_reverse_iterator <span style="color:#f92672">=</span> container_type<span style="color:#f92672">::</span>const_reverse_iterator;
|
|
</span></span></code></pre></div><h2 id="メンバ関数">
|
|
メンバ関数
|
|
<a class="anchor" href="#%e3%83%a1%e3%83%b3%e3%83%90%e9%96%a2%e6%95%b0">#</a>
|
|
</h2>
|
|
<h3 id="デフォルトコンストラクタ">
|
|
デフォルトコンストラクタ
|
|
<a class="anchor" href="#%e3%83%87%e3%83%95%e3%82%a9%e3%83%ab%e3%83%88%e3%82%b3%e3%83%b3%e3%82%b9%e3%83%88%e3%83%a9%e3%82%af%e3%82%bf">#</a>
|
|
</h3>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span>preserve_comments() <span style="color:#f92672">=</span> <span style="color:#66d9ef">default</span>;
|
|
</span></span></code></pre></div><p>空の<code>preserve_comments</code>を構築します。</p></description></item><item><title>conversion.hpp</title><link>https://toruniina.github.io/toml11/ja/docs/reference/conversion/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://toruniina.github.io/toml11/ja/docs/reference/conversion/</guid><description><h1 id="conversionhpp">
|
|
conversion.hpp
|
|
<a class="anchor" href="#conversionhpp">#</a>
|
|
</h1>
|
|
<p><code>toml::get</code>や<code>toml::find</code>でユーザー定義型をサポートするための変換関数を自動定義するマクロを提供します。</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span>TOML11_DEFINE_CONVERSION_NON_INTRUSIVE(NAME, ...)
|
|
</span></span></code></pre></div><h2 id="例">
|
|
例
|
|
<a class="anchor" href="#%e4%be%8b">#</a>
|
|
</h2>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> foo
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">struct</span> <span style="color:#a6e22e">Foo</span>
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>string s;
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">double</span> d;
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> i;
|
|
</span></span><span style="display:flex;"><span>};
|
|
</span></span><span style="display:flex;"><span>} <span style="color:#75715e">// foo
|
|
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
|
|
</span></span><span style="display:flex;"><span>TOML11_DEFINE_CONVERSION_NON_INTRUSIVE(foo<span style="color:#f92672">::</span>Foo, s, d, i)
|
|
</span></span></code></pre></div><h1 id="関連項目">
|
|
関連項目
|
|
<a class="anchor" href="#%e9%96%a2%e9%80%a3%e9%a0%85%e7%9b%ae">#</a>
|
|
</h1>
|
|
<ul>
|
|
<li><a href="https://toruniina.github.io/toml11/ja/docs/reference/from/">from.hpp</a></li>
|
|
<li><a href="https://toruniina.github.io/toml11/ja/docs/reference/into/">into.hpp</a></li>
|
|
</ul></description></item><item><title>datetime.hpp</title><link>https://toruniina.github.io/toml11/ja/docs/reference/datetime/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://toruniina.github.io/toml11/ja/docs/reference/datetime/</guid><description><h1 id="datetimehpp">
|
|
datetime.hpp
|
|
<a class="anchor" href="#datetimehpp">#</a>
|
|
</h1>
|
|
<p>TOMLの<code>datetime</code>で使用される、日時情報を保存するクラスを定義します。</p>
|
|
<h1 id="enum-class-month_t">
|
|
<code>enum class month_t</code>
|
|
<a class="anchor" href="#enum-class-month_t">#</a>
|
|
</h1>
|
|
<p>月を指定する<code>enum class</code>です。</p>
|
|
<p><code>std::tm</code>との関係で、<code>local_date</code>は1月を<code>0</code>としています。
|
|
混乱を避けるため、月の名前で指定できるよう<code>month_t</code>が用意されています。</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> toml
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">enum</span> <span style="color:#66d9ef">class</span> <span style="color:#a6e22e">month_t</span> <span style="color:#f92672">:</span> std<span style="color:#f92672">::</span><span style="color:#66d9ef">uint8_t</span>
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span> Jan <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>,
|
|
</span></span><span style="display:flex;"><span> Feb <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>,
|
|
</span></span><span style="display:flex;"><span> Mar <span style="color:#f92672">=</span> <span style="color:#ae81ff">2</span>,
|
|
</span></span><span style="display:flex;"><span> Apr <span style="color:#f92672">=</span> <span style="color:#ae81ff">3</span>,
|
|
</span></span><span style="display:flex;"><span> May <span style="color:#f92672">=</span> <span style="color:#ae81ff">4</span>,
|
|
</span></span><span style="display:flex;"><span> Jun <span style="color:#f92672">=</span> <span style="color:#ae81ff">5</span>,
|
|
</span></span><span style="display:flex;"><span> Jul <span style="color:#f92672">=</span> <span style="color:#ae81ff">6</span>,
|
|
</span></span><span style="display:flex;"><span> Aug <span style="color:#f92672">=</span> <span style="color:#ae81ff">7</span>,
|
|
</span></span><span style="display:flex;"><span> Sep <span style="color:#f92672">=</span> <span style="color:#ae81ff">8</span>,
|
|
</span></span><span style="display:flex;"><span> Oct <span style="color:#f92672">=</span> <span style="color:#ae81ff">9</span>,
|
|
</span></span><span style="display:flex;"><span> Nov <span style="color:#f92672">=</span> <span style="color:#ae81ff">10</span>,
|
|
</span></span><span style="display:flex;"><span> Dec <span style="color:#f92672">=</span> <span style="color:#ae81ff">11</span>
|
|
</span></span><span style="display:flex;"><span>};
|
|
</span></span><span style="display:flex;"><span>}
|
|
</span></span></code></pre></div><h1 id="local_date">
|
|
<code>local_date</code>
|
|
<a class="anchor" href="#local_date">#</a>
|
|
</h1>
|
|
<p>日付を保持する構造体です。</p>
|
|
<p><code>year</code>は西暦を、<code>month</code>は<code>std::tm</code>との対応のため1月を<code>0</code>として、<code>day</code>は日付を保持します。</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> toml
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">struct</span> <span style="color:#a6e22e">local_date</span>
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span><span style="color:#66d9ef">int16_t</span> year;
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span><span style="color:#66d9ef">uint8_t</span> month;
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span><span style="color:#66d9ef">uint8_t</span> day;
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span> local_date() <span style="color:#f92672">=</span> <span style="color:#66d9ef">default</span>;
|
|
</span></span><span style="display:flex;"><span> <span style="color:#f92672">~</span>local_date() <span style="color:#f92672">=</span> <span style="color:#66d9ef">default</span>;
|
|
</span></span><span style="display:flex;"><span> local_date(local_date <span style="color:#66d9ef">const</span><span style="color:#f92672">&amp;</span>) <span style="color:#f92672">=</span> <span style="color:#66d9ef">default</span>;
|
|
</span></span><span style="display:flex;"><span> local_date(local_date<span style="color:#f92672">&amp;&amp;</span>) <span style="color:#f92672">=</span> <span style="color:#66d9ef">default</span>;
|
|
</span></span><span style="display:flex;"><span> local_date<span style="color:#f92672">&amp;</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">=</span>(local_date <span style="color:#66d9ef">const</span><span style="color:#f92672">&amp;</span>) <span style="color:#f92672">=</span> <span style="color:#66d9ef">default</span>;
|
|
</span></span><span style="display:flex;"><span> local_date<span style="color:#f92672">&amp;</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">=</span>(local_date<span style="color:#f92672">&amp;&amp;</span>) <span style="color:#f92672">=</span> <span style="color:#66d9ef">default</span>;
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span> local_date(<span style="color:#66d9ef">int</span> y, month_t m, <span style="color:#66d9ef">int</span> d);
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">explicit</span> <span style="color:#a6e22e">local_date</span>(<span style="color:#66d9ef">const</span> std<span style="color:#f92672">::</span>tm<span style="color:#f92672">&amp;</span> t);
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">explicit</span> <span style="color:#a6e22e">local_date</span>(<span style="color:#66d9ef">const</span> std<span style="color:#f92672">::</span>chrono<span style="color:#f92672">::</span>system_clock<span style="color:#f92672">::</span>time_point<span style="color:#f92672">&amp;</span> tp);
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">explicit</span> <span style="color:#a6e22e">local_date</span>(<span style="color:#66d9ef">const</span> std<span style="color:#f92672">::</span>time_t t);
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">operator</span> std<span style="color:#f92672">::</span>chrono<span style="color:#f92672">::</span>system_clock<span style="color:#f92672">::</span>time_point() <span style="color:#66d9ef">const</span>;
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">operator</span> std<span style="color:#f92672">::</span>time_t() <span style="color:#66d9ef">const</span>;
|
|
</span></span><span style="display:flex;"><span>};
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">==</span>(<span style="color:#66d9ef">const</span> local_date<span style="color:#f92672">&amp;</span>, <span style="color:#66d9ef">const</span> local_date<span style="color:#f92672">&amp;</span>);
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">!=</span>(<span style="color:#66d9ef">const</span> local_date<span style="color:#f92672">&amp;</span>, <span style="color:#66d9ef">const</span> local_date<span style="color:#f92672">&amp;</span>);
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">&lt;</span> (<span style="color:#66d9ef">const</span> local_date<span style="color:#f92672">&amp;</span>, <span style="color:#66d9ef">const</span> local_date<span style="color:#f92672">&amp;</span>);
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">&lt;=</span>(<span style="color:#66d9ef">const</span> local_date<span style="color:#f92672">&amp;</span>, <span style="color:#66d9ef">const</span> local_date<span style="color:#f92672">&amp;</span>);
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">&gt;</span> (<span style="color:#66d9ef">const</span> local_date<span style="color:#f92672">&amp;</span>, <span style="color:#66d9ef">const</span> local_date<span style="color:#f92672">&amp;</span>);
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">&gt;=</span>(<span style="color:#66d9ef">const</span> local_date<span style="color:#f92672">&amp;</span>, <span style="color:#66d9ef">const</span> local_date<span style="color:#f92672">&amp;</span>);
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span>std<span style="color:#f92672">::</span>ostream<span style="color:#f92672">&amp;</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">&lt;&lt;</span>(std<span style="color:#f92672">::</span>ostream<span style="color:#f92672">&amp;</span> os, <span style="color:#66d9ef">const</span> local_date<span style="color:#f92672">&amp;</span> date);
|
|
</span></span><span style="display:flex;"><span>std<span style="color:#f92672">::</span>string to_string(<span style="color:#66d9ef">const</span> local_date<span style="color:#f92672">&amp;</span> date);
|
|
</span></span><span style="display:flex;"><span>}
|
|
</span></span></code></pre></div><h2 id="メンバ変数">
|
|
メンバ変数
|
|
<a class="anchor" href="#%e3%83%a1%e3%83%b3%e3%83%90%e5%a4%89%e6%95%b0">#</a>
|
|
</h2>
|
|
<h3 id="year">
|
|
<code>year</code>
|
|
<a class="anchor" href="#year">#</a>
|
|
</h3>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span>std<span style="color:#f92672">::</span><span style="color:#66d9ef">int16_t</span> year;
|
|
</span></span></code></pre></div><p>西暦です。オフセットはありません。<code>2024</code>年は<code>2024</code>です。</p></description></item><item><title>error_info.hpp</title><link>https://toruniina.github.io/toml11/ja/docs/reference/error_info/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://toruniina.github.io/toml11/ja/docs/reference/error_info/</guid><description><h1 id="error_infohpp">
|
|
error_info.hpp
|
|
<a class="anchor" href="#error_infohpp">#</a>
|
|
</h1>
|
|
<p><code>error_info.hpp</code>では、<code>error_info</code>と、それをフォーマットする関数が定義されます。</p>
|
|
<h1 id="tomlerror_info">
|
|
<code>toml::error_info</code>
|
|
<a class="anchor" href="#tomlerror_info">#</a>
|
|
</h1>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> toml
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">struct</span> <span style="color:#a6e22e">error_info</span>
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span> error_info(std<span style="color:#f92672">::</span>string t, source_location l, std<span style="color:#f92672">::</span>string m, std<span style="color:#f92672">::</span>string s <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;&#34;</span>);
|
|
</span></span><span style="display:flex;"><span> error_info(std<span style="color:#f92672">::</span>string t, std<span style="color:#f92672">::</span>vector<span style="color:#f92672">&lt;</span>std<span style="color:#f92672">::</span>pair<span style="color:#f92672">&lt;</span>source_location, std<span style="color:#f92672">::</span>string<span style="color:#f92672">&gt;&gt;</span> l, std<span style="color:#f92672">::</span>string s <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;&#34;</span>);
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>string <span style="color:#66d9ef">const</span><span style="color:#f92672">&amp;</span> title() <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>string <span style="color:#f92672">&amp;</span> title() <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>vector<span style="color:#f92672">&lt;</span>std<span style="color:#f92672">::</span>pair<span style="color:#f92672">&lt;</span>source_location, std<span style="color:#f92672">::</span>string<span style="color:#f92672">&gt;&gt;</span> <span style="color:#66d9ef">const</span><span style="color:#f92672">&amp;</span> locations() <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">void</span> <span style="color:#a6e22e">add_locations</span>(source_location loc, std<span style="color:#f92672">::</span>string msg) <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>string <span style="color:#66d9ef">const</span><span style="color:#f92672">&amp;</span> suffix() <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>string <span style="color:#f92672">&amp;</span> suffix() <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span>};
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> ... Ts<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span>error_info make_error_info(
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>string title, source_location loc, std<span style="color:#f92672">::</span>string msg, Ts<span style="color:#f92672">&amp;&amp;</span> ... tail);
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span>std<span style="color:#f92672">::</span>string format_error(<span style="color:#66d9ef">const</span> std<span style="color:#f92672">::</span>string<span style="color:#f92672">&amp;</span> errkind, <span style="color:#66d9ef">const</span> error_info<span style="color:#f92672">&amp;</span> err);
|
|
</span></span><span style="display:flex;"><span>std<span style="color:#f92672">::</span>string format_error(<span style="color:#66d9ef">const</span> error_info<span style="color:#f92672">&amp;</span> err);
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> ... Ts<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span>std<span style="color:#f92672">::</span>string format_error(std<span style="color:#f92672">::</span>string title,
|
|
</span></span><span style="display:flex;"><span> source_location loc, std<span style="color:#f92672">::</span>string msg, Ts<span style="color:#f92672">&amp;&amp;</span> ... tail);
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span>std<span style="color:#f92672">::</span>ostream<span style="color:#f92672">&amp;</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">&lt;&lt;</span>(std<span style="color:#f92672">::</span>ostream<span style="color:#f92672">&amp;</span> os, <span style="color:#66d9ef">const</span> error_info<span style="color:#f92672">&amp;</span> e);
|
|
</span></span><span style="display:flex;"><span>}
|
|
</span></span></code></pre></div><h2 id="メンバ関数">
|
|
メンバ関数
|
|
<a class="anchor" href="#%e3%83%a1%e3%83%b3%e3%83%90%e9%96%a2%e6%95%b0">#</a>
|
|
</h2>
|
|
<h3 id="コンストラクタtitle-loc-msg-suffix">
|
|
コンストラクタ(<code>title, loc, msg, suffix</code>)
|
|
<a class="anchor" href="#%e3%82%b3%e3%83%b3%e3%82%b9%e3%83%88%e3%83%a9%e3%82%af%e3%82%bftitle-loc-msg-suffix">#</a>
|
|
</h3>
|
|
<p>指定されたタイトル、位置情報、メッセージ、suffixから<code>error_info</code>を構築します。</p></description></item><item><title>exception.hpp</title><link>https://toruniina.github.io/toml11/ja/docs/reference/exception/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://toruniina.github.io/toml11/ja/docs/reference/exception/</guid><description><h1 id="exceptionhpp">
|
|
exception.hpp
|
|
<a class="anchor" href="#exceptionhpp">#</a>
|
|
</h1>
|
|
<h1 id="tomlexception">
|
|
<code>toml::exception</code>
|
|
<a class="anchor" href="#tomlexception">#</a>
|
|
</h1>
|
|
<p>toml11で定義される例外型の基底クラスです。</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> toml
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">struct</span> <span style="color:#a6e22e">exception</span> <span style="color:#f92672">:</span> <span style="color:#66d9ef">public</span> std<span style="color:#f92672">::</span>exception
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">public</span><span style="color:#f92672">:</span>
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">virtual</span> <span style="color:#f92672">~</span>exception() <span style="color:#66d9ef">noexcept</span> <span style="color:#66d9ef">override</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">default</span>;
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">virtual</span> <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span><span style="color:#f92672">*</span> <span style="color:#a6e22e">what</span>() <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">noexcept</span> <span style="color:#66d9ef">override</span> {<span style="color:#66d9ef">return</span> <span style="color:#e6db74">&#34;&#34;</span>;}
|
|
</span></span><span style="display:flex;"><span>};
|
|
</span></span><span style="display:flex;"><span>} <span style="color:#75715e">// toml
|
|
</span></span></span></code></pre></div><h2 id="メンバ関数">
|
|
メンバ関数
|
|
<a class="anchor" href="#%e3%83%a1%e3%83%b3%e3%83%90%e9%96%a2%e6%95%b0">#</a>
|
|
</h2>
|
|
<h3 id="デストラクタ">
|
|
デストラクタ
|
|
<a class="anchor" href="#%e3%83%87%e3%82%b9%e3%83%88%e3%83%a9%e3%82%af%e3%82%bf">#</a>
|
|
</h3>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">virtual</span> <span style="color:#f92672">~</span>exception() <span style="color:#66d9ef">noexcept</span> <span style="color:#66d9ef">override</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">default</span>;
|
|
</span></span></code></pre></div><p>派生する際に上書きします。</p>
|
|
<h3 id="what">
|
|
<code>what</code>
|
|
<a class="anchor" href="#what">#</a>
|
|
</h3>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">virtual</span> <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span><span style="color:#f92672">*</span> <span style="color:#a6e22e">what</span>() <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">noexcept</span> <span style="color:#66d9ef">override</span> {<span style="color:#66d9ef">return</span> <span style="color:#e6db74">&#34;&#34;</span>;}
|
|
</span></span></code></pre></div><p>エラーメッセージを返します。派生する際に上書きします。</p></description></item><item><title>find.hpp</title><link>https://toruniina.github.io/toml11/ja/docs/reference/find/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://toruniina.github.io/toml11/ja/docs/reference/find/</guid><description><h1 id="findhpp">
|
|
find.hpp
|
|
<a class="anchor" href="#findhpp">#</a>
|
|
</h1>
|
|
<p><code>toml::value</code>から値を検索し、同時に(必要な場合)型変換を行う関数です。</p>
|
|
<blockquote class="book-hint info">
|
|
<code>toml::value</code> は格納する型を変更でき、<code>toml::find</code>はそれらに対応しているので、
|
|
厳密には全て <code>toml::basic_value&lt;TC&gt;</code> が使われています。ただしこれでは冗長なので、
|
|
関数の宣言と特に区別しなければならない場合を除いて、簡単のため説明文では <code>toml::value</code> と書きます。
|
|
説明文では、テンプレートパラメータ<code>TC</code>を変更して型が変更されていれば
|
|
<code>toml::value::integer_type</code> などの型は追従して変更されると解釈してください。
|
|
</blockquote>
|
|
|
|
<h1 id="tomlfind">
|
|
<code>toml::find</code>
|
|
<a class="anchor" href="#tomlfind">#</a>
|
|
</h1>
|
|
<h2 id="概要">
|
|
概要
|
|
<a class="anchor" href="#%e6%a6%82%e8%a6%81">#</a>
|
|
</h2>
|
|
<p><code>toml::find</code>には、取り出したい型をテンプレート引数で、検索したい値のキーを引数で与えます。</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> T, <span style="color:#66d9ef">typename</span> TC, <span style="color:#66d9ef">typename</span> ... Keys<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span>T find(<span style="color:#66d9ef">const</span> basic_value<span style="color:#f92672">&lt;</span>TC<span style="color:#f92672">&gt;&amp;</span> v, Keys ... keys);
|
|
</span></span></code></pre></div><p>サポートされている <code>T</code> の種類と変換の挙動に関しては、 <code>toml::get</code> と同様です。</p>
|
|
<p><code>T</code> が指定されなかった場合、 <code>toml::value</code> が返されます。</p>
|
|
<p>キーは、 <code>toml::value::key_type</code> または <code>std::size_t</code> です。
|
|
複数個のキーが与えられた場合は、サブテーブルや配列に対して再帰的に検索が行われます。
|
|
<code>toml::value::key_type</code> が与えられた場合は <code>toml::table</code> として、 <code>std::size_t</code> が与えられた場合は <code>toml::array</code> として解釈されます。</p>
|
|
<h3 id="再帰的な検索に関しての注意">
|
|
再帰的な検索に関しての注意
|
|
<a class="anchor" href="#%e5%86%8d%e5%b8%b0%e7%9a%84%e3%81%aa%e6%a4%9c%e7%b4%a2%e3%81%ab%e9%96%a2%e3%81%97%e3%81%a6%e3%81%ae%e6%b3%a8%e6%84%8f">#</a>
|
|
</h3>
|
|
<p>TOMLには通常の bare key の他に、 <code>&quot;</code> や <code>'</code> で囲まれた quoted key というものがあります。
|
|
quoted key を使うと、 <code>&quot;foo.bar&quot; = &quot;baz&quot;</code> というようなキーを書くことができ、この場合はサブテーブルは構築されず、キーは <code>foo.bar</code>となります。
|
|
このようなパターンに対応するため、toml11ではキーの中に<code>.</code>が含まれていても分割は行わず、そのままの文字列で検索を行います。</p></description></item><item><title>format.hpp</title><link>https://toruniina.github.io/toml11/ja/docs/reference/format/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://toruniina.github.io/toml11/ja/docs/reference/format/</guid><description><h1 id="formathpp">
|
|
format.hpp
|
|
<a class="anchor" href="#formathpp">#</a>
|
|
</h1>
|
|
<p><code>toml::value</code>のフォーマット情報を持つ構造体と列挙型を定義します。</p>
|
|
<h1 id="indent_char">
|
|
<code>indent_char</code>
|
|
<a class="anchor" href="#indent_char">#</a>
|
|
</h1>
|
|
<p>インデント情報を表す列挙体です。</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">enum</span> <span style="color:#66d9ef">class</span> <span style="color:#a6e22e">indent_char</span> <span style="color:#f92672">:</span> std<span style="color:#f92672">::</span><span style="color:#66d9ef">uint8_t</span>
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span> space, <span style="color:#75715e">// use space
|
|
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> tab, <span style="color:#75715e">// use tab
|
|
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> none <span style="color:#75715e">// no indent
|
|
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>};
|
|
</span></span><span style="display:flex;"><span>std<span style="color:#f92672">::</span>ostream<span style="color:#f92672">&amp;</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">&lt;&lt;</span>(std<span style="color:#f92672">::</span>ostream<span style="color:#f92672">&amp;</span> os, <span style="color:#66d9ef">const</span> indent_char<span style="color:#f92672">&amp;</span> c);
|
|
</span></span><span style="display:flex;"><span>std<span style="color:#f92672">::</span>string to_string(<span style="color:#66d9ef">const</span> indent_char);
|
|
</span></span></code></pre></div><p><code>none</code>を選んだ場合、super tableでの値によらず、インデントは使用されません。</p>
|
|
<p>シリアライズ対象の値のなかに<code>space</code>と<code>tab</code>を指定する値が同時に存在していた場合、その動作は未規定で、指定していない方の文字が出現する可能性があります。</p>
|
|
<h1 id="boolean_format_info">
|
|
<code>boolean_format_info</code>
|
|
<a class="anchor" href="#boolean_format_info">#</a>
|
|
</h1>
|
|
<p><code>boolean</code>のフォーマット情報です。</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">struct</span> <span style="color:#a6e22e">boolean_format_info</span> {};
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">==</span>(<span style="color:#66d9ef">const</span> boolean_format_info<span style="color:#f92672">&amp;</span>, <span style="color:#66d9ef">const</span> boolean_format_info<span style="color:#f92672">&amp;</span>) <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">!=</span>(<span style="color:#66d9ef">const</span> boolean_format_info<span style="color:#f92672">&amp;</span>, <span style="color:#66d9ef">const</span> boolean_format_info<span style="color:#f92672">&amp;</span>) <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span></code></pre></div><p><code>boolean</code>のフォーマット方法は一通りしかないため、設定できる値を持ちません。</p>
|
|
<h1 id="integer_format">
|
|
<code>integer_format</code>
|
|
<a class="anchor" href="#integer_format">#</a>
|
|
</h1>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">enum</span> <span style="color:#66d9ef">class</span> <span style="color:#a6e22e">integer_format</span> <span style="color:#f92672">:</span> std<span style="color:#f92672">::</span><span style="color:#66d9ef">uint8_t</span>
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span> dec <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>,
|
|
</span></span><span style="display:flex;"><span> bin <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>,
|
|
</span></span><span style="display:flex;"><span> oct <span style="color:#f92672">=</span> <span style="color:#ae81ff">2</span>,
|
|
</span></span><span style="display:flex;"><span> hex <span style="color:#f92672">=</span> <span style="color:#ae81ff">3</span>,
|
|
</span></span><span style="display:flex;"><span>};
|
|
</span></span><span style="display:flex;"><span>std<span style="color:#f92672">::</span>ostream<span style="color:#f92672">&amp;</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">&lt;&lt;</span>(std<span style="color:#f92672">::</span>ostream<span style="color:#f92672">&amp;</span> os, <span style="color:#66d9ef">const</span> integer_format f);
|
|
</span></span><span style="display:flex;"><span>std<span style="color:#f92672">::</span>string to_string(<span style="color:#66d9ef">const</span> integer_format);
|
|
</span></span></code></pre></div><p><code>integer</code>の基数を指定します。</p></description></item><item><title>from.hpp</title><link>https://toruniina.github.io/toml11/ja/docs/reference/from/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://toruniina.github.io/toml11/ja/docs/reference/from/</guid><description><h1 id="fromhpp">
|
|
from.hpp
|
|
<a class="anchor" href="#fromhpp">#</a>
|
|
</h1>
|
|
<p><code>toml::get</code>や<code>toml::find</code>で使用する、<code>toml::value</code>からの変換を定義する構造体です。</p>
|
|
<p>メンバ関数に<code>from_toml</code>を追加することによっても同じ機能を追加できますが、メンバ関数を追加できないクラスに対しては<code>from&lt;T&gt;</code>を使用してください。</p>
|
|
<p>このファイルでは特定の実装は提供しません。使用する際に、この構造体を特殊化してください。</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> toml
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> T<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">struct</span> <span style="color:#a6e22e">from</span>;
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span>} <span style="color:#75715e">// toml
|
|
</span></span></span></code></pre></div><h2 id="例">
|
|
例
|
|
<a class="anchor" href="#%e4%be%8b">#</a>
|
|
</h2>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> extlib
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">struct</span> <span style="color:#a6e22e">foo</span>
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> a;
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>string b;
|
|
</span></span><span style="display:flex;"><span>};
|
|
</span></span><span style="display:flex;"><span>} <span style="color:#75715e">// extlib
|
|
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e">&lt;toml11/from.hpp&gt;</span><span style="color:#75715e">
|
|
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> toml
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;&gt;</span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">struct</span> <span style="color:#a6e22e">from</span><span style="color:#f92672">&lt;</span>extlib<span style="color:#f92672">::</span>foo<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> TC<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">static</span> extlib<span style="color:#f92672">::</span>foo from_toml(<span style="color:#66d9ef">const</span> toml<span style="color:#f92672">::</span>basic_value<span style="color:#f92672">&lt;</span>TC<span style="color:#f92672">&gt;&amp;</span> v)
|
|
</span></span><span style="display:flex;"><span> {
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> extlib<span style="color:#f92672">::</span>foo{toml<span style="color:#f92672">::</span>find<span style="color:#f92672">&lt;</span><span style="color:#66d9ef">int</span><span style="color:#f92672">&gt;</span>(v, <span style="color:#e6db74">&#34;a&#34;</span>), toml<span style="color:#f92672">::</span>find<span style="color:#f92672">&lt;</span>std<span style="color:#f92672">::</span>string<span style="color:#f92672">&gt;</span>(v, <span style="color:#e6db74">&#34;b&#34;</span>)};
|
|
</span></span><span style="display:flex;"><span> }
|
|
</span></span><span style="display:flex;"><span>};
|
|
</span></span><span style="display:flex;"><span>} <span style="color:#75715e">// toml
|
|
</span></span></span></code></pre></div><h1 id="関連項目">
|
|
関連項目
|
|
<a class="anchor" href="#%e9%96%a2%e9%80%a3%e9%a0%85%e7%9b%ae">#</a>
|
|
</h1>
|
|
<ul>
|
|
<li><a href="https://toruniina.github.io/toml11/ja/docs/reference/conversion/">conversion.hpp</a></li>
|
|
<li><a href="https://toruniina.github.io/toml11/ja/docs/reference/into/">into.hpp</a></li>
|
|
</ul></description></item><item><title>get.hpp</title><link>https://toruniina.github.io/toml11/ja/docs/reference/get/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://toruniina.github.io/toml11/ja/docs/reference/get/</guid><description><h1 id="gethpp">
|
|
get.hpp
|
|
<a class="anchor" href="#gethpp">#</a>
|
|
</h1>
|
|
<p><code>toml::value</code>から値を取り出し、同時に(必要な場合)型変換を行う関数です。</p>
|
|
<blockquote class="book-hint info">
|
|
<code>toml::value</code> は格納する型を変更でき、<code>toml::get</code>はそれらに対応しているので、
|
|
厳密には全て <code>toml::basic_value&lt;TC&gt;</code> が使われています。ただしこれでは冗長なので、
|
|
関数の宣言と特に区別しなければならない場合を除いて、簡単のため説明文では <code>toml::value</code> と書きます。
|
|
説明文では、テンプレートパラメータ<code>TC</code>を変更して型が変更されていれば
|
|
<code>toml::value::integer_type</code> などの型は追従して変更されると解釈してください。
|
|
</blockquote>
|
|
|
|
<h1 id="tomlgett">
|
|
<code>toml::get&lt;T&gt;</code>
|
|
<a class="anchor" href="#tomlgett">#</a>
|
|
</h1>
|
|
<h2 id="概要">
|
|
概要
|
|
<a class="anchor" href="#%e6%a6%82%e8%a6%81">#</a>
|
|
</h2>
|
|
<p>基本的に、<code>toml::get</code>は以下のような関数として振る舞います。
|
|
<code>T</code>は<code>toml::get&lt;int&gt;(v)</code>のようにして与えます。</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> T, <span style="color:#66d9ef">typename</span> TC<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span>T get(<span style="color:#66d9ef">const</span> basic_value<span style="color:#f92672">&lt;</span>TC<span style="color:#f92672">&gt;&amp;</span> v);
|
|
</span></span></code></pre></div><p>ただし、<code>T</code>がどのような型であるかによって、<code>toml::get</code>は異なる挙動をします。</p>
|
|
<p><code>T</code>の型の種類は、</p>
|
|
<ol>
|
|
<li>変換が必要ない型</li>
|
|
<li>変換する必要がある型</li>
|
|
</ol>
|
|
<p>に分けられます。</p>
|
|
<p>細かい条件と、特別にサポートしている具体的な型については後述します。</p>
|
|
<h3 id="変換が必要ない型">
|
|
変換が必要ない型
|
|
<a class="anchor" href="#%e5%a4%89%e6%8f%9b%e3%81%8c%e5%bf%85%e8%a6%81%e3%81%aa%e3%81%84%e5%9e%8b">#</a>
|
|
</h3>
|
|
<p>変換が必要ないのは、渡された <code>toml::value</code> が格納している型です。
|
|
例えば、 <code>toml::value::integer_type</code> は <code>std::int64_t</code> のエイリアスなので、
|
|
<code>toml::get&lt;std::int64_t&gt;(v)</code> は変換を必要としません。
|
|
この場合、 <code>toml:get</code> は <code>integer</code> の値を <code>toml::value</code> から取り出し、その参照を返します。</p>
|
|
<p>渡された<code>toml::value</code>が可変参照(<code>&amp;</code>)である場合、返す値も可変参照(<code>&amp;</code>)です。
|
|
不変参照(<code>const&amp;</code>)の場合、返す値も不変参照(<code>const&amp;</code>)となります。
|
|
可変参照を返した場合、その参照を通して<code>toml::value</code>に格納されている値に上書きできます。</p>
|
|
<h3 id="変換が必要な型">
|
|
変換が必要な型
|
|
<a class="anchor" href="#%e5%a4%89%e6%8f%9b%e3%81%8c%e5%bf%85%e8%a6%81%e3%81%aa%e5%9e%8b">#</a>
|
|
</h3>
|
|
<p>上記の型以外については変換が必要です。
|
|
例えば、<code>toml::value::integer_type</code>は<code>std::int64_t</code>のエイリアスなので、<code>toml::get&lt;std::size_t&gt;(toml::value&amp;)</code>は変換が必要です。
|
|
この場合、<code>toml:get</code>は<code>integer</code>の値を<code>toml::value</code>から取り出し、それをキャストして返します。</p>
|
|
<p>toml11は簡単なキャストだけでなく、
|
|
<code>toml::array</code>からや<code>std::tuple&lt;int, double, std::string&gt;</code>や<code>std::array&lt;double, 4&gt;</code>、
|
|
<code>toml::table</code>から<code>std::map&lt;std::string, int&gt;</code>などの複雑な型変換をサポートします。
|
|
具体的には、続くセクションを参照してください。</p></description></item><item><title>into.hpp</title><link>https://toruniina.github.io/toml11/ja/docs/reference/into/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://toruniina.github.io/toml11/ja/docs/reference/into/</guid><description><h1 id="intohpp">
|
|
into.hpp
|
|
<a class="anchor" href="#intohpp">#</a>
|
|
</h1>
|
|
<p><code>toml::value</code>のコンストラクタで使用する、ユーザー定義型からの変換を定義する構造体です。</p>
|
|
<p>メンバ関数に<code>into_toml</code>を追加することによっても同じ機能を追加できますが、メンバ関数を追加できないクラスに対しては<code>into&lt;T&gt;</code>を使用してください。</p>
|
|
<p>このファイルでは特定の実装は提供しません。使用する際に、この構造体を特殊化してください。</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> toml
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> T<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">struct</span> <span style="color:#a6e22e">into</span>;
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span>} <span style="color:#75715e">// toml
|
|
</span></span></span></code></pre></div><h2 id="例">
|
|
例
|
|
<a class="anchor" href="#%e4%be%8b">#</a>
|
|
</h2>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> extlib
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">struct</span> <span style="color:#a6e22e">foo</span>
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> a;
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>string b;
|
|
</span></span><span style="display:flex;"><span>};
|
|
</span></span><span style="display:flex;"><span>} <span style="color:#75715e">// extlib
|
|
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e">&lt;toml11/into.hpp&gt;</span><span style="color:#75715e">
|
|
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> toml
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;&gt;</span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">struct</span> <span style="color:#a6e22e">into</span><span style="color:#f92672">&lt;</span>extlib<span style="color:#f92672">::</span>foo<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> TC<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">static</span> toml<span style="color:#f92672">::</span>basic_value<span style="color:#f92672">&lt;</span>TC<span style="color:#f92672">&gt;</span> into_toml(<span style="color:#66d9ef">const</span> extlib<span style="color:#f92672">::</span>foo<span style="color:#f92672">&amp;</span> f)
|
|
</span></span><span style="display:flex;"><span> {
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">using</span> value_type <span style="color:#f92672">=</span> toml<span style="color:#f92672">::</span>basic_value<span style="color:#f92672">&lt;</span>TC<span style="color:#f92672">&gt;</span>;
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">using</span> table_type <span style="color:#f92672">=</span> <span style="color:#66d9ef">typename</span> value_type<span style="color:#f92672">::</span>table_type;
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#a6e22e">value_type</span>(table_type{{<span style="color:#e6db74">&#34;a&#34;</span>, f.a}, {<span style="color:#e6db74">&#34;b&#34;</span>, f.b}});
|
|
</span></span><span style="display:flex;"><span> }
|
|
</span></span><span style="display:flex;"><span>};
|
|
</span></span><span style="display:flex;"><span>} <span style="color:#75715e">// toml
|
|
</span></span></span></code></pre></div><h1 id="関連項目">
|
|
関連項目
|
|
<a class="anchor" href="#%e9%96%a2%e9%80%a3%e9%a0%85%e7%9b%ae">#</a>
|
|
</h1>
|
|
<ul>
|
|
<li><a href="https://toruniina.github.io/toml11/ja/docs/reference/conversion/">conversion.hpp</a></li>
|
|
<li><a href="https://toruniina.github.io/toml11/ja/docs/reference/from/">from.hpp</a></li>
|
|
</ul></description></item><item><title>literal.hpp</title><link>https://toruniina.github.io/toml11/ja/docs/reference/literal/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://toruniina.github.io/toml11/ja/docs/reference/literal/</guid><description><h1 id="literalhpp">
|
|
literal.hpp
|
|
<a class="anchor" href="#literalhpp">#</a>
|
|
</h1>
|
|
<p><code>literal.hpp</code>では、<code>_toml</code>リテラルが定義されます。</p>
|
|
<p><code>_toml</code>リテラルは、文字列リテラルをパースして<code>toml::value</code>に変換します。</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> toml
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">inline</span> <span style="color:#66d9ef">namespace</span> literals
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">inline</span> <span style="color:#66d9ef">namespace</span> toml_literals
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span>toml<span style="color:#f92672">::</span>value <span style="color:#66d9ef">operator</span><span style="color:#e6db74">&#34;&#34;</span> _toml(<span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span><span style="color:#f92672">*</span> str, std<span style="color:#f92672">::</span>size_t len);
|
|
</span></span><span style="display:flex;"><span>toml<span style="color:#f92672">::</span>value <span style="color:#66d9ef">operator</span><span style="color:#e6db74">&#34;&#34;</span> _toml(<span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char8_t</span><span style="color:#f92672">*</span> str, std<span style="color:#f92672">::</span>size_t len); <span style="color:#75715e">// C++20以降
|
|
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>} <span style="color:#75715e">// toml_literals
|
|
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>} <span style="color:#75715e">// literals
|
|
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>} <span style="color:#75715e">// toml
|
|
</span></span></span></code></pre></div><h2 id="自由関数">
|
|
自由関数
|
|
<a class="anchor" href="#%e8%87%aa%e7%94%b1%e9%96%a2%e6%95%b0">#</a>
|
|
</h2>
|
|
<h3 id="operator-_tomlchar">
|
|
<code>operator&quot;&quot; _toml(char)</code>
|
|
<a class="anchor" href="#operator-_tomlchar">#</a>
|
|
</h3>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span>toml<span style="color:#f92672">::</span>value <span style="color:#66d9ef">operator</span><span style="color:#e6db74">&#34;&#34;</span> _toml(<span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span><span style="color:#f92672">*</span> str, std<span style="color:#f92672">::</span>size_t len);
|
|
</span></span></code></pre></div><p>文字列リテラルをパースして<code>toml::value</code>に変換します。</p>
|
|
<p>通常のTOMLファイルの場合、<code>toml::parse</code>と同等の処理が行われます。</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#66d9ef">auto</span> v1 <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;a = &#39;foo&#39;&#34;</span>_toml; <span style="color:#75715e">// v1: {a = &#39;foo&#39;}
|
|
</span></span></span></code></pre></div><p>改行を含む場合、生文字列リテラルが便利です。</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#66d9ef">auto</span> v1 <span style="color:#f92672">=</span> R<span style="color:#e6db74">&#34;(</span>
|
|
</span></span><span style="display:flex;"><span> a <span style="color:#f92672">=</span> <span style="color:#ae81ff">42</span>
|
|
</span></span><span style="display:flex;"><span> b <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;foo&#34;</span>
|
|
</span></span><span style="display:flex;"><span>)<span style="color:#e6db74">&#34;_toml;</span>
|
|
</span></span></code></pre></div><p>値が単体で書かれていた場合、その値になります。</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#66d9ef">auto</span> v2 <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;&#39;foo&#39;&#34;</span>_toml; <span style="color:#75715e">// v2: &#39;foo&#39;
|
|
</span></span></span></code></pre></div><p>TOMLは数値のみからなるキーを許可しています。
|
|
<code>[1]</code>のように、テーブル定義と配列の区別がつかない場合、テーブル定義が優先されます。</p>
|
|
<p>配列として解釈させるには、trailing commaを使用してください。</p></description></item><item><title>ordered_map.hpp</title><link>https://toruniina.github.io/toml11/ja/docs/reference/ordered_map/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://toruniina.github.io/toml11/ja/docs/reference/ordered_map/</guid><description><h1 id="ordered_maphpp">
|
|
ordered_map.hpp
|
|
<a class="anchor" href="#ordered_maphpp">#</a>
|
|
</h1>
|
|
<p>ファイル中の値の順番を維持するために使用する<code>toml::ordered_map</code>を定義します。</p>
|
|
<h1 id="class-ordered_map">
|
|
<code>class ordered_map</code>
|
|
<a class="anchor" href="#class-ordered_map">#</a>
|
|
</h1>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> toml
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> Key, <span style="color:#66d9ef">typename</span> Val, <span style="color:#66d9ef">typename</span> Cmp <span style="color:#f92672">=</span> std<span style="color:#f92672">::</span>equal_to<span style="color:#f92672">&lt;</span>Key<span style="color:#f92672">&gt;</span>,
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">typename</span> Allocator <span style="color:#f92672">=</span> std<span style="color:#f92672">::</span>allocator<span style="color:#f92672">&lt;</span>std<span style="color:#f92672">::</span>pair<span style="color:#f92672">&lt;</span>Key, Val<span style="color:#f92672">&gt;&gt;&gt;</span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">class</span> <span style="color:#a6e22e">ordered_map</span>;
|
|
</span></span><span style="display:flex;"><span>}
|
|
</span></span></code></pre></div><p><code>ordered_map</code>は、値を追加した順序を保ったまま値を保持し、その順でイテレートできる <code>map</code> 型です。</p>
|
|
<p>線形コンテナなので、検索には要素数に対して <code>O(n)</code> の時間がかかります。
|
|
検索を行う機会が少なく、値の順序を守る必要がある場合に使用してください。</p>
|
|
<h2 id="非メンバ型">
|
|
非メンバ型
|
|
<a class="anchor" href="#%e9%9d%9e%e3%83%a1%e3%83%b3%e3%83%90%e5%9e%8b">#</a>
|
|
</h2>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> toml
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">struct</span> <span style="color:#a6e22e">ordered_type_config</span>;
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> ordered_value <span style="color:#f92672">=</span> basic_value<span style="color:#f92672">&lt;</span>ordered_type_config<span style="color:#f92672">&gt;</span>;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> ordered_table <span style="color:#f92672">=</span> <span style="color:#66d9ef">typename</span> ordered_value<span style="color:#f92672">::</span>table_type;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> ordered_array <span style="color:#f92672">=</span> <span style="color:#66d9ef">typename</span> ordered_value<span style="color:#f92672">::</span>array_type;
|
|
</span></span><span style="display:flex;"><span>}
|
|
</span></span></code></pre></div><p><code>toml::type_config</code> と <code>toml::value</code> の代わりに使用します。</p>
|
|
<blockquote class="book-hint info">
|
|
<p><code>toml::parse</code> はデフォルトで <code>type_config</code> を使用するので、パースする際に</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#66d9ef">auto</span> input <span style="color:#f92672">=</span> toml<span style="color:#f92672">::</span>parse<span style="color:#f92672">&lt;</span>toml<span style="color:#f92672">::</span>ordered_type_config<span style="color:#f92672">&gt;</span>(<span style="color:#e6db74">&#34;input.toml&#34;</span>);
|
|
</span></span></code></pre></div><p>としてください。</p>
|
|
|
|
</blockquote>
|
|
|
|
<h2 id="メンバ型">
|
|
メンバ型
|
|
<a class="anchor" href="#%e3%83%a1%e3%83%b3%e3%83%90%e5%9e%8b">#</a>
|
|
</h2>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">using</span> key_type <span style="color:#f92672">=</span> Key;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> mapped_type <span style="color:#f92672">=</span> Val;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> value_type <span style="color:#f92672">=</span> std<span style="color:#f92672">::</span>pair<span style="color:#f92672">&lt;</span>Key, Val<span style="color:#f92672">&gt;</span>;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> key_compare <span style="color:#f92672">=</span> Cmp;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> allocator_type <span style="color:#f92672">=</span> Allocator;
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> container_type <span style="color:#f92672">=</span> std<span style="color:#f92672">::</span>vector<span style="color:#f92672">&lt;</span>value_type, Allocator<span style="color:#f92672">&gt;</span>;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> reference <span style="color:#f92672">=</span> <span style="color:#66d9ef">typename</span> container_type<span style="color:#f92672">::</span>reference;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> pointer <span style="color:#f92672">=</span> <span style="color:#66d9ef">typename</span> container_type<span style="color:#f92672">::</span>pointer;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> const_reference <span style="color:#f92672">=</span> <span style="color:#66d9ef">typename</span> container_type<span style="color:#f92672">::</span>const_reference;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> const_pointer <span style="color:#f92672">=</span> <span style="color:#66d9ef">typename</span> container_type<span style="color:#f92672">::</span>const_pointer;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> iterator <span style="color:#f92672">=</span> <span style="color:#66d9ef">typename</span> container_type<span style="color:#f92672">::</span>iterator;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> const_iterator <span style="color:#f92672">=</span> <span style="color:#66d9ef">typename</span> container_type<span style="color:#f92672">::</span>const_iterator;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> size_type <span style="color:#f92672">=</span> <span style="color:#66d9ef">typename</span> container_type<span style="color:#f92672">::</span>size_type;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> difference_type <span style="color:#f92672">=</span> <span style="color:#66d9ef">typename</span> container_type<span style="color:#f92672">::</span>difference_type;
|
|
</span></span></code></pre></div><h2 id="メンバ関数">
|
|
メンバ関数
|
|
<a class="anchor" href="#%e3%83%a1%e3%83%b3%e3%83%90%e9%96%a2%e6%95%b0">#</a>
|
|
</h2>
|
|
<h3 id="コンストラクタ">
|
|
コンストラクタ
|
|
<a class="anchor" href="#%e3%82%b3%e3%83%b3%e3%82%b9%e3%83%88%e3%83%a9%e3%82%af%e3%82%bf">#</a>
|
|
</h3>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span>ordered_map() <span style="color:#f92672">=</span> <span style="color:#66d9ef">default</span>;
|
|
</span></span></code></pre></div><p>空の <code>ordered_map</code> を構築します。</p></description></item><item><title>parser.hpp</title><link>https://toruniina.github.io/toml11/ja/docs/reference/parser/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://toruniina.github.io/toml11/ja/docs/reference/parser/</guid><description><h1 id="parserhpp">
|
|
parser.hpp
|
|
<a class="anchor" href="#parserhpp">#</a>
|
|
</h1>
|
|
<p>ファイルまたは文字列をパースする関数と、それが用いる例外を定義します。</p>
|
|
<p><code>parse</code>は失敗した場合に例外を送出しますが、<code>try_parse</code>はエラー情報を返します。</p>
|
|
<h1 id="parse">
|
|
<code>parse</code>
|
|
<a class="anchor" href="#parse">#</a>
|
|
</h1>
|
|
<p>与えられたファイルの内容をパースし、<code>toml::basic_value</code>を返します。</p>
|
|
<p>失敗した場合は<code>toml::syntax_error</code>が送出されます。</p>
|
|
<p><code>basic_value</code>の持つ型情報は<code>template</code>で、TOML言語のバージョンは<code>toml::spec</code>で指定します。</p>
|
|
<h3 id="parsestdstring-filename-tomlspec">
|
|
<code>parse(std::string filename, toml::spec)</code>
|
|
<a class="anchor" href="#parsestdstring-filename-tomlspec">#</a>
|
|
</h3>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> toml
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> TC <span style="color:#f92672">=</span> type_config<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span>basic_value<span style="color:#f92672">&lt;</span>TC<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span>parse(std<span style="color:#f92672">::</span>string fname,
|
|
</span></span><span style="display:flex;"><span> spec s <span style="color:#f92672">=</span> spec<span style="color:#f92672">::</span>default_version());
|
|
</span></span><span style="display:flex;"><span>}
|
|
</span></span></code></pre></div><p>ファイル名を受け取って、その内容をパースします。</p>
|
|
<p>ファイルの読み込みに失敗した場合、<code>file_io_error</code>が送出されます。</p>
|
|
<p>パースに失敗した場合、<code>syntax_error</code>が送出されます。</p>
|
|
<h3 id="parseconst-char-n-filename-tomlspec">
|
|
<code>parse(const char (&amp;)[N] filename, toml::spec)</code>
|
|
<a class="anchor" href="#parseconst-char-n-filename-tomlspec">#</a>
|
|
</h3>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> toml
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> TC <span style="color:#f92672">=</span> type_config, std<span style="color:#f92672">::</span>size_t N<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span>basic_value<span style="color:#f92672">&lt;</span>TC<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span>parse(<span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> (<span style="color:#f92672">&amp;</span>fname)[N],
|
|
</span></span><span style="display:flex;"><span> spec s <span style="color:#f92672">=</span> spec<span style="color:#f92672">::</span>default_version());
|
|
</span></span><span style="display:flex;"><span>}
|
|
</span></span></code></pre></div><p>文字列リテラルを受け取って、そのファイルの内容をパースします。</p>
|
|
<p>ファイルの読み込みに失敗した場合、<code>file_io_error</code>が送出されます。</p>
|
|
<p>パースに失敗した場合、<code>syntax_error</code>が送出されます。</p>
|
|
<h3 id="parsestdfilesystempath-tomlspec">
|
|
<code>parse(std::filesystem::path, toml::spec)</code>
|
|
<a class="anchor" href="#parsestdfilesystempath-tomlspec">#</a>
|
|
</h3>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> toml
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> TC <span style="color:#f92672">=</span> type_config<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span>basic_value<span style="color:#f92672">&lt;</span>TC<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span>parse(<span style="color:#66d9ef">const</span> std<span style="color:#f92672">::</span>filesystem<span style="color:#f92672">::</span>path<span style="color:#f92672">&amp;</span> fpath,
|
|
</span></span><span style="display:flex;"><span> spec s <span style="color:#f92672">=</span> spec<span style="color:#f92672">::</span>default_version());
|
|
</span></span><span style="display:flex;"><span>}
|
|
</span></span></code></pre></div><p><code>&lt;filesystem&gt;</code>が利用可能な場合のみ定義されます。</p></description></item><item><title>result.hpp</title><link>https://toruniina.github.io/toml11/ja/docs/reference/result/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://toruniina.github.io/toml11/ja/docs/reference/result/</guid><description><h1 id="resulthpp">
|
|
result.hpp
|
|
<a class="anchor" href="#resulthpp">#</a>
|
|
</h1>
|
|
<p><code>result.hpp</code>は、成功値か失敗値かのどちらかを持つ<code>result</code>型を定義します。</p>
|
|
<p>これは、例外を投げない<code>toml::try_parse</code>の返り値として使用されます。</p>
|
|
<h1 id="success">
|
|
success
|
|
<a class="anchor" href="#success">#</a>
|
|
</h1>
|
|
<p>成功値を持つ型です。</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> toml
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> T<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">struct</span> <span style="color:#a6e22e">success</span>
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">using</span> value_type <span style="color:#f92672">=</span> T;
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">explicit</span> <span style="color:#a6e22e">success</span>(value_type v);
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span> <span style="color:#f92672">~</span>success() <span style="color:#f92672">=</span> <span style="color:#66d9ef">default</span>;
|
|
</span></span><span style="display:flex;"><span> success(<span style="color:#66d9ef">const</span> success<span style="color:#f92672">&amp;</span>) <span style="color:#f92672">=</span> <span style="color:#66d9ef">default</span>;
|
|
</span></span><span style="display:flex;"><span> success(success<span style="color:#f92672">&amp;&amp;</span>) <span style="color:#f92672">=</span> <span style="color:#66d9ef">default</span>;
|
|
</span></span><span style="display:flex;"><span> success<span style="color:#f92672">&amp;</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">=</span>(<span style="color:#66d9ef">const</span> success<span style="color:#f92672">&amp;</span>) <span style="color:#f92672">=</span> <span style="color:#66d9ef">default</span>;
|
|
</span></span><span style="display:flex;"><span> success<span style="color:#f92672">&amp;</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">=</span>(success<span style="color:#f92672">&amp;&amp;</span>) <span style="color:#f92672">=</span> <span style="color:#66d9ef">default</span>;
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> U<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">explicit</span> success(U<span style="color:#f92672">&amp;&amp;</span> v);
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> U<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">explicit</span> success(success<span style="color:#f92672">&lt;</span>U<span style="color:#f92672">&gt;</span> v);
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span> value_type<span style="color:#f92672">&amp;</span> get() <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span> value_type <span style="color:#66d9ef">const</span><span style="color:#f92672">&amp;</span> get() <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span>};
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> T<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span>success<span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> std<span style="color:#f92672">::</span>decay<span style="color:#f92672">&lt;</span>T<span style="color:#f92672">&gt;::</span>type<span style="color:#f92672">&gt;</span> ok(T<span style="color:#f92672">&amp;&amp;</span> v);
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span>std<span style="color:#f92672">::</span>size_t N<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span>success<span style="color:#f92672">&lt;</span>std<span style="color:#f92672">::</span>string<span style="color:#f92672">&gt;</span> ok(<span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> (<span style="color:#f92672">&amp;</span>literal)[N])
|
|
</span></span><span style="display:flex;"><span>}
|
|
</span></span></code></pre></div><h2 id="メンバ型">
|
|
メンバ型
|
|
<a class="anchor" href="#%e3%83%a1%e3%83%b3%e3%83%90%e5%9e%8b">#</a>
|
|
</h2>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">using</span> value_type <span style="color:#f92672">=</span> T;
|
|
</span></span></code></pre></div><p>成功値の型です。</p></description></item><item><title>serializer.hpp</title><link>https://toruniina.github.io/toml11/ja/docs/reference/serializer/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://toruniina.github.io/toml11/ja/docs/reference/serializer/</guid><description><h1 id="serializerhpp">
|
|
serializer.hpp
|
|
<a class="anchor" href="#serializerhpp">#</a>
|
|
</h1>
|
|
<h1 id="format">
|
|
<code>format</code>
|
|
<a class="anchor" href="#format">#</a>
|
|
</h1>
|
|
<p>シリアライズを行います。</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> toml
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> TC<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span>std<span style="color:#f92672">::</span>string format(<span style="color:#66d9ef">const</span> basic_value<span style="color:#f92672">&lt;</span>TC<span style="color:#f92672">&gt;&amp;</span> v,
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">const</span> spec s <span style="color:#f92672">=</span> spec<span style="color:#f92672">::</span>default_version());
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> TC<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span>std<span style="color:#f92672">::</span>string format(<span style="color:#66d9ef">const</span> <span style="color:#66d9ef">typename</span> basic_value<span style="color:#f92672">&lt;</span>TC<span style="color:#f92672">&gt;::</span>key_type<span style="color:#f92672">&amp;</span> k,
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">const</span> basic_value<span style="color:#f92672">&lt;</span>TC<span style="color:#f92672">&gt;&amp;</span> v,
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">const</span> spec s <span style="color:#f92672">=</span> spec<span style="color:#f92672">::</span>default_version());
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> TC<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span>std<span style="color:#f92672">::</span>string format(<span style="color:#66d9ef">const</span> std<span style="color:#f92672">::</span>vector<span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> basic_value<span style="color:#f92672">&lt;</span>TC<span style="color:#f92672">&gt;::</span>key_type<span style="color:#f92672">&gt;&amp;</span> ks,
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">const</span> basic_value<span style="color:#f92672">&lt;</span>TC<span style="color:#f92672">&gt;&amp;</span> v,
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">const</span> spec s <span style="color:#f92672">=</span> spec<span style="color:#f92672">::</span>default_version());
|
|
</span></span><span style="display:flex;"><span>}
|
|
</span></span></code></pre></div><p>フォーマット情報と<code>spec</code>が矛盾する場合、例えば<code>v1.0.0</code>で<code>table_format::multiline_oneline</code>が指定されているときなどは、<code>spec</code>が優先されます。</p>
|
|
<h3 id="formatv-spec">
|
|
<code>format(v, spec)</code>
|
|
<a class="anchor" href="#formatv-spec">#</a>
|
|
</h3>
|
|
<p><code>toml::value</code>を、それが持つフォーマット情報と<code>spec</code>に従ってフォーマットします。</p>
|
|
<p><code>table_type</code>だった場合、それがルートであるとしてフォーマットします。
|
|
それ以外の値だった場合、値のみをフォーマットします。</p>
|
|
<h3 id="formatk-v-spec">
|
|
<code>format(k, v, spec)</code>
|
|
<a class="anchor" href="#formatk-v-spec">#</a>
|
|
</h3>
|
|
<p><code>toml::value</code>を、与えられたキーと同時にフォーマットします。</p>
|
|
<p><code>v</code>はそのキー以下に定義されていると解釈されます。</p>
|
|
<h3 id="formatk-v-spec-1">
|
|
<code>format([k,...], v, spec)</code>
|
|
<a class="anchor" href="#formatk-v-spec-1">#</a>
|
|
</h3>
|
|
<p><code>v</code>はそのキー以下に定義されていると解釈されます。
|
|
キーが複数与えられた場合、再帰的に定義されたテーブルとして解釈されます。</p></description></item><item><title>source_location.hpp</title><link>https://toruniina.github.io/toml11/ja/docs/reference/source_location/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://toruniina.github.io/toml11/ja/docs/reference/source_location/</guid><description><h1 id="source_locationhpp">
|
|
source_location.hpp
|
|
<a class="anchor" href="#source_locationhpp">#</a>
|
|
</h1>
|
|
<p><code>source_location.hpp</code>では、TOMLファイル内のある領域を指すクラスが定義されます。</p>
|
|
<p>このクラスは、エラーメッセージで問題の箇所を指摘するために使われます。</p>
|
|
<h1 id="tomlsource_location">
|
|
<code>toml::source_location</code>
|
|
<a class="anchor" href="#tomlsource_location">#</a>
|
|
</h1>
|
|
<p><code>source_location</code>は、TOMLファイル内のある領域を指すクラスです。</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> toml
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">struct</span> <span style="color:#a6e22e">source_location</span>
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">public</span><span style="color:#f92672">:</span>
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">explicit</span> source_location(<span style="color:#75715e">/* implementation-defined */</span>);
|
|
</span></span><span style="display:flex;"><span> <span style="color:#f92672">~</span>source_location() <span style="color:#f92672">=</span> <span style="color:#66d9ef">default</span>;
|
|
</span></span><span style="display:flex;"><span> source_location(source_location <span style="color:#66d9ef">const</span><span style="color:#f92672">&amp;</span>) <span style="color:#f92672">=</span> <span style="color:#66d9ef">default</span>;
|
|
</span></span><span style="display:flex;"><span> source_location(source_location <span style="color:#f92672">&amp;&amp;</span>) <span style="color:#f92672">=</span> <span style="color:#66d9ef">default</span>;
|
|
</span></span><span style="display:flex;"><span> source_location<span style="color:#f92672">&amp;</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">=</span>(source_location <span style="color:#66d9ef">const</span><span style="color:#f92672">&amp;</span>) <span style="color:#f92672">=</span> <span style="color:#66d9ef">default</span>;
|
|
</span></span><span style="display:flex;"><span> source_location<span style="color:#f92672">&amp;</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">=</span>(source_location <span style="color:#f92672">&amp;&amp;</span>) <span style="color:#f92672">=</span> <span style="color:#66d9ef">default</span>;
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">bool</span> <span style="color:#a6e22e">is_ok</span>() <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>size_t length() <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>size_t first_line_number() <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>size_t first_column_number() <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>size_t last_line_number() <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>size_t last_column_number() <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>string <span style="color:#66d9ef">const</span><span style="color:#f92672">&amp;</span> file_name() <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>size_t num_lines() <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>string <span style="color:#66d9ef">const</span><span style="color:#f92672">&amp;</span> first_line() <span style="color:#66d9ef">const</span>;
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>string <span style="color:#66d9ef">const</span><span style="color:#f92672">&amp;</span> last_line() <span style="color:#66d9ef">const</span>;
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>vector<span style="color:#f92672">&lt;</span>std<span style="color:#f92672">::</span>string<span style="color:#f92672">&gt;</span> <span style="color:#66d9ef">const</span><span style="color:#f92672">&amp;</span> lines() <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span>};
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> ... Ts<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span>std<span style="color:#f92672">::</span>string format_location(<span style="color:#66d9ef">const</span> source_location<span style="color:#f92672">&amp;</span> loc, <span style="color:#66d9ef">const</span> std<span style="color:#f92672">::</span>string<span style="color:#f92672">&amp;</span> msg, <span style="color:#66d9ef">const</span> Ts<span style="color:#f92672">&amp;</span> ... locs_and_msgs);
|
|
</span></span><span style="display:flex;"><span>} <span style="color:#75715e">//toml
|
|
</span></span></span></code></pre></div><h2 id="メンバ関数">
|
|
メンバ関数
|
|
<a class="anchor" href="#%e3%83%a1%e3%83%b3%e3%83%90%e9%96%a2%e6%95%b0">#</a>
|
|
</h2>
|
|
<h3 id="コンストラクタ">
|
|
コンストラクタ
|
|
<a class="anchor" href="#%e3%82%b3%e3%83%b3%e3%82%b9%e3%83%88%e3%83%a9%e3%82%af%e3%82%bf">#</a>
|
|
</h3>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">explicit</span> <span style="color:#a6e22e">source_location</span>(<span style="color:#75715e">/* implementation-defined */</span>);
|
|
</span></span></code></pre></div><p><code>toml::source_location</code>を<code>toml::parse</code>または<code>_toml</code>リテラル以外で構築することはできません。</p></description></item><item><title>spec.hpp</title><link>https://toruniina.github.io/toml11/ja/docs/reference/spec/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://toruniina.github.io/toml11/ja/docs/reference/spec/</guid><description><h1 id="spechpp">
|
|
spec.hpp
|
|
<a class="anchor" href="#spechpp">#</a>
|
|
</h1>
|
|
<p><code>spec.hpp</code>では、TOMLのバージョンを指定するためのクラスが定義されます。</p>
|
|
<h1 id="tomlsemantic_version">
|
|
<code>toml::semantic_version</code>
|
|
<a class="anchor" href="#tomlsemantic_version">#</a>
|
|
</h1>
|
|
<p><code>semantic_version</code>は、バージョン情報を格納するクラスです。</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> toml
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">struct</span> <span style="color:#a6e22e">semantic_version</span>
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">constexpr</span> <span style="color:#a6e22e">semantic_version</span>(std<span style="color:#f92672">::</span><span style="color:#66d9ef">uint32_t</span> mjr, std<span style="color:#f92672">::</span><span style="color:#66d9ef">uint32_t</span> mnr, std<span style="color:#f92672">::</span><span style="color:#66d9ef">uint32_t</span> p) <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span><span style="color:#66d9ef">uint32_t</span> major;
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span><span style="color:#66d9ef">uint32_t</span> minor;
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span><span style="color:#66d9ef">uint32_t</span> patch;
|
|
</span></span><span style="display:flex;"><span>};
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">constexpr</span> semantic_version
|
|
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">make_semver</span>(std<span style="color:#f92672">::</span><span style="color:#66d9ef">uint32_t</span> major, std<span style="color:#f92672">::</span><span style="color:#66d9ef">uint32_t</span> minor, std<span style="color:#f92672">::</span><span style="color:#66d9ef">uint32_t</span> patch) <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">constexpr</span> <span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">==</span>(<span style="color:#66d9ef">const</span> semantic_version<span style="color:#f92672">&amp;</span>, <span style="color:#66d9ef">const</span> semantic_version<span style="color:#f92672">&amp;</span>) <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">constexpr</span> <span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">!=</span>(<span style="color:#66d9ef">const</span> semantic_version<span style="color:#f92672">&amp;</span>, <span style="color:#66d9ef">const</span> semantic_version<span style="color:#f92672">&amp;</span>) <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">constexpr</span> <span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">&lt;</span> (<span style="color:#66d9ef">const</span> semantic_version<span style="color:#f92672">&amp;</span>, <span style="color:#66d9ef">const</span> semantic_version<span style="color:#f92672">&amp;</span>) <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">constexpr</span> <span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">&lt;=</span>(<span style="color:#66d9ef">const</span> semantic_version<span style="color:#f92672">&amp;</span>, <span style="color:#66d9ef">const</span> semantic_version<span style="color:#f92672">&amp;</span>) <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">constexpr</span> <span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">&gt;</span> (<span style="color:#66d9ef">const</span> semantic_version<span style="color:#f92672">&amp;</span>, <span style="color:#66d9ef">const</span> semantic_version<span style="color:#f92672">&amp;</span>) <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">constexpr</span> <span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">&gt;=</span>(<span style="color:#66d9ef">const</span> semantic_version<span style="color:#f92672">&amp;</span>, <span style="color:#66d9ef">const</span> semantic_version<span style="color:#f92672">&amp;</span>) <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span>std<span style="color:#f92672">::</span>ostream<span style="color:#f92672">&amp;</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">&lt;&lt;</span>(std<span style="color:#f92672">::</span>ostream<span style="color:#f92672">&amp;</span> os, <span style="color:#66d9ef">const</span> semantic_version<span style="color:#f92672">&amp;</span> ver);
|
|
</span></span><span style="display:flex;"><span>} <span style="color:#75715e">//toml
|
|
</span></span></span></code></pre></div><h2 id="メンバ関数">
|
|
メンバ関数
|
|
<a class="anchor" href="#%e3%83%a1%e3%83%b3%e3%83%90%e9%96%a2%e6%95%b0">#</a>
|
|
</h2>
|
|
<h3 id="コンストラクタ">
|
|
コンストラクタ
|
|
<a class="anchor" href="#%e3%82%b3%e3%83%b3%e3%82%b9%e3%83%88%e3%83%a9%e3%82%af%e3%82%bf">#</a>
|
|
</h3>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">constexpr</span> <span style="color:#a6e22e">semantic_version</span>(std<span style="color:#f92672">::</span><span style="color:#66d9ef">uint32_t</span> mjr, std<span style="color:#f92672">::</span><span style="color:#66d9ef">uint32_t</span> mnr, std<span style="color:#f92672">::</span><span style="color:#66d9ef">uint32_t</span> p) <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span></code></pre></div><p><code>major</code>, <code>minor</code>, <code>patch</code>バージョンを指定して構築します。</p></description></item><item><title>toml_fwd.hpp</title><link>https://toruniina.github.io/toml11/ja/docs/reference/toml_fwd/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://toruniina.github.io/toml11/ja/docs/reference/toml_fwd/</guid><description><h1 id="toml_fwdhpp">
|
|
toml_fwd.hpp
|
|
<a class="anchor" href="#toml_fwdhpp">#</a>
|
|
</h1>
|
|
<p><code>toml_fwd.hpp</code>は、toml11で定義される構造体の前方宣言と、マクロ定義を持ちます。</p>
|
|
<p>toml11の構造体についての前方宣言しか必要なく実装が必要ない場合、
|
|
<code>toml.hpp</code> のかわりにこちらを <code>include</code> することでコンパイル時間を短縮できます。</p>
|
|
<blockquote class="book-hint warning">
|
|
このファイルには前方宣言しか含まれていないため、
|
|
<code>toml::basic_value&lt;toml::type_config&gt;::table_type</code> として定義される
|
|
<code>toml::table</code> と、同様に定義される <code>toml::array</code> は使用できません。
|
|
それらには <code>basic_value</code> の実装が必要だからです。
|
|
</blockquote>
|
|
|
|
<p>このヘッダファイルと <code>toml.hpp</code> は <code>${TOML11_INCLUDE_DIR}/</code> 以下に、
|
|
他のヘッダファイルは <code>${TOML11_INCLUDE_DIR}/toml11/</code> 以下にあります。</p></description></item><item><title>toml.hpp</title><link>https://toruniina.github.io/toml11/ja/docs/reference/toml/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://toruniina.github.io/toml11/ja/docs/reference/toml/</guid><description><h1 id="tomlhpp">
|
|
toml.hpp
|
|
<a class="anchor" href="#tomlhpp">#</a>
|
|
</h1>
|
|
<p><code>toml.hpp</code>は、他の全てのヘッダを <code>include</code> します。</p>
|
|
<p>これによって、toml11の全機能が使用可能になります。</p>
|
|
<p>このヘッダファイルと <code>toml_fwd.hpp</code> は <code>${TOML11_INCLUDE_DIR}/</code> 以下に、
|
|
他のヘッダファイルは <code>${toml11_include_dir}/toml11/</code> 以下にあります。</p></description></item><item><title>types.hpp</title><link>https://toruniina.github.io/toml11/ja/docs/reference/types/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://toruniina.github.io/toml11/ja/docs/reference/types/</guid><description><h1 id="typeshpp">
|
|
types.hpp
|
|
<a class="anchor" href="#typeshpp">#</a>
|
|
</h1>
|
|
<p>型情報を与えるクラスが定義されます。</p>
|
|
<h1 id="type_config">
|
|
<code>type_config</code>
|
|
<a class="anchor" href="#type_config">#</a>
|
|
</h1>
|
|
<p><code>type_config</code>は、<code>toml::basic_value</code>に与えられるパラメータをまとめた型です。</p>
|
|
<p><code>toml::basic_value&lt;T&gt;</code>内で異なる型を使用する場合、これを別に定義して渡します。
|
|
記載のある要素は全て必須の要素です。</p>
|
|
<p>通常のストリーム演算子を使用できない数値型を使用する場合、<code>read_int</code>、<code>read_float</code>に相当するものを定義し、置き換えてください。</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> toml
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">struct</span> <span style="color:#a6e22e">type_config</span>
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">using</span> comment_type <span style="color:#f92672">=</span> preserve_comments;
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">using</span> boolean_type <span style="color:#f92672">=</span> <span style="color:#66d9ef">bool</span>;
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">using</span> integer_type <span style="color:#f92672">=</span> std<span style="color:#f92672">::</span><span style="color:#66d9ef">int64_t</span>;
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">using</span> floating_type <span style="color:#f92672">=</span> <span style="color:#66d9ef">double</span>;
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">using</span> string_type <span style="color:#f92672">=</span> std<span style="color:#f92672">::</span>string;
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> T<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">using</span> array_type <span style="color:#f92672">=</span> std<span style="color:#f92672">::</span>vector<span style="color:#f92672">&lt;</span>T<span style="color:#f92672">&gt;</span>;
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> K, <span style="color:#66d9ef">typename</span> T<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">using</span> table_type <span style="color:#f92672">=</span> std<span style="color:#f92672">::</span>unordered_map<span style="color:#f92672">&lt;</span>K, T<span style="color:#f92672">&gt;</span>;
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">static</span> result<span style="color:#f92672">&lt;</span>integer_type, error_info<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span> parse_int(<span style="color:#66d9ef">const</span> std<span style="color:#f92672">::</span>string<span style="color:#f92672">&amp;</span> str, <span style="color:#66d9ef">const</span> source_location src, <span style="color:#66d9ef">const</span> std<span style="color:#f92672">::</span><span style="color:#66d9ef">uint8_t</span> base);
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">static</span> result<span style="color:#f92672">&lt;</span>floating_type, error_info<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span> parse_float(<span style="color:#66d9ef">const</span> std<span style="color:#f92672">::</span>string<span style="color:#f92672">&amp;</span> str, <span style="color:#66d9ef">const</span> source_location src, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">bool</span> is_hex);
|
|
</span></span><span style="display:flex;"><span>};
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> value <span style="color:#f92672">=</span> basic_value<span style="color:#f92672">&lt;</span>type_config<span style="color:#f92672">&gt;</span>;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> table <span style="color:#f92672">=</span> <span style="color:#66d9ef">typename</span> value<span style="color:#f92672">::</span>table_type;
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> array <span style="color:#f92672">=</span> <span style="color:#66d9ef">typename</span> value<span style="color:#f92672">::</span>array_type;
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span>} <span style="color:#75715e">// toml
|
|
</span></span></span></code></pre></div><h2 id="static-メンバ関数">
|
|
<code>static</code> メンバ関数
|
|
<a class="anchor" href="#static-%e3%83%a1%e3%83%b3%e3%83%90%e9%96%a2%e6%95%b0">#</a>
|
|
</h2>
|
|
<h3 id="parse_intstr-src-base">
|
|
<code>parse_int(str, src, base)</code>
|
|
<a class="anchor" href="#parse_intstr-src-base">#</a>
|
|
</h3>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">static</span> result<span style="color:#f92672">&lt;</span>integer_type, error_info<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span>parse_int(<span style="color:#66d9ef">const</span> std<span style="color:#f92672">::</span>string<span style="color:#f92672">&amp;</span> str, <span style="color:#66d9ef">const</span> source_location src, <span style="color:#66d9ef">const</span> std<span style="color:#f92672">::</span><span style="color:#66d9ef">uint8_t</span> base);
|
|
</span></span></code></pre></div><p>通常のストリーム演算子などを使用できない型を<code>integer_type</code>として使用する場合、この関数を実装してください。</p></description></item><item><title>value_t.hpp</title><link>https://toruniina.github.io/toml11/ja/docs/reference/value_t/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://toruniina.github.io/toml11/ja/docs/reference/value_t/</guid><description><h1 id="value_thpp">
|
|
value_t.hpp
|
|
<a class="anchor" href="#value_thpp">#</a>
|
|
</h1>
|
|
<p>型情報を表す列挙型です。</p>
|
|
<h1 id="value_t">
|
|
<code>value_t</code>
|
|
<a class="anchor" href="#value_t">#</a>
|
|
</h1>
|
|
<p><code>value_t</code>は、<code>toml::value</code>が持つ型情報を扱う際に使用します。</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> toml
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">enum</span> <span style="color:#66d9ef">class</span> <span style="color:#a6e22e">value_t</span> <span style="color:#f92672">:</span> std<span style="color:#f92672">::</span><span style="color:#66d9ef">uint8_t</span>
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span> empty <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>,
|
|
</span></span><span style="display:flex;"><span> boolean <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>,
|
|
</span></span><span style="display:flex;"><span> integer <span style="color:#f92672">=</span> <span style="color:#ae81ff">2</span>,
|
|
</span></span><span style="display:flex;"><span> floating <span style="color:#f92672">=</span> <span style="color:#ae81ff">3</span>,
|
|
</span></span><span style="display:flex;"><span> string <span style="color:#f92672">=</span> <span style="color:#ae81ff">4</span>,
|
|
</span></span><span style="display:flex;"><span> offset_datetime <span style="color:#f92672">=</span> <span style="color:#ae81ff">5</span>,
|
|
</span></span><span style="display:flex;"><span> local_datetime <span style="color:#f92672">=</span> <span style="color:#ae81ff">6</span>,
|
|
</span></span><span style="display:flex;"><span> local_date <span style="color:#f92672">=</span> <span style="color:#ae81ff">7</span>,
|
|
</span></span><span style="display:flex;"><span> local_time <span style="color:#f92672">=</span> <span style="color:#ae81ff">8</span>,
|
|
</span></span><span style="display:flex;"><span> array <span style="color:#f92672">=</span> <span style="color:#ae81ff">9</span>,
|
|
</span></span><span style="display:flex;"><span> table <span style="color:#f92672">=</span> <span style="color:#ae81ff">10</span>
|
|
</span></span><span style="display:flex;"><span>};
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span>std<span style="color:#f92672">::</span>ostream<span style="color:#f92672">&amp;</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">&lt;&lt;</span>(std<span style="color:#f92672">::</span>ostream<span style="color:#f92672">&amp;</span> os, value_t t);
|
|
</span></span><span style="display:flex;"><span>std<span style="color:#f92672">::</span>string to_string(value_t t);
|
|
</span></span><span style="display:flex;"><span>} <span style="color:#75715e">// toml
|
|
</span></span></span></code></pre></div><h2 id="非メンバ関数">
|
|
非メンバ関数
|
|
<a class="anchor" href="#%e9%9d%9e%e3%83%a1%e3%83%b3%e3%83%90%e9%96%a2%e6%95%b0">#</a>
|
|
</h2>
|
|
<h3 id="ストリーム演算子">
|
|
ストリーム演算子
|
|
<a class="anchor" href="#%e3%82%b9%e3%83%88%e3%83%aa%e3%83%bc%e3%83%a0%e6%bc%94%e7%ae%97%e5%ad%90">#</a>
|
|
</h3>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span>std<span style="color:#f92672">::</span>ostream<span style="color:#f92672">&amp;</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">&lt;&lt;</span>(std<span style="color:#f92672">::</span>ostream<span style="color:#f92672">&amp;</span> os, value_t t);
|
|
</span></span></code></pre></div><p><code>value_t</code>の値を文字列化してストリームへ出力します。</p>
|
|
<h3 id="to_string">
|
|
<code>to_string</code>
|
|
<a class="anchor" href="#to_string">#</a>
|
|
</h3>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span>std<span style="color:#f92672">::</span>string to_string(value_t t);
|
|
</span></span></code></pre></div><p><code>value_t</code>の値を文字列化して返します。</p></description></item><item><title>value.hpp</title><link>https://toruniina.github.io/toml11/ja/docs/reference/value/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://toruniina.github.io/toml11/ja/docs/reference/value/</guid><description><h1 id="valuehpp">
|
|
value.hpp
|
|
<a class="anchor" href="#valuehpp">#</a>
|
|
</h1>
|
|
<p><code>value.hpp</code>では、<code>basic_value</code>が定義されます。</p>
|
|
<h1 id="tomlbasic_value">
|
|
<code>toml::basic_value</code>
|
|
<a class="anchor" href="#tomlbasic_value">#</a>
|
|
</h1>
|
|
<p><code>basic_value</code>は、TOMLの値を格納するクラスです。</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> toml
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">template</span> <span style="color:#f92672">&lt;</span><span style="color:#66d9ef">class</span> <span style="color:#a6e22e">TypeConfig</span><span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">class</span> <span style="color:#a6e22e">basic_value</span>;
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#75715e">// 以下はtypes.hppで定義される
|
|
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// using value = basic_value&lt;type_config&gt;;
|
|
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// using table = typename basic_value&lt;type_config&gt;::table_type;
|
|
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// using array = typename basic_value&lt;type_config&gt;::array_type;
|
|
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> TC<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">==</span>(<span style="color:#66d9ef">const</span> basic_value<span style="color:#f92672">&lt;</span>TC<span style="color:#f92672">&gt;&amp;</span>, <span style="color:#66d9ef">const</span> basic_value<span style="color:#f92672">&lt;</span>TC<span style="color:#f92672">&gt;&amp;</span>);
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> TC<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">!=</span>(<span style="color:#66d9ef">const</span> basic_value<span style="color:#f92672">&lt;</span>TC<span style="color:#f92672">&gt;&amp;</span>, <span style="color:#66d9ef">const</span> basic_value<span style="color:#f92672">&lt;</span>TC<span style="color:#f92672">&gt;&amp;</span>);
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> TC<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">&lt;</span> (<span style="color:#66d9ef">const</span> basic_value<span style="color:#f92672">&lt;</span>TC<span style="color:#f92672">&gt;&amp;</span>, <span style="color:#66d9ef">const</span> basic_value<span style="color:#f92672">&lt;</span>TC<span style="color:#f92672">&gt;&amp;</span>);
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> TC<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">&lt;=</span>(<span style="color:#66d9ef">const</span> basic_value<span style="color:#f92672">&lt;</span>TC<span style="color:#f92672">&gt;&amp;</span>, <span style="color:#66d9ef">const</span> basic_value<span style="color:#f92672">&lt;</span>TC<span style="color:#f92672">&gt;&amp;</span>);
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> TC<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">&gt;</span> (<span style="color:#66d9ef">const</span> basic_value<span style="color:#f92672">&lt;</span>TC<span style="color:#f92672">&gt;&amp;</span>, <span style="color:#66d9ef">const</span> basic_value<span style="color:#f92672">&lt;</span>TC<span style="color:#f92672">&gt;&amp;</span>);
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> TC<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">bool</span> <span style="color:#66d9ef">operator</span><span style="color:#f92672">&gt;=</span>(<span style="color:#66d9ef">const</span> basic_value<span style="color:#f92672">&lt;</span>TC<span style="color:#f92672">&gt;&amp;</span>, <span style="color:#66d9ef">const</span> basic_value<span style="color:#f92672">&lt;</span>TC<span style="color:#f92672">&gt;&amp;</span>);
|
|
</span></span><span style="display:flex;"><span>} <span style="color:#75715e">//toml
|
|
</span></span></span></code></pre></div><h2 id="メンバ型">
|
|
メンバ型
|
|
<a class="anchor" href="#%e3%83%a1%e3%83%b3%e3%83%90%e5%9e%8b">#</a>
|
|
</h2>
|
|
<p>以下のメンバ型が定義されます。</p></description></item><item><title>version.hpp</title><link>https://toruniina.github.io/toml11/ja/docs/reference/version/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://toruniina.github.io/toml11/ja/docs/reference/version/</guid><description><h1 id="versionhpp">
|
|
version.hpp
|
|
<a class="anchor" href="#versionhpp">#</a>
|
|
</h1>
|
|
<p><code>version.hpp</code>では、toml11とC++のバージョン情報に関係するマクロが定義されます。</p>
|
|
<h2 id="マクロ">
|
|
マクロ
|
|
<a class="anchor" href="#%e3%83%9e%e3%82%af%e3%83%ad">#</a>
|
|
</h2>
|
|
<h3 id="toml11_version_major">
|
|
<code>TOML11_VERSION_MAJOR</code>
|
|
<a class="anchor" href="#toml11_version_major">#</a>
|
|
</h3>
|
|
<p>toml11のメジャーバージョンです。</p>
|
|
<h3 id="toml11_version_minor">
|
|
<code>TOML11_VERSION_MINOR</code>
|
|
<a class="anchor" href="#toml11_version_minor">#</a>
|
|
</h3>
|
|
<p>toml11のマイナーバージョンです。</p>
|
|
<h3 id="toml11_version_patch">
|
|
<code>TOML11_VERSION_PATCH</code>
|
|
<a class="anchor" href="#toml11_version_patch">#</a>
|
|
</h3>
|
|
<p>toml11のパッチバージョンです。</p>
|
|
<h2 id="関数">
|
|
関数
|
|
<a class="anchor" href="#%e9%96%a2%e6%95%b0">#</a>
|
|
</h2>
|
|
<h3 id="license_notice">
|
|
<code>license_notice</code>
|
|
<a class="anchor" href="#license_notice">#</a>
|
|
</h3>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> toml
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span><span style="color:#f92672">*</span> <span style="color:#a6e22e">license_notice</span>() <span style="color:#66d9ef">noexcept</span>;
|
|
</span></span><span style="display:flex;"><span>}
|
|
</span></span></code></pre></div><p>ライセンス条項を返します。</p>
|
|
<p>ソースコードを公開せずに頒布する際の利便性のために用意されています。</p></description></item><item><title>visit.hpp</title><link>https://toruniina.github.io/toml11/ja/docs/reference/visit/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://toruniina.github.io/toml11/ja/docs/reference/visit/</guid><description><h1 id="visithpp">
|
|
visit.hpp
|
|
<a class="anchor" href="#visithpp">#</a>
|
|
</h1>
|
|
<p><code>visit.hpp</code>では、<code>toml::visit</code>が定義されます。</p>
|
|
<h1 id="tomlvisit">
|
|
<code>toml::visit</code>
|
|
<a class="anchor" href="#tomlvisit">#</a>
|
|
</h1>
|
|
<h2 id="関数">
|
|
関数
|
|
<a class="anchor" href="#%e9%96%a2%e6%95%b0">#</a>
|
|
</h2>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> toml
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">template</span><span style="color:#f92672">&lt;</span><span style="color:#66d9ef">typename</span> Visitor, <span style="color:#66d9ef">typename</span> ... Args<span style="color:#f92672">&gt;</span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#75715e">/* visitor にArgsの中身を渡した際の返り値 */</span>
|
|
</span></span><span style="display:flex;"><span>visit(Visitor<span style="color:#f92672">&amp;&amp;</span> visitor, Args<span style="color:#f92672">&amp;&amp;</span> ... args);
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span>} <span style="color:#75715e">// toml
|
|
</span></span></span></code></pre></div><p><code>basic_value&lt;TC&gt;</code>が保持している型に対応する<code>Visitor</code>のオーバーロードを呼び出し、その結果を返します。</p>
|
|
<h4 id="条件">
|
|
条件
|
|
<a class="anchor" href="#%e6%9d%a1%e4%bb%b6">#</a>
|
|
</h4>
|
|
<p><code>Visitor</code>は、<code>basic_value&lt;TC&gt;</code>が保持している型のどれに対しても呼び出し可能な関数または関数オブジェクトでなければなりません。</p>
|
|
<p>また、それぞれのオーバーロードで返り値は同じであることが要求されます。</p>
|
|
<h4 id="例">
|
|
例
|
|
<a class="anchor" href="#%e4%be%8b">#</a>
|
|
</h4>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e">&lt;toml.hpp&gt;</span><span style="color:#75715e">
|
|
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e">&lt;iostream&gt;</span><span style="color:#75715e">
|
|
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">struct</span> <span style="color:#a6e22e">type_name_of</span>
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>string <span style="color:#66d9ef">operator</span>()(<span style="color:#66d9ef">const</span> toml<span style="color:#f92672">::</span>value<span style="color:#f92672">::</span>boolean_type <span style="color:#f92672">&amp;</span>) <span style="color:#66d9ef">const</span> {<span style="color:#66d9ef">return</span> <span style="color:#e6db74">&#34;boolean&#34;</span>;}
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>string <span style="color:#66d9ef">operator</span>()(<span style="color:#66d9ef">const</span> toml<span style="color:#f92672">::</span>value<span style="color:#f92672">::</span>integer_type <span style="color:#f92672">&amp;</span>) <span style="color:#66d9ef">const</span> {<span style="color:#66d9ef">return</span> <span style="color:#e6db74">&#34;integer&#34;</span>;}
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>string <span style="color:#66d9ef">operator</span>()(<span style="color:#66d9ef">const</span> toml<span style="color:#f92672">::</span>value<span style="color:#f92672">::</span>floating_type <span style="color:#f92672">&amp;</span>) <span style="color:#66d9ef">const</span> {<span style="color:#66d9ef">return</span> <span style="color:#e6db74">&#34;floating&#34;</span>;}
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>string <span style="color:#66d9ef">operator</span>()(<span style="color:#66d9ef">const</span> toml<span style="color:#f92672">::</span>value<span style="color:#f92672">::</span>string_type <span style="color:#f92672">&amp;</span>) <span style="color:#66d9ef">const</span> {<span style="color:#66d9ef">return</span> <span style="color:#e6db74">&#34;string&#34;</span>;}
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>string <span style="color:#66d9ef">operator</span>()(<span style="color:#66d9ef">const</span> toml<span style="color:#f92672">::</span>value<span style="color:#f92672">::</span>local_time_type <span style="color:#f92672">&amp;</span>) <span style="color:#66d9ef">const</span> {<span style="color:#66d9ef">return</span> <span style="color:#e6db74">&#34;local_time&#34;</span>;}
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>string <span style="color:#66d9ef">operator</span>()(<span style="color:#66d9ef">const</span> toml<span style="color:#f92672">::</span>value<span style="color:#f92672">::</span>local_date_type <span style="color:#f92672">&amp;</span>) <span style="color:#66d9ef">const</span> {<span style="color:#66d9ef">return</span> <span style="color:#e6db74">&#34;local_date&#34;</span>;}
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>string <span style="color:#66d9ef">operator</span>()(<span style="color:#66d9ef">const</span> toml<span style="color:#f92672">::</span>value<span style="color:#f92672">::</span>local_datetime_type <span style="color:#f92672">&amp;</span>) <span style="color:#66d9ef">const</span> {<span style="color:#66d9ef">return</span> <span style="color:#e6db74">&#34;local_datetime&#34;</span>;}
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>string <span style="color:#66d9ef">operator</span>()(<span style="color:#66d9ef">const</span> toml<span style="color:#f92672">::</span>value<span style="color:#f92672">::</span>offset_datetime_type<span style="color:#f92672">&amp;</span>) <span style="color:#66d9ef">const</span> {<span style="color:#66d9ef">return</span> <span style="color:#e6db74">&#34;offset_datetime&#34;</span>;}
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>string <span style="color:#66d9ef">operator</span>()(<span style="color:#66d9ef">const</span> toml<span style="color:#f92672">::</span>value<span style="color:#f92672">::</span>array_type <span style="color:#f92672">&amp;</span>) <span style="color:#66d9ef">const</span> {<span style="color:#66d9ef">return</span> <span style="color:#e6db74">&#34;array&#34;</span>;}
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>string <span style="color:#66d9ef">operator</span>()(<span style="color:#66d9ef">const</span> toml<span style="color:#f92672">::</span>value<span style="color:#f92672">::</span>table_type <span style="color:#f92672">&amp;</span>) <span style="color:#66d9ef">const</span> {<span style="color:#66d9ef">return</span> <span style="color:#e6db74">&#34;table&#34;</span>;}
|
|
</span></span><span style="display:flex;"><span>};
|
|
</span></span><span style="display:flex;"><span>
|
|
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>()
|
|
</span></span><span style="display:flex;"><span>{
|
|
</span></span><span style="display:flex;"><span> toml<span style="color:#f92672">::</span>value v(<span style="color:#ae81ff">3.14</span>);
|
|
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>cout <span style="color:#f92672">&lt;&lt;</span> toml<span style="color:#f92672">::</span>visit(type_name_of{}, v) <span style="color:#f92672">&lt;&lt;</span> std<span style="color:#f92672">::</span>endl; <span style="color:#75715e">// floating
|
|
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
|
|
</span></span><span style="display:flex;"><span>}
|
|
</span></span></code></pre></div><h1 id="関連項目">
|
|
関連項目
|
|
<a class="anchor" href="#%e9%96%a2%e9%80%a3%e9%a0%85%e7%9b%ae">#</a>
|
|
</h1>
|
|
<ul>
|
|
<li><a href="https://toruniina.github.io/toml11/ja/docs/reference/value/">value.hpp</a></li>
|
|
</ul></description></item></channel></rss> |