Files
toml11/docs/reference/format/index.html

431 lines
87 KiB
HTML
Raw Permalink Normal View History

<!doctype html><html lang=en dir=ltr><head><meta charset=UTF-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="
format.hpp
#
Defines structures and enumerations related to formatting information for toml::value.
indent_char
#
An enumeration representing the indentation character choice.
enum class indent_char : std::uint8_t
{
space, // use space
tab, // use tab
none // no indent
};
std::ostream& operator<<(std::ostream& os, const indent_char& c);
std::string to_string(const indent_char);
Choosing none means no indentation is used, regardless of the value in super tables.
If both space and tab are specified within the serializable value, the behavior is unspecified; typically, the unspecified indentation character appears."><meta name=theme-color media="(prefers-color-scheme: light)" content="#ffffff"><meta name=theme-color media="(prefers-color-scheme: dark)" content="#343a40"><meta name=color-scheme content="light dark"><meta property="og:url" content="https://toruniina.github.io/toml11/docs/reference/format/"><meta property="og:site_name" content="toml11"><meta property="og:title" content="format.hpp"><meta property="og:description" content="format.hpp # Defines structures and enumerations related to formatting information for toml::value.
indent_char # An enumeration representing the indentation character choice.
enum class indent_char : std::uint8_t { space, // use space tab, // use tab none // no indent }; std::ostream& operator<<(std::ostream& os, const indent_char& c); std::string to_string(const indent_char); Choosing none means no indentation is used, regardless of the value in super tables.
If both space and tab are specified within the serializable value, the behavior is unspecified; typically, the unspecified indentation character appears."><meta property="og:locale" content="en"><meta property="og:type" content="article"><meta property="article:section" content="docs"><title>format.hpp | toml11</title><link rel=manifest href=/toml11/manifest.json><link rel=icon href=/toml11/favicon.png><link rel=canonical href=https://toruniina.github.io/toml11/docs/reference/format/><link rel=alternate hreflang=ja href=https://toruniina.github.io/toml11/ja/docs/reference/format/ title=format.hpp><link rel=stylesheet href=/toml11/book.min.6d8037b375fe949eee1b70501c5fb9478914c9c5eb3ef7696163fd3031c69421.css integrity="sha256-bYA3s3X+lJ7uG3BQHF+5R4kUycXrPvdpYWP9MDHGlCE=" crossorigin=anonymous><script defer src=/toml11/fuse.min.js></script><script defer src=/toml11/en.search.min.87bec23503963d7026bfa3a917b92707789d315c9c9e005e23226b35dce643f5.js integrity="sha256-h77CNQOWPXAmv6OpF7knB3idMVycngBeIyJrNdzmQ/U=" crossorigin=anonymous></script></head><body dir=ltr><input type=checkbox class="hidden toggle" id=menu-control>
<input type=checkbox class="hidden toggle" id=toc-control><main class="container flex"><aside class=book-menu><div class=book-menu-content><nav><h2 class=book-brand><a class="flex align-center" href=/toml11/><span>toml11</span></a></h2><div class="book-search hidden"><input type=text id=book-search-input placeholder=Search aria-label=Search maxlength=64 data-hotkeys=s/><div class="book-search-spinner hidden"></div><ul id=book-search-results></ul></div><script>document.querySelector(".book-search").classList.remove("hidden")</script><ul class=book-languages><li><input type=checkbox id=languages class=toggle>
<label for=languages class="flex justify-between"><a role=button class="flex align-center"><img src=/toml11/svg/translate.svg class=book-icon alt=Languages>
English</a></label><ul><li><a href=https://toruniina.github.io/toml11/ja/docs/reference/format/>日本語</a></li></ul></li></ul><ul><li><a href=/toml11/docs/installation/>installation</a><ul></ul></li><li><input type=checkbox id=section-291123c850af98d8b815ccdbb4c33657 class=toggle>
<label for=section-291123c850af98d8b815ccdbb4c33657 class="flex justify-between"><a href=/toml11/docs/features/>features</a></label><ul><li><a href=/toml11/docs/features/parsing_files/>parsing files</a></li><li><a href=/toml11/docs/features/value/>getting values</a></li><li><a href=/toml11/docs/features/error_message/>error message</a></li><li><a href=/toml11/docs/features/serialize/>serializing values</a></li><li><a href=/toml11/docs/features/configure_types/>configuring types</a></li><li><a href=/toml11/docs/features/literal/>toml literal</a></li><li><a href=/toml11/docs/features/toml_spec/>toml spec</a></li><li><a href=/toml11/docs/features/extension/>extension</a></li></ul></li><li><input type=checkbox id=section-e2e812e55021b82e114feaae98f1a02e class=toggle checked>
<label for=section-e2e812e55021b82e114feaae98f1a02e class="flex justify-between"><a href=/toml11/docs/reference/>reference</a></label><ul><li><a href=/toml11/docs/reference/color/>color.hpp</a></li><li><a href=/toml11/docs/reference/comments/>comments.hpp</a></li><li><a href=/toml11/docs/reference/conversion/>conversion.hpp</a></li><li><a href=/toml11/docs/reference/datetime/>datetime.hpp</a></li><li><a href=/toml11/docs/reference/error_info/>error_info.hpp</a></li><li><a href=/toml11/docs/reference/exception/>exception.hpp</a></li><li><a href=/toml11/docs/reference/find/>find.hpp</a></li><li><a href=/toml11/docs/reference/format/ class=active>format.hpp</a></li><li><a href=/toml11/docs/reference/from/>from.hpp</a></li><li><a href=/toml11/docs/reference/get/>get.hpp</a></li><li><a href=/toml11/docs/reference/into/>into.hpp</a></li><li><a href=/toml11/docs/reference/literal/>literal.hpp</a></li><li><a href=/toml11/docs/reference/ordered_map/>ordered_map.hpp</a></li><li><a href=/toml11/docs/reference/parser/>parser.hpp</a></li><li><a href=/toml11/docs/reference/result/>result.hpp</a></li><li><a href=/toml11/docs/reference/serializer/>serializer.hpp</a></li><li><a href=/toml11/docs/reference/source_location/>source_location.hpp</a></li><li><a href=/toml11/docs/reference/spec/>spec.hpp</a></li><li><a href=/toml11/docs/reference/toml_fwd/>toml_fwd.hpp</a></li><li><a href=/toml11/docs/reference/toml/>toml.hpp</a></li><li><a href=/toml11/docs/reference/types/>types.hpp</a></li><li><a href=/toml11/docs/reference/value_t/>value_t.hpp</a></li><li><a href=/toml11/docs/reference/value/>value.hpp</a></li><li><a href=/toml11/docs/reference/version/>version.hpp</a></li><li><a href=/toml11/docs/reference/visit/>visit.hpp</a></li></ul></li><li><a href=/toml11/docs/changelog/>changelog</a><ul></ul></li></ul><ul><li><a href=https://github.com/ToruNiina/toml11 target=_blank rel=noopener>GitHub</a></li></ul></nav><script>(function(){var e=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(){localStorage.setItem("menu.scrollTop",e.scrollTop)}),e.scrollTop=localStorage.getItem("menu.scrollTop")})()</script></div></aside><div class=book-page><header class=book-header><div class="flex align-center justify-between"><label for=menu-control><img src=/toml11/svg/menu.svg class=book-icon alt=Menu>
</label><strong>format.hpp</strong>
<label for=toc-control><img src=/toml11/svg/toc.svg class=book-icon alt="Table of Contents"></label></div><aside class="hidden clearfix"><nav id=TableOfContents><ul><li><a href=#formathpp>format.hpp</a></li><li><a href=#indent_char><code>indent_char</code></a></li><li><a href=#boolean_format_info><code>boolean_format_info</code></a></li><li><a href=#integer_format><code>integer_format</code></a></li><li><a href=#integer_format_info><code>integer_format_info</code></a><ul><li><a href=#example>example</a></li><li><a href=#member-variables>Member Variables</a><ul><li><a href=#integer_format-fmt><code>integer_format fmt</code></a></li><li><a href=#bool-uppercase><code>bool uppercase</code></a></li><li><a href=#stdsize_t-width><code>std::size_t width</code></a></li><li><a href=#stdsize_t-spacer><code>std::size_t spacer</code></a></li><li><a href=#stdstring-suffix><code>std::string suffix</code></a></li></ul></li></ul></li><li><a href=#floating_format><code>floating_format</code></a></li><li><a href=#floating_format_info><code>floating_format_info</code></a><ul><li><a href=#example-1>example</a></li><li><a href=#member-variables-1>Member Variables</a><ul><li><a href=#floating_format-fmt><code>floating_format fmt</code></a></li><li><a href=#stdsize_t-prec><code>std::size_t prec</code></a></li><li><a href=#stdstring-suffix-1><code>std::string suffix</code></a></li></ul></li></ul></li><li><a href=#string_format><code>string_format</code></a></li><li><a href=#string_format_info><code>string_format_info</code></a><ul><li><a href=#example-2>example</a></li><li><a href=#member-variables-2>Member Variables</a><ul><li><a href=#string_format-fmt><code>string_format fmt</code></a></li><li><a href=#bool-start_with_newline><code>bool start_with_newline</code></a></li></ul></li></ul></li><li><a href=#datetime_delimiter_kind><code>datetime_delimiter_kind</code></a></li><li><a href=#offset_datetime_format_info><code>offset_datetime_format_info</code></a><ul><li><a href=#example-3>example</a></li><li><a href=#member-variables-3>Member Variables</a><ul><li><a href=#datetime_delimiter_kind-delimiter><code>datetime_delimiter_kind delimiter</code></a></li><li><a href=#bool-has_seconds><code>bool has_seconds</code></a></li><li><a href=#stdsize_t-subsecond_precision><code>std::size_t subsecond_precision</code></a></li></ul></li></ul></li><li><a href=#local_datetime_format_info><code>local_datetime_format_info</code></a><ul><li><a href=#member-variables-4>Member Variables</a><ul><li><a href=#datetime_delimiter_kind-delimiter-1><code>datetime_delimiter_kind delimiter</code></a></li><li><a href=#bool-has_seconds-1><code>bool has_seconds</code></a></li><li><a href=#stdsize_t-subsecond_precision-1><code>std::size_t subsecond_precision</code></a></li></ul></li></ul></li><li><a href=#local_date_format_info><code>local_date_format_info</code></a></li><li><a href=#local_time_format_info><code>local_time_format_info</code></a><ul><li><a href=#member-variables-5>Member Variables</a><ul><li><a href=#bool-has_seconds-2><code>bool has_seconds</code></a></li><li><a href=#stdsize_t-subsecond_precision-2><code>std::size_t subsecond_precision</code></a></li></ul></li></ul></li><li><a href=#array_format><code>array_format</code></a></li><li><a href=#array_format_info><code>array_format_info</code></a><ul><li><a href=#example-4>example</a></li><li><a href=#member-variables-6>Member Variables</a><ul><li><a href=#array_format-fmt><code>array_format fmt</code></a></li><li><a href=#indent_char-indent_type><code>indent_char indent_type</code></a></li><li><a href=#stdint32_t-body_indent><code>std::int32_t body_indent</code></a></li><li><a href=#stdint32_t-closing_indent><code>std::int32_t closing_indent</code></a></li></ul></li></ul></li><li><a href=#table_format><code>table_format</code></a></li><li><a href=#table_format_info><code>table_format_info</code></a><ul><li><a href=#example-5>example</a></li><li><a href=#member-variables-7>Member Variables</a><ul><li><a href=#table_format-fmt><code>table_format fmt</code></a></li><li><a href=#indent_char-indent_type-1><code>inden
<a class=anchor href=#formathpp>#</a></h1><p>Defines structures and enumerations related to formatting information for <code>toml::value</code>.</p><h1 id=indent_char><code>indent_char</code>
<a class=anchor href=#indent_char>#</a></h1><p>An enumeration representing the indentation character choice.</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>Choosing <code>none</code> means no indentation is used, regardless of the value in super tables.</p><p>If both <code>space</code> and <code>tab</code> are specified within the serializable value, the behavior is unspecified; typically, the unspecified indentation character appears.</p><h1 id=boolean_format_info><code>boolean_format_info</code>
<a class=anchor href=#boolean_format_info>#</a></h1><p>Formatting information for <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>There is only one way to format <code>boolean</code>, so no configurable values are provided.</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>Specifies the radix of an <code>integer</code>.</p><h1 id=integer_format_info><code>integer_format_info</code>
<a class=anchor href=#integer_format_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>struct</span> <span style=color:#a6e22e>integer_format_info</span>
</span></span><span style=display:flex><span>{
</span></span><span style=display:flex><span> integer_format fmt <span style=color:#f92672>=</span> integer_format<span style=color:#f92672>::</span>dec;
</span></span><span style=display:flex><span> <span style=color:#66d9ef>bool</span> uppercase <span style=color:#f92672>=</span> true; <span style=color:#75715e>// use uppercase letters
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> std<span style=color:#f92672>::</span>size_t width <span style=color:#f92672>=</span> <span style=color:#ae81ff>0</span>; <span style=color:#75715e>// minimal width (may exceed)
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> std<span style=color:#f92672>::</span>size_t spacer <span style=color:#f92672>=</span> <span style=color:#ae81ff>0</span>; <span style=color:#75715e>// position of `_` (if 0, no spacer)
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> std<span style=color:#f92672>::</span>string suffix <span style=color:#f92672>=</span> <span style=color:#e6db74>&#34;&#34;</span>; <span style=color:#75715e>// _suffix (library extension)
</span></span></span><span style=display:flex><span><span style=color:#75715e></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> integer_format_info<span style=color:#f92672>&amp;</span>, <span style=color:#66d9ef>const</span> integer_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> integer_format_info<span style=color:#f92672>&amp;</span>, <span style=color:#66d9ef>const</span> integer_format_info<span style=color:#f92672>&amp;</span>) <span style=color:#66d9ef>noexcept</span>;
</span></span></code></pre></div><h2 id=example>example
<a class=anchor href=#example>#</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:#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>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>0xDEADBEEF</span>);
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> v <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl; <span style=color:#75715e>// 3735928559
</span></span></span><span style=display:flex><span><span style=color:#75715e></span>
</span></span><span style=display:flex><span> v.as_integer_fmt().uppercase <span style=color:#f92672>=</span> true;
</span></span><span style=display:flex><span> v.as_integer_fmt().fmt <span style=color:#f92672>=</span> toml<span style=color:#f92672>::</span>integer_format<span style=color:#f92672>::</span>hex;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> v <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl; <span style=color:#75715e>// 0xDEADBEEF
</span></span></span><span style=display:flex><span><span style=color:#75715e></span>
</span></span><span style=display:flex><span> v.as_integer_fmt().spacer <span style=color:#f92672>=</span> <span style=color:#ae81ff>4</span>;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> v <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl; <span style=color:#75715e>// 0xDEAD_BEEF
</span></span></span><span style=display:flex><span><span style=color:#75715e></span>
</span></span><span style=display:flex><span> v.as_integer_fmt().spacer <span style=color:#f92672>=</span> <span style=color:#ae81ff>8</span>;
</span></span><span style=display:flex><span> v.as_integer_fmt().width <span style=color:#f92672>=</span> <span style=color:#ae81ff>16</span>;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> v <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl; <span style=color:#75715e>// 0x00000000_DEADBEEF
</span></span></span><span style=display:flex><span><span style=color:#75715e></span>}
</span></span></code></pre></div><h2 id=member-variables>Member Variables
<a class=anchor href=#member-variables>#</a></h2><h3 id=integer_format-fmt><code>integer_format fmt</code>
<a class=anchor href=#integer_format-fmt>#</a></h3><p>Specifies the radix.</p><h3 id=bool-uppercase><code>bool uppercase</code>
<a class=anchor href=#bool-uppercase>#</a></h3><p>Uses uppercase letters when formatted as a hexadecimal integer.</p><h3 id=stdsize_t-width><code>std::size_t width</code>
<a class=anchor href=#stdsize_t-width>#</a></h3><p>Specifies the minimum width. The formatted value may exceed this width.</p><p>For values smaller than this width, if <code>integer_format::dec</code>, no effect. Otherwise, leading zeros are added.</p><h3 id=stdsize_t-spacer><code>std::size_t spacer</code>
<a class=anchor href=#stdsize_t-spacer>#</a></h3><p>Specifies the width at which underscores <code>_</code> are inserted.</p><ul><li>If <code>3</code>, formatted as <code>1_234_567</code>.</li><li>If <code>4</code>, formatted as <code>0xdead_beef</code>.</li><li>If <code>0</code>, no underscores are inserted.</li></ul><p>Irregular widths are not allowed.</p><h3 id=stdstring-suffix><code>std::string suffix</code>
<a class=anchor href=#stdstring-suffix>#</a></h3><p>Stores the suffix when <code>spec::ext_num_suffix</code> of toml11 extension is <code>true</code>.</p><p>cf. <a href=https://toruniina.github.io/toml11/docs/reference/spec/>spec.hpp</a></p><h1 id=floating_format><code>floating_format</code>
<a class=anchor href=#floating_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>floating_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> defaultfloat <span style=color:#f92672>=</span> <span style=color:#ae81ff>0</span>,
</span></span><span style=display:flex><span> fixed <span style=color:#f92672>=</span> <span style=color:#ae81ff>1</span>, <span style=color:#75715e>// does not include exponential part
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> scientific <span style=color:#f92672>=</span> <span style=color:#ae81ff>2</span>, <span style=color:#75715e>// always include exponential part
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> hex <span style=color:#f92672>=</span> <span style=color:#ae81ff>3</span> <span style=color:#75715e>// hexfloat extension
</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> floating_format f);
</span></span><span style=display:flex><span>std<span style=color:#f92672>::</span>string to_string(<span style=color:#66d9ef>const</span> floating_format);
</span></span></code></pre></div><p>Specifies the formatting style for <code>floating</code> numbers.
Corresponds to <code>std::defaultfloat</code>, <code>std::fixed</code>, <code>std::scientific</code>, <code>std::hexfloat</code>.</p><p><code>hexfloat</code> is available only if <code>toml::spec::ext_hex_float</code> is <code>true</code>.</p><p>cf. <a href=https://toruniina.github.io/toml11/docs/reference/spec/#ext_num_suffix>spec.hpp</a></p><h1 id=floating_format_info><code>floating_format_info</code>
<a class=anchor href=#floating_format_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>struct</span> <span style=color:#a6e22e>floating_format_info</span>
</span></span><span style=display:flex><span>{
</span></span><span style=display:flex><span> floating_format fmt <span style=color:#f92672>=</span> floating_format<span style=color:#f92672>::</span>defaultfloat;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>size_t prec <span style=color:#f92672>=</span> <span style=color:#ae81ff>0</span>; <span style=color:#75715e>// precision (if 0, use the default)
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> std<span style=color:#f92672>::</span>string suffix <span style=color:#f92672>=</span> <span style=color:#e6db74>&#34;&#34;</span>; <span style=color:#75715e>// 1.0e+2_suffix (library extension)
</span></span></span><span style=display:flex><span><span style=color:#75715e></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> floating_format_info<span style=color:#f92672>&amp;</span>, <span style=color:#66d9ef>const</span> floating_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> floating_format_info<span style=color:#f92672>&amp;</span>, <span style=color:#66d9ef>const</span> floating_format_info<span style=color:#f92672>&amp;</span>) <span style=color:#66d9ef>noexcept</span>;
</span></span></code></pre></div><h2 id=example-1>example
<a class=anchor href=#example-1>#</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:#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>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 pi(<span style=color:#ae81ff>3.141592653589793</span>);
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> pi <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl; <span style=color:#75715e>// 3.14159
</span></span></span><span style=display:flex><span><span style=color:#75715e></span>
</span></span><span style=display:flex><span> pi.as_floating_fmt().fmt <span style=color:#f92672>=</span> toml<span style=color:#f92672>::</span>floating_format<span style=color:#f92672>::</span>fixed;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> pi <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl; <span style=color:#75715e>// 3.141593
</span></span></span><span style=display:flex><span><span style=color:#75715e></span>
</span></span><span style=display:flex><span> pi.as_floating_fmt().prec <span style=color:#f92672>=</span> <span style=color:#ae81ff>16</span>;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> pi <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl; <span style=color:#75715e>// 3.1415926535897931
</span></span></span><span style=display:flex><span><span style=color:#75715e></span>
</span></span><span style=display:flex><span> toml<span style=color:#f92672>::</span>value na(<span style=color:#ae81ff>6.02214076e+23</span>);
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> na <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl; <span style=color:#75715e>// 6.022e+23
</span></span></span><span style=display:flex><span><span style=color:#75715e></span>
</span></span><span style=display:flex><span> na.as_floating_fmt().fmt <span style=color:#f92672>=</span> toml<span style=color:#f92672>::</span>floating_format<span style=color:#f92672>::</span>fixed;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> na <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl; <span style=color:#75715e>// 602214075999999987023872.000000
</span></span></span><span style=display:flex><span><span style=color:#75715e></span>
</span></span><span style=display:flex><span> na.as_floating_fmt().fmt <span style=color:#f92672>=</span> toml<span style=color:#f92672>::</span>floating_format<span style=color:#f92672>::</span>scientific;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> na <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl; <span style=color:#75715e>// 6.022141e+23
</span></span></span><span style=display:flex><span><span style=color:#75715e></span>
</span></span><span style=display:flex><span> na.as_floating_fmt().prec <span style=color:#f92672>=</span> <span style=color:#ae81ff>16</span>;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> na <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl; <span style=color:#75715e>// 6.0221407599999999e+23
</span></span></span><span style=display:flex><span><span style=color:#75715e></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><h2 id=member-variables-1>Member Variables
<a class=anchor href=#member-variables-1>#</a></h2><h3 id=floating_format-fmt><code>floating_format fmt</code>
<a class=anchor href=#floating_format-fmt>#</a></h3><p>Specifies the formatting style.</p><h3 id=stdsize_t-prec><code>std::size_t prec</code>
<a class=anchor href=#stdsize_t-prec>#</a></h3><p>Specifies the precision after the decimal point.</p><h3 id=stdstring-suffix-1><code>std::string suffix</code>
<a class=anchor href=#stdstring-suffix-1>#</a></h3><p>Stores the suffix when <code>spec::ext_num_suffix</code> of toml11 extension is <code>true</code>.</p><p>cf. <a href=https://toruniina.github.io/toml11/docs/reference/spec/#ext_num_suffix>spec.hpp</a></p><h1 id=string_format><code>string_format</code>
<a class=anchor href=#string_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>string_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> basic <span style=color:#f92672>=</span> <span style=color:#ae81ff>0</span>,
</span></span><span style=display:flex><span> literal <span style=color:#f92672>=</span> <span style=color:#ae81ff>1</span>,
</span></span><span style=display:flex><span> multiline_basic <span style=color:#f92672>=</span> <span style=color:#ae81ff>2</span>,
</span></span><span style=display:flex><span> multiline_literal <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> string_format f);
</span></span><span style=display:flex><span>std<span style=color:#f92672>::</span>string to_string(<span style=color:#66d9ef>const</span> string_format);
</span></span></code></pre></div><p>Specifies the formatting style for strings.</p><h1 id=string_format_info><code>string_format_info</code>
<a class=anchor href=#string_format_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>struct</span> <span style=color:#a6e22e>string_format_info</span>
</span></span><span style=display:flex><span>{
</span></span><span style=display:flex><span> string_format fmt <span style=color:#f92672>=</span> string_format<span style=color:#f92672>::</span>basic;
</span></span><span style=display:flex><span> <span style=color:#66d9ef>bool</span> start_with_newline <span style=color:#f92672>=</span> false;
</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> string_format_info<span style=color:#f92672>&amp;</span>, <span style=color:#66d9ef>const</span> string_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> string_format_info<span style=color:#f92672>&amp;</span>, <span style=color:#66d9ef>const</span> string_format_info<span style=color:#f92672>&amp;</span>) <span style=color:#66d9ef>noexcept</span>;
</span></span></code></pre></div><h2 id=example-2>example
<a class=anchor href=#example-2>#</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:#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>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 s(<span style=color:#e6db74>&#34;foo&#34;</span>);
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> s <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl; <span style=color:#75715e>// &#34;foo&#34;
</span></span></span><span style=display:flex><span><span style=color:#75715e></span>
</span></span><span style=display:flex><span> s.as_string_fmt().fmt <span style=color:#f92672>=</span> toml<span style=color:#f92672>::</span>string_format<span style=color:#f92672>::</span>literal;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> s <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl; <span style=color:#75715e>// &#39;foo&#39;
</span></span></span><span style=display:flex><span><span style=color:#75715e></span>
</span></span><span style=display:flex><span> s.as_string_fmt().fmt <span style=color:#f92672>=</span> toml<span style=color:#f92672>::</span>string_format<span style=color:#f92672>::</span>multiline_basic;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> s <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl; <span style=color:#75715e>// &#34;&#34;&#34;foo&#34;&#34;&#34;
</span></span></span><span style=display:flex><span><span style=color:#75715e></span>
</span></span><span style=display:flex><span> s.as_string_fmt().fmt <span style=color:#f92672>=</span> toml<span style=color:#f92672>::</span>string_format<span style=color:#f92672>::</span>multiline_literal;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> s <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl; <span style=color:#75715e>// &#39;&#39;&#39;foo&#39;&#39;&#39;
</span></span></span><span style=display:flex><span><span style=color:#75715e></span>
</span></span><span style=display:flex><span> toml<span style=color:#f92672>::</span>value multiline(<span style=color:#e6db74>&#34;foo</span><span style=color:#ae81ff>\n</span><span style=color:#e6db74>bar&#34;</span>);
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> multiline <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl; <span style=color:#75715e>// &#34;foo\nbar&#34;
</span></span></span><span style=display:flex><span><span style=color:#75715e></span>
</span></span><span style=display:flex><span> multiline.as_string_fmt().fmt <span style=color:#f92672>=</span> toml<span style=color:#f92672>::</span>string_format<span style=color:#f92672>::</span>multiline_basic;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> multiline <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl; <span style=color:#75715e>// &#34;&#34;&#34;foo
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> <span style=color:#75715e>// bar&#34;&#34;&#34;
</span></span></span><span style=display:flex><span><span style=color:#75715e></span>
</span></span><span style=display:flex><span> multiline.as_string_fmt().start_with_newline <span style=color:#f92672>=</span> true;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> multiline <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl; <span style=color:#75715e>// &#34;&#34;&#34;
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> <span style=color:#75715e>// foo
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> <span style=color:#75715e>// bar&#34;&#34;&#34;
</span></span></span><span style=display:flex><span><span style=color:#75715e></span>
</span></span><span style=display:flex><span> multiline.as_string_fmt().fmt <span style=color:#f92672>=</span> toml<span style=color:#f92672>::</span>string_format<span style=color:#f92672>::</span>multiline_literal;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> multiline <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl; <span style=color:#75715e>// &#39;&#39;&#39;
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> <span style=color:#75715e>// foo
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> <span style=color:#75715e>// bar&#39;&#39;&#39;
</span></span></span><span style=display:flex><span><span style=color:#75715e></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><h2 id=member-variables-2>Member Variables
<a class=anchor href=#member-variables-2>#</a></h2><h3 id=string_format-fmt><code>string_format fmt</code>
<a class=anchor href=#string_format-fmt>#</a></h3><p>Specifies the formatting information for strings.</p><h3 id=bool-start_with_newline><code>bool start_with_newline</code>
<a class=anchor href=#bool-start_with_newline>#</a></h3><p>For <code>multiline_basic</code> or <code>multiline_literal</code>, specifies whether to include a newline after the initial <code>"""</code> or <code>'''</code>.</p><h1 id=datetime_delimiter_kind><code>datetime_delimiter_kind</code>
<a class=anchor href=#datetime_delimiter_kind>#</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>datetime_delimiter_kind</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> upper_T <span style=color:#f92672>=</span> <span style=color:#ae81ff>0</span>,
</span></span><span style=display:flex><span> lower_t <span style=color:#f92672>=</span> <span style=color:#ae81ff>1</span>,
</span></span><span style=display:flex><span> space <span style=color:#f92672>=</span> <span style=color:#ae81ff>2</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> datetime_delimiter_kind d);
</span></span><span style=display:flex><span>std<span style=color:#f92672>::</span>string to_string(<span style=color:#66d9ef>const</span> datetime_delimiter_kind);
</span></span></code></pre></div><p>Specifies the delimiter used between date and time in <code>datetime</code>.</p><p>Possible options include <code>T</code>, <code>t</code>, and a space <code></code>.</p><h1 id=offset_datetime_format_info><code>offset_datetime_format_info</code>
<a class=anchor href=#offset_datetime_format_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>struct</span> <span style=color:#a6e22e>offset_datetime_format_info</span>
</span></span><span style=display:flex><span>{
</span></span><span style=display:flex><span> datetime_delimiter_kind delimiter <span style=color:#f92672>=</span> datetime_delimiter_kind<span style=color:#f92672>::</span>upper_T;
</span></span><span style=display:flex><span> <span style=color:#66d9ef>bool</span> has_seconds <span style=color:#f92672>=</span> true;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>size_t subsecond_precision <span style=color:#f92672>=</span> <span style=color:#ae81ff>6</span>; <span style=color:#75715e>// [us]
</span></span></span><span style=display:flex><span><span style=color:#75715e></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> offset_datetime_format_info<span style=color:#f92672>&amp;</span>, <span style=color:#66d9ef>const</span> offset_datetime_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> offset_datetime_format_info<span style=color:#f92672>&amp;</span>, <span style=color:#66d9ef>const</span> offset_datetime_format_info<span style=color:#f92672>&amp;</span>) <span style=color:#66d9ef>noexcept</span>;
</span></span></code></pre></div><h2 id=example-3>example
<a class=anchor href=#example-3>#</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:#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>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(toml<span style=color:#f92672>::</span>offset_datetime(
</span></span><span style=display:flex><span> toml<span style=color:#f92672>::</span>local_date(<span style=color:#ae81ff>2025</span>, toml<span style=color:#f92672>::</span>month_t<span style=color:#f92672>::</span>Mar, <span style=color:#ae81ff>29</span>),
</span></span><span style=display:flex><span> toml<span style=color:#f92672>::</span>local_time(<span style=color:#ae81ff>1</span>, <span style=color:#ae81ff>23</span>, <span style=color:#ae81ff>45</span>, <span style=color:#75715e>/*ms=*/</span><span style=color:#ae81ff>678</span>, <span style=color:#75715e>/*us=*/</span><span style=color:#ae81ff>901</span>, <span style=color:#75715e>/*ns=*/</span><span style=color:#ae81ff>234</span>),
</span></span><span style=display:flex><span> toml<span style=color:#f92672>::</span>time_offset(<span style=color:#ae81ff>9</span>, <span style=color:#ae81ff>0</span>)
</span></span><span style=display:flex><span> ));
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> v <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl; <span style=color:#75715e>// 2025-03-29T01:23:45.678901+09:00
</span></span></span><span style=display:flex><span><span style=color:#75715e></span>
</span></span><span style=display:flex><span> v.as_offset_datetime_fmt().subsecond_precision <span style=color:#f92672>=</span> <span style=color:#ae81ff>9</span>;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> v <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl; <span style=color:#75715e>// 2025-03-29T01:23:45.678901234+09:00
</span></span></span><span style=display:flex><span><span style=color:#75715e></span>
</span></span><span style=display:flex><span> v.as_offset_datetime_fmt().has_seconds <span style=color:#f92672>=</span> false;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> v <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl; <span style=color:#75715e>// 2025-03-29T01:23+09:00
</span></span></span><span style=display:flex><span><span style=color:#75715e></span>
</span></span><span style=display:flex><span> v.as_offset_datetime_fmt().delimiter <span style=color:#f92672>=</span> toml<span style=color:#f92672>::</span>datetime_delimiter_kind<span style=color:#f92672>::</span>space;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> v <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl; <span style=color:#75715e>// 2025-03-29 01:23+09:00
</span></span></span><span style=display:flex><span><span style=color:#75715e></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><h2 id=member-variables-3>Member Variables
<a class=anchor href=#member-variables-3>#</a></h2><h3 id=datetime_delimiter_kind-delimiter><code>datetime_delimiter_kind delimiter</code>
<a class=anchor href=#datetime_delimiter_kind-delimiter>#</a></h3><p>Specifies the delimiter to use.</p><h3 id=bool-has_seconds><code>bool has_seconds</code>
<a class=anchor href=#bool-has_seconds>#</a></h3><p>Specifies whether to omit seconds.</p><h3 id=stdsize_t-subsecond_precision><code>std::size_t subsecond_precision</code>
<a class=anchor href=#stdsize_t-subsecond_precision>#</a></h3><p>Specifies how many digits to output for subseconds.</p><h1 id=local_datetime_format_info><code>local_datetime_format_info</code>
<a class=anchor href=#local_datetime_format_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>struct</span> <span style=color:#a6e22e>local_datetime_format_info</span>
</span></span><span style=display:flex><span>{
</span></span><span style=display:flex><span> datetime_delimiter_kind delimiter <span style=color:#f92672>=</span> datetime_delimiter_kind<span style=color:#f92672>::</span>upper_T;
</span></span><span style=display:flex><span> <span style=color:#66d9ef>bool</span> has_seconds <span style=color:#f92672>=</span> true;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>size_t subsecond_precision <span style=color:#f92672>=</span> <span style=color:#ae81ff>6</span>; <span style=color:#75715e>// [us]
</span></span></span><span style=display:flex><span><span style=color:#75715e></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_datetime_format_info<span style=color:#f92672>&amp;</span>, <span style=color:#66d9ef>const</span> local_datetime_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> local_datetime_format_info<span style=color:#f92672>&amp;</span>, <span style=color:#66d9ef>const</span> local_datetime_format_info<span style=color:#f92672>&amp;</span>) <span style=color:#66d9ef>noexcept</span>;
</span></span></code></pre></div><h2 id=member-variables-4>Member Variables
<a class=anchor href=#member-variables-4>#</a></h2><h3 id=datetime_delimiter_kind-delimiter-1><code>datetime_delimiter_kind delimiter</code>
<a class=anchor href=#datetime_delimiter_kind-delimiter-1>#</a></h3><p>Specifies the delimiter to use.</p><h3 id=bool-has_seconds-1><code>bool has_seconds</code>
<a class=anchor href=#bool-has_seconds-1>#</a></h3><p>Specifies whether to omit seconds.</p><h3 id=stdsize_t-subsecond_precision-1><code>std::size_t subsecond_precision</code>
<a class=anchor href=#stdsize_t-subsecond_precision-1>#</a></h3><p>Specifies how many digits to output for subseconds.</p><h1 id=local_date_format_info><code>local_date_format_info</code>
<a class=anchor href=#local_date_format_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>struct</span> <span style=color:#a6e22e>local_date_format_info</span>
</span></span><span style=display:flex><span>{
</span></span><span style=display:flex><span> <span style=color:#75715e>// nothing, for now
</span></span></span><span style=display:flex><span><span style=color:#75715e></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_format_info<span style=color:#f92672>&amp;</span>, <span style=color:#66d9ef>const</span> local_date_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> local_date_format_info<span style=color:#f92672>&amp;</span>, <span style=color:#66d9ef>const</span> local_date_format_info<span style=color:#f92672>&amp;</span>) <span style=color:#66d9ef>noexcept</span>;
</span></span></code></pre></div><p>No formatting parameters are specified for <code>local_date</code>.</p><h1 id=local_time_format_info><code>local_time_format_info</code>
<a class=anchor href=#local_time_format_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>struct</span> <span style=color:#a6e22e>local_time_format_info</span>
</span></span><span style=display:flex><span>{
</span></span><span style=display:flex><span> <span style=color:#66d9ef>bool</span> has_seconds <span style=color:#f92672>=</span> true;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>size_t subsecond_precision <span style=color:#f92672>=</span> <span style=color:#ae81ff>6</span>; <span style=color:#75715e>// [us]
</span></span></span><span style=display:flex><span><span style=color:#75715e></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_time_format_info<span style=color:#f92672>&amp;</span>, <span style=color:#66d9ef>const</span> local_time_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> local_time_format_info<span style=color:#f92672>&amp;</span>, <span style=color:#66d9ef>const</span> local_time_format_info<span style=color:#f92672>&amp;</span>) <span style=color:#66d9ef>noexcept</span>;
</span></span></code></pre></div><h2 id=member-variables-5>Member Variables
<a class=anchor href=#member-variables-5>#</a></h2><h3 id=bool-has_seconds-2><code>bool has_seconds</code>
<a class=anchor href=#bool-has_seconds-2>#</a></h3><p>Specifies whether to omit seconds.</p><h3 id=stdsize_t-subsecond_precision-2><code>std::size_t subsecond_precision</code>
<a class=anchor href=#stdsize_t-subsecond_precision-2>#</a></h3><p>Specifies how many digits to output for subseconds.</p><h1 id=array_format><code>array_format</code>
<a class=anchor href=#array_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>array_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> default_format <span style=color:#f92672>=</span> <span style=color:#ae81ff>0</span>,
</span></span><span style=display:flex><span> oneline <span style=color:#f92672>=</span> <span style=color:#ae81ff>1</span>,
</span></span><span style=display:flex><span> multiline <span style=color:#f92672>=</span> <span style=color:#ae81ff>2</span>,
</span></span><span style=display:flex><span> array_of_tables <span style=color:#f92672>=</span> <span style=color:#ae81ff>3</span> <span style=color:#75715e>// [[format.in.this.way]]
</span></span></span><span style=display:flex><span><span style=color:#75715e></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> array_format f);
</span></span><span style=display:flex><span>std<span style=color:#f92672>::</span>string to_string(<span style=color:#66d9ef>const</span> array_format);
</span></span></code></pre></div><ul><li><code>default_format</code><ul><li>Automatically selects the appropriate format. Longer arrays may span multiple lines.</li></ul></li><li><code>oneline</code><ul><li>Formats all elements in a single line.</li></ul></li><li><code>multiline</code><ul><li>Outputs each element on its own line.</li></ul></li><li><code>array_of_tables</code><ul><li>Formats in the <code>[[array.of.tables]]</code> style. Cannot contain elements other than <code>table</code>.</li></ul></li></ul><h1 id=array_format_info><code>array_format_info</code>
<a class=anchor href=#array_format_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>struct</span> <span style=color:#a6e22e>array_format_info</span>
</span></span><span style=display:flex><span>{
</span></span><span style=display:flex><span> array_format fmt <span style=color:#f92672>=</span> array_format<span style=color:#f92672>::</span>default_format;
</span></span><span style=display:flex><span> indent_char indent_type <span style=color:#f92672>=</span> indent_char<span style=color:#f92672>::</span>space;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span><span style=color:#66d9ef>int32_t</span> body_indent <span style=color:#f92672>=</span> <span style=color:#ae81ff>4</span>; <span style=color:#75715e>// indent in case of multiline
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> std<span style=color:#f92672>::</span><span style=color:#66d9ef>int32_t</span> closing_indent <span style=color:#f92672>=</span> <span style=color:#ae81ff>0</span>; <span style=color:#75715e>// indent of `]`
</span></span></span><span style=display:flex><span><span style=color:#75715e></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> array_format_info<span style=color:#f92672>&amp;</span>, <span style=color:#66d9ef>const</span> array_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> array_format_info<span style=color:#f92672>&amp;</span>, <span style=color:#66d9ef>const</span> array_format_info<span style=color:#f92672>&amp;</span>) <span style=color:#66d9ef>noexcept</span>;
</span></span></code></pre></div><h2 id=example-4>example
<a class=anchor href=#example-4>#</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:#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>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 a(toml<span style=color:#f92672>::</span>array{ <span style=color:#ae81ff>3</span>, <span style=color:#ae81ff>1</span>, <span style=color:#ae81ff>4</span> });
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span> a.as_array_fmt().fmt <span style=color:#f92672>=</span> toml<span style=color:#f92672>::</span>array_format<span style=color:#f92672>::</span>oneline;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> <span style=color:#e6db74>&#34;a = &#34;</span> <span style=color:#f92672>&lt;&lt;</span> a <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl; <span style=color:#75715e>// a = [3, 1, 4]
</span></span></span><span style=display:flex><span><span style=color:#75715e></span>
</span></span><span style=display:flex><span> a.as_array_fmt().fmt <span style=color:#f92672>=</span> toml<span style=color:#f92672>::</span>array_format<span style=color:#f92672>::</span>multiline;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> <span style=color:#e6db74>&#34;a = &#34;</span> <span style=color:#f92672>&lt;&lt;</span> a <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl;
</span></span><span style=display:flex><span> <span style=color:#75715e>// a = [
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> <span style=color:#75715e>// 3,
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> <span style=color:#75715e>// 1,
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> <span style=color:#75715e>// 4,
</span></span></span><span style=display:flex><span><span style=color:#75715e></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> a.as_array_fmt().body_indent <span style=color:#f92672>=</span> <span style=color:#ae81ff>4</span>;
</span></span><span style=display:flex><span> a.as_array_fmt().closing_indent <span style=color:#f92672>=</span> <span style=color:#ae81ff>2</span>;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> <span style=color:#e6db74>&#34;a = &#34;</span> <span style=color:#f92672>&lt;&lt;</span> a <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl;
</span></span><span style=display:flex><span> <span style=color:#75715e>// a = [
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> <span style=color:#75715e>// 3,
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> <span style=color:#75715e>// 1,
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> <span style=color:#75715e>// 4,
</span></span></span><span style=display:flex><span><span style=color:#75715e></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>return</span> <span style=color:#ae81ff>0</span>;
</span></span><span style=display:flex><span>}
</span></span></code></pre></div><h2 id=member-variables-6>Member Variables
<a class=anchor href=#member-variables-6>#</a></h2><h3 id=array_format-fmt><code>array_format fmt</code>
<a class=anchor href=#array_format-fmt>#</a></h3><p>Specifies the format style.</p><h3 id=indent_char-indent_type><code>indent_char indent_type</code>
<a class=anchor href=#indent_char-indent_type>#</a></h3><p>Selects the type of character used for indentation.</p><h3 id=stdint32_t-body_indent><code>std::int32_t body_indent</code>
<a class=anchor href=#stdint32_t-body_indent>#</a></h3><p>Specifies the number of characters to indent before each element in <code>array_format::multiline</code>.</p><h3 id=stdint32_t-closing_indent><code>std::int32_t closing_indent</code>
<a class=anchor href=#stdint32_t-closing_indent>#</a></h3><p>Specifies the number of characters to indent before the closing bracket <code>]</code> in <code>array_format::multiline</code>.</p><h1 id=table_format><code>table_format</code>
<a class=anchor href=#table_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>table_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> multiline <span style=color:#f92672>=</span> <span style=color:#ae81ff>0</span>, <span style=color:#75715e>// [foo] \n bar = &#34;baz&#34;
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> oneline <span style=color:#f92672>=</span> <span style=color:#ae81ff>1</span>, <span style=color:#75715e>// foo = {bar = &#34;baz&#34;}
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> dotted <span style=color:#f92672>=</span> <span style=color:#ae81ff>2</span>, <span style=color:#75715e>// foo.bar = &#34;baz&#34;
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> multiline_oneline <span style=color:#f92672>=</span> <span style=color:#ae81ff>3</span>, <span style=color:#75715e>// foo = { \n bar = &#34;baz&#34; \n }
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> implicit <span style=color:#f92672>=</span> <span style=color:#ae81ff>4</span> <span style=color:#75715e>// [x] defined by [x.y.z]. skip in serializer.
</span></span></span><span style=display:flex><span><span style=color:#75715e></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> table_format f);
</span></span><span style=display:flex><span>std<span style=color:#f92672>::</span>string to_string(<span style=color:#66d9ef>const</span> table_format);
</span></span></code></pre></div><ul><li><code>multiline</code><ul><li>Formats as a multiline normal table.</li></ul></li><li><code>oneline</code><ul><li>Formats as an inline table.</li></ul></li><li><code>dotted</code><ul><li>Formats in the form of <code>a.b.c = "d"</code>.</li></ul></li><li><code>multiline_oneline</code><ul><li>Formats as a multiline inline table with line breaks. Available from TOML v1.1.0 onwards.</li><li>cf. <a href=https://toruniina.github.io/toml11/docs/reference/spec/>spec.hpp</a></li></ul></li><li><code>implicit</code><ul><li>Skips implicit definitions like <code>[x.y.z.w]</code>, leaving <code>[x]</code>, <code>[x.y]</code>, <code>[x.y.z]</code> as implicit.</li></ul></li></ul><blockquote class="book-hint warning"><p>According to TOML syntax, <code>dotted</code> table can have sub-tables:</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-toml data-lang=toml><span style=display:flex><span>[<span style=color:#a6e22e>fruit</span>]
</span></span><span style=display:flex><span><span style=color:#a6e22e>apple</span>.<span style=color:#a6e22e>color</span> = <span style=color:#e6db74>&#34;red&#34;</span>
</span></span><span style=display:flex><span><span style=color:#a6e22e>apple</span>.<span style=color:#a6e22e>taste</span>.<span style=color:#a6e22e>sweet</span> = <span style=color:#66d9ef>true</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:#75715e># [fruit.apple] # INVALID</span>
</span></span><span style=display:flex><span><span style=color:#75715e># [fruit.apple.taste] # INVALID</span>
</span></span><span style=display:flex><span>[<span style=color:#a6e22e>fruit</span>.<span style=color:#a6e22e>apple</span>.<span style=color:#a6e22e>texture</span>] <span style=color:#75715e># you can add sub-tables</span>
</span></span><span style=display:flex><span><span style=color:#a6e22e>smooth</span> = <span style=color:#66d9ef>true</span>
</span></span></code></pre></div><p>toml11 currently does not support this format.
Sub-tables under a <code>dotted</code> table would all be <code>dotted</code>, and tables are forced into inline table format.</p></blockquote><h1 id=table_format_info><code>table_format_info</code>
<a class=anchor href=#table_format_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>struct</span> <span style=color:#a6e22e>table_format_info</span>
</span></span><span style=display:flex><span>{
</span></span><span style=display:flex><span> table_format fmt <span style=color:#f92672>=</span> table_format<span style=color:#f92672>::</span>multiline;
</span></span><span style=display:flex><span> indent_char indent_type <span style=color:#f92672>=</span> indent_char<span style=color:#f92672>::</span>space;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span><span style=color:#66d9ef>int32_t</span> body_indent <span style=color:#f92672>=</span> <span style=color:#ae81ff>0</span>; <span style=color:#75715e>// indent of values
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> std<span style=color:#f92672>::</span><span style=color:#66d9ef>int32_t</span> name_indent <span style=color:#f92672>=</span> <span style=color:#ae81ff>0</span>; <span style=color:#75715e>// indent of [table]
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> std<span style=color:#f92672>::</span><span style=color:#66d9ef>int32_t</span> closing_indent <span style=color:#f92672>=</span> <span style=color:#ae81ff>0</span>; <span style=color:#75715e>// in case of {inline-table}
</span></span></span><span style=display:flex><span><span style=color:#75715e></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> table_format_info<span style=color:#f92672>&amp;</span>, <span style=color:#66d9ef>const</span> table_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> table_format_info<span style=color:#f92672>&amp;</span>, <span style=color:#66d9ef>const</span> table_format_info<span style=color:#f92672>&amp;</span>) <span style=color:#66d9ef>noexcept</span>;
</span></span></code></pre></div><h2 id=example-5>example
<a class=anchor href=#example-5>#</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:#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>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 t(toml<span style=color:#f92672>::</span>table{
</span></span><span style=display:flex><span> {<span style=color:#e6db74>&#34;a&#34;</span>, <span style=color:#ae81ff>42</span>},
</span></span><span style=display:flex><span> {<span style=color:#e6db74>&#34;pi&#34;</span>, <span style=color:#ae81ff>3.14</span>},
</span></span><span style=display:flex><span> {<span style=color:#e6db74>&#34;foo&#34;</span>, <span style=color:#e6db74>&#34;bar&#34;</span>},
</span></span><span style=display:flex><span> {
</span></span><span style=display:flex><span> <span style=color:#e6db74>&#34;table&#34;</span>, toml<span style=color:#f92672>::</span>table{
</span></span><span style=display:flex><span> {<span style=color:#e6db74>&#34;a&#34;</span>, <span style=color:#ae81ff>42</span>},
</span></span><span style=display:flex><span> {<span style=color:#e6db74>&#34;pi&#34;</span>, <span style=color:#ae81ff>3.14</span>},
</span></span><span style=display:flex><span> {<span style=color:#e6db74>&#34;foo&#34;</span>, <span style=color:#e6db74>&#34;bar&#34;</span>}
</span></span><span style=display:flex><span> }
</span></span><span style=display:flex><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>cout <span style=color:#f92672>&lt;&lt;</span> t <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl;
</span></span><span style=display:flex><span> <span style=color:#75715e>// pi = 3.14
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> <span style=color:#75715e>// foo = &#34;bar&#34;
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> <span style=color:#75715e>// a = 42
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> <span style=color:#75715e>//
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> <span style=color:#75715e>// [table]
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> <span style=color:#75715e>// pi = 3.14
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> <span style=color:#75715e>// foo = &#34;bar&#34;
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> <span style=color:#75715e>// a = 42
</span></span></span><span style=display:flex><span><span style=color:#75715e></span>
</span></span><span style=display:flex><span> <span style=color:#75715e>// root table cannot be dotted.
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> <span style=color:#75715e>// t.as_table_fmt().fmt = toml::table_format::dotted;
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> t.at(<span style=color:#e6db74>&#34;table&#34;</span>).as_table_fmt().fmt <span style=color:#f92672>=</span> toml<span style=color:#f92672>::</span>table_format<span style=color:#f92672>::</span>dotted;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> t <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl;
</span></span><span style=display:flex><span> <span style=color:#75715e>// table.pi = 3.14
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> <span style=color:#75715e>// table.foo = &#34;bar&#34;
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> <span style=color:#75715e>// table.a = 42
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> <span style=color:#75715e>// pi = 3.14
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> <span style=color:#75715e>// foo = &#34;bar&#34;
</span></span></span><span style=display:flex><span><span style=color:#75715e></span> <span style=color:#75715e>// a = 42
</span></span></span><span style=display:flex><span><span style=color:#75715e></span>
</span></span><span style=display:flex><span> t.as_table_fmt().fmt <span style=color:#f92672>=</span> toml<span style=color:#f92672>::</span>table_format<span style=color:#f92672>::</span>oneline;
</span></span><span style=display:flex><span> std<span style=color:#f92672>::</span>cout <span style=color:#f92672>&lt;&lt;</span> t <span style=color:#f92672>&lt;&lt;</span> std<span style=color:#f92672>::</span>endl;
</span></span><span style=display:flex><span> <span style=color:#75715e>// {table = {pi = 3.14, foo = &#34;bar&#34;, a = 42}, pi = 3.14, foo = &#34;bar&#34;, a = 42}
</span></span></span><span style=display:flex><span><span style=color:#75715e></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><h2 id=member-variables-7>Member Variables
<a class=anchor href=#member-variables-7>#</a></h2><h3 id=table_format-fmt><code>table_format fmt</code>
<a class=anchor href=#table_format-fmt>#</a></h3><p>Specifies the formatting method.</p><h3 id=indent_char-indent_type-1><code>indent_char indent_type</code>
<a class=anchor href=#indent_char-indent_type-1>#</a></h3><p>Specifies the character used for indentation.</p><h3 id=stdint32_t-body_indent-1><code>std::int32_t body_indent</code>
<a class=anchor href=#stdint32_t-body_indent-1>#</a></h3><p>Specifies the width of indentation before keys.</p><p>The indentation width of the super table is not added.</p><h3 id=stdint32_t-name_indent><code>std::int32_t name_indent</code>
<a class=anchor href=#stdint32_t-name_indent>#</a></h3><p>Specifies the indentation of keys in <code>[table]</code> format.</p><p>The indentation width of the super table is not added.</p><h3 id=stdint32_t-closing_indent-1><code>std::int32_t closing_indent</code>
<a class=anchor href=#stdint32_t-closing_indent-1>#</a></h3><p>Specifies the indentation width before the closing brace <code>}</code> in the case of <code>multiline_oneline</code>.</p></article><footer class=book-footer><div class="flex flex-wrap justify-between"></div><script>(function(){function e(e){const t=window.getSelection(),n=document.createRange();n.selectNodeContents(e),t.removeAllRanges(),t.addRange(n)}document.querySelectorAll("pre code").forEach(t=>{t.addEventListener("click",function(){if(window.getSelection().toString())return;e(t.parentElement),navigator.clipboard&&navigator.clipboard.writeText(t.parentElement.textContent)})})})()</script></footer><label for=menu-control class="hidden book-menu-overlay"></label></div><aside class=book-toc><div class=book-toc-content><nav id=TableOfContents><ul><li><a href=#formathpp>format.hpp</a></li><li><a href=#indent_char><code>indent_char</code></a></li><li><a href=#boolean_format_info><code>boolean_format_info</code></a></li><li><a href=#integer_format><code>integer_format</code></a></li><li><a href=#integer_format_info><code>integer_format_info</code></a><ul><li><a href=#example>example</a></li><li><a href=#member-variables>Member Variables</a><ul><li><a href=#integer_format-fmt><code>integer_format fmt</code></a></li><li><a href=#bool-uppercase><code>bool uppercase</code></a></li><li><a href=#stdsize_t-width><code>std::size_t width</code></a></li><li><a href=#stdsize_t-spacer><code>std::size_t spacer</code></a></li><li><a href=#stdstring-suffix><code>std::string suffix</code></a></li></ul></li></ul></li><li><a href=#floating_format><code>floating_format</code></a></li><li><a href=#floating_format_info><code>floating_format_info</code></a><ul><li><a href=#example-1>example</a></li><li><a href=#member-variables-1>Member Variables</a><ul><li><a href=#floating_format-fmt><code>floating_format fmt</code></a></li><li><a href=#stdsize_t-prec><code>std::size_t prec</code></a></li><li><a href=#stdstring-suffix-1><code>std::string suffix</code></a></li></ul></li></ul></li><li><a href=#string_format><code>string_format</code></a></li><li><a href=#string_format_info><code>string_format_info</code></a><ul><li><a href=#example-2>example</a></li><li><a href=#member-variables-2>Member Variables</a><ul><li><a href=#string_format-fmt><code>string_format fmt</code></a></li><li><a href=#bool-start_with_newline><code>bool start_with_newline</code></a></li></ul></li></ul></li><li><a href=#datetime_delimiter_kind><code>datetime_delimiter_kind</code></a></li><li><a href=#offset_datetime_format_info><code>offset_datetime_format_info</code></a><ul><li><a href=#example-3>example</a></li><li><a href=#member-variables-3>Member Variables</a><ul><li><a href=#datetime_delimiter_kind-delimiter><code>datetime_delimiter_kind delimiter</code></a></li><li><a href=#bool-has_seconds><code>bool has_seconds</code></a></li><li><a href=#stdsize_t-subsecond_precision><code>std::size_t subsecond_precision</code></a></li></ul></li></ul></li><li><a href=#local_datetime_format_info><code>local_datetime_format_info</code></a><ul><li><a href=#member-variables-4>Member Variables</a><ul><li><a href=#datetime_delimiter_kind-delimiter-1><code>datetime_delimiter_kind delimiter</code></a></li><li><a href=#bool-has_seconds-1><code>bool has_seconds</code></a></li><li><a href=#stdsize_t-subsecond_precision-1><code>std::size_t subsecond_precision</code></a></li></ul></li></ul></li><li><a href=#local_date_format_info><code>local_date_format_info</code></a></li><li><a href=#local_time_format_info><code>local_time_format_info</code></a><ul><li><a href=#member-variables-5>Member Variables</a><ul><li><a href=#bool-has_seconds-2><code>bool has_seconds</code></a></li><li><a href=#stdsize_t-subsecond_precision-2><code>std::size_t subsecond_precision</code></a></li></ul></li></ul></li><li><a href=#array_format><code>array_format</code></a></li><li><a href=#array_format_info><code>array_format_info</code></a><ul><li><a href=#example-4>example</a></li><li><a href=#member-variables-6>Member Variables</a><ul><li><a href=#array_format