Files
tomlplusplus/classtoml_1_1array.html
2020-04-02 21:42:59 +00:00

1070 lines
82 KiB
HTML

<!DOCTYPE html>
<html lang="en"><head>
<meta charset="utf-8"/>
<title>toml::array class | toml++ TOML
for
modern
C++</title>
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400i,600,600i%7CSource+Code+Pro:400,400i,600" rel="stylesheet"/>
<link href="m-dark+documentation.compiled.css" rel="stylesheet"/>
<link href="tomlplusplus.css" rel="stylesheet"/>
<link href="favicon.ico" rel="icon" type="image/vnd.microsoft.icon"/>
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
<meta content="#22272e" name="theme-color"/>
<meta content="gbtcNgKlNiPSMKkYMw4zWFVWGPH_oU93m9n_-nb4qK8" name="google-site-verification"/>
<meta content="Header-only
TOML
config
file
parser
and
serializer
for
modern
C++." name="description"/>
<script src="tomlplusplus.js"></script>
</head>
<body>
<header><nav id="navigation">
<div class="m-container">
<div class="m-row">
<a class="m-col-t-8 m-col-m-none m-left-m" href="index.html" id="m-navbar-brand"><img src="logo.png"/>toml++ <span class="m-thin">TOML
for
modern
C++</span></a>
<div class="m-col-t-4 m-hide-m m-text-right m-nopadr">
<a class="m-doc-search-icon" href="#search" onclick="return showSearch()" title="Search"><svg style="height: 0.9rem;" viewBox="0 0 16 16">
<path d="m6 0c-3.31 0-6 2.69-6 6 0 3.31 2.69 6 6 6 1.49 0 2.85-0.541 3.89-1.44-0.0164 0.338 0.147 0.759 0.5 1.15l3.22 3.79c0.552 0.614 1.45 0.665 2 0.115 0.55-0.55 0.499-1.45-0.115-2l-3.79-3.22c-0.392-0.353-0.812-0.515-1.15-0.5 0.895-1.05 1.44-2.41 1.44-3.89 0-3.31-2.69-6-6-6zm0 1.56a4.44 4.44 0 0 1 4.44 4.44 4.44 4.44 0 0 1-4.44 4.44 4.44 4.44 0 0 1-4.44-4.44 4.44 4.44 0 0 1 4.44-4.44z" id="m-doc-search-icon-path"></path>
</svg></a>
<a href="#navigation" id="m-navbar-show" title="Show navigation"></a>
<a href="#" id="m-navbar-hide" title="Hide navigation"></a>
</div>
<div class="m-col-t-12 m-show-m m-col-m-none m-right-m" id="m-navbar-collapse">
<div class="m-row">
<ol class="m-col-t-6 m-col-m-none">
<li><a href="namespaces.html">Namespaces</a></li>
</ol>
<ol class="m-col-t-6 m-col-m-none" start="2">
<li><a href="annotated.html">Classes</a></li>
<li><a class="github" href="https://github.com/marzer/tomlplusplus/" target="_blank">Github</a></li>
<li class="m-show-m"><a class="m-doc-search-icon" href="#search" onclick="return showSearch()" title="Search"><svg style="height: 0.9rem;" viewBox="0 0 16 16">
<use href="#m-doc-search-icon-path"></use>
</svg></a></li>
</ol>
</div>
</div>
</div>
</div>
</nav></header>
<main><article>
<div class="m-container m-container-inflatable">
<div class="m-row">
<div class="m-col-l-10 m-push-l-1">
<h1>
<span class="m-breadcrumb"><a href="namespacetoml.html">toml</a>::<wbr/></span>array <span class="m-thin">class</span> <span class="m-label m-flat m-warning">final</span>
</h1>
<p>A TOML array.</p>
<div class="m-block m-default">
<h3>Contents</h3>
<ul>
<li>
Reference
<ul>
<li><a href="#base-classes">Base classes</a></li>
<li><a href="#pub-types">Public types</a></li>
<li><a href="#typeless-methods">Constructors, destructors, conversion operators</a></li>
<li><a href="#pub-methods">Public functions</a></li>
<li><a href="#friends">Friends</a></li>
</ul>
</li>
</ul>
</div>
<p>The interface of this type is modeled after <a class="m-doc tpp-injected tpp-external" href="https://en.cppreference.com/w/cpp/container/vector" target="_blank">std::vector</a>, with some additional considerations made for the heterogeneous nature of a TOML array.</p><pre class="m-code"><span class="k">auto</span> <span class="n">tbl</span> <span class="o">=</span> <span class="ns">toml::</span><span class="n">parse</span><span class="p">(</span><span class="s">"arr = [1, 2, 3, 4, 'five']"</span><span class="sa">sv</span><span class="p">);</span>
<span class="k">auto</span><span class="o">&amp;</span> <span class="n">arr</span> <span class="o">=</span> <span class="o">*</span><span class="n">tbl</span><span class="p">.</span><span class="n">get_as</span><span class="o">&lt;</span><span class="ns">toml::</span><span class="ut">array</span><span class="o">&gt;</span><span class="p">(</span><span class="s">"arr"</span><span class="p">);</span>
<span class="ns">std::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">arr</span> <span class="o">&lt;&lt;</span> <span class="ns">std::</span><span class="n">endl</span><span class="p">;</span>
<span class="k">for</span> <span class="p">(</span><span class="ut"><a class="m-doc tpp-injected tpp-external" href="https://en.cppreference.com/w/cpp/types/size_t" target="_blank">size_t</a></span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">arr</span><span class="p">.</span><span class="n">size</span><span class="p">();</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">arr</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">visit</span><span class="p">([](</span><span class="k">auto</span><span class="o">&amp;&amp;</span> <span class="n">el</span><span class="p">)</span> <span class="k">noexcept</span>
<span class="p">{</span>
<span class="k">if</span> <span class="k">constexpr</span> <span class="p">(</span><span class="ns">toml::</span><span class="n">is_number</span><span class="o">&lt;</span><span class="k">decltype</span><span class="p">(</span><span class="n">el</span><span class="p">)</span><span class="o">&gt;</span><span class="p">)</span>
<span class="p">(</span><span class="o">*</span><span class="n">el</span><span class="p">)</span><span class="o">++</span><span class="p">;</span>
<span class="k">else</span> <span class="k">if</span> <span class="k">constexpr</span> <span class="p">(</span><span class="ns">toml::</span><span class="n">is_string</span><span class="o">&lt;</span><span class="k">decltype</span><span class="p">(</span><span class="n">el</span><span class="p">)</span><span class="o">&gt;</span><span class="p">)</span>
<span class="n">el</span> <span class="o">=</span> <span class="s">"six"</span><span class="sa">sv</span><span class="p">;</span>
<span class="p">});</span>
<span class="p">}</span>
<span class="ns">std::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">arr</span> <span class="o">&lt;&lt;</span> <span class="ns">std::</span><span class="n">endl</span><span class="p">;</span>
<span class="n">arr</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="mi">7</span><span class="p">);</span>
<span class="n">arr</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="mf">8.0f</span><span class="p">);</span>
<span class="n">arr</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="s">"nine"</span><span class="sa">sv</span><span class="p">);</span>
<span class="n">arr</span><span class="p">.</span><span class="n">erase</span><span class="p">(</span><span class="n">arr</span><span class="p">.</span><span class="n">cbegin</span><span class="p">());</span>
<span class="ns">std::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">arr</span> <span class="o">&lt;&lt;</span> <span class="ns">std::</span><span class="n">endl</span><span class="p">;</span>
<span class="n">arr</span><span class="p">.</span><span class="n">emplace_back</span><span class="o">&lt;</span><span class="ns">toml::</span><span class="ut">array</span><span class="o">&gt;</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mf">11.0</span><span class="p">);</span>
<span class="ns">std::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">arr</span> <span class="o">&lt;&lt;</span> <span class="ns">std::</span><span class="n">endl</span><span class="p">;</span></pre><pre class="m-console"><span class="go">[1, 2, 3, 4, "five"]</span>
<span class="go">[2, 3, 4, 5, "six"]</span>
<span class="go">[3, 4, 5, "six", 7, 8.0, "nine"]</span>
<span class="go">[3, 4, 5, "six", 7, 8.0, "nine", [10, 11.0]]</span></pre>
<section id="base-classes">
<h2><a href="#base-classes">Base classes</a></h2>
<dl class="m-doc">
<dt>
class <a class="m-doc" href="classtoml_1_1node.html">node</a>
</dt>
<dd>A TOML node.</dd>
</dl>
</section>
<section id="pub-types">
<h2><a href="#pub-types">Public types</a></h2>
<dl class="m-doc">
<dt id="ada39844ba79a1f6fec4fbe7c8bc66eba">
using <a class="m-doc-self" href="#ada39844ba79a1f6fec4fbe7c8bc66eba">const_iterator</a> = impl::array_iterator&lt;true&gt;
</dt>
<dd>A const <a class="m-doc tpp-injected tpp-external" href="https://en.cppreference.com/w/cpp/named_req/RandomAccessIterator" target="_blank">RandomAccessIterator</a> for iterating over the nodes in an array.</dd>
<dt id="a012d869144b5532229dd3ce1eac02bf6">
using <a class="m-doc-self" href="#a012d869144b5532229dd3ce1eac02bf6">iterator</a> = impl::array_iterator&lt;false&gt;
</dt>
<dd>A <a class="m-doc tpp-injected tpp-external" href="https://en.cppreference.com/w/cpp/named_req/RandomAccessIterator" target="_blank">RandomAccessIterator</a> for iterating over the nodes in an array.</dd>
</dl>
</section>
<section id="typeless-methods">
<h2><a href="#typeless-methods">Constructors, destructors, conversion operators</a></h2>
<dl class="m-doc">
<dt id="a29fc707cf66a79f3c3d93dadbe3b2719">
<span class="m-doc-wrap-bumper"><a class="m-doc-self" href="#a29fc707cf66a79f3c3d93dadbe3b2719">array</a>(</span><span class="m-doc-wrap">) <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Default constructor.</dd>
<dt id="ac552a63c329598d671e6531b0cef957b">
<span class="m-doc-wrap-bumper"><a class="m-doc-self" href="#ac552a63c329598d671e6531b0cef957b">array</a>(</span><span class="m-doc-wrap"><a class="m-doc" href="classtoml_1_1array.html">array</a>&amp;&amp; other) <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Move constructor.</dd>
<dt>
<div class="m-doc-template">template&lt;typename U, typename... V&gt;</div>
<span class="m-doc-wrap-bumper"><a class="m-doc" href="#a5bd50aa0d09d7efd767e6c874525be2f">array</a>(</span><span class="m-doc-wrap">U&amp;&amp; val,
V &amp;&amp; ... vals) <span class="m-label m-flat m-info">explicit</span> </span>
</dt>
<dd>Constructs an array with one or more initial values.</dd>
</dl>
</section>
<section id="pub-methods">
<h2><a href="#pub-methods">Public functions</a></h2>
<dl class="m-doc">
<dt id="ac6871cc2af0c21720daf8f55831fe848">
<span class="m-doc-wrap-bumper">auto <a class="m-doc-self" href="#ac6871cc2af0c21720daf8f55831fe848">as_array</a>(</span><span class="m-doc-wrap">) -&gt; <a class="m-doc" href="classtoml_1_1array.html">array</a>* <span class="m-label m-flat m-warning">override</span> <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Returns a pointer to the node as a <a class="m-doc" href="classtoml_1_1array.html">toml::<wbr/>array</a>, if it is one.</dd>
<dt id="ac7652c1ab60af2ca1c7d52f0658639b4">
<span class="m-doc-wrap-bumper">auto <a class="m-doc-self" href="#ac7652c1ab60af2ca1c7d52f0658639b4">back</a>(</span><span class="m-doc-wrap">) const -&gt; const <a class="m-doc" href="classtoml_1_1node.html">node</a>&amp; <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Returns a reference to the last node in the array.</dd>
<dt id="a9694f1b3bfa2e58c5aa3c3681e5135ec">
<span class="m-doc-wrap-bumper">auto <a class="m-doc-self" href="#a9694f1b3bfa2e58c5aa3c3681e5135ec">back</a>(</span><span class="m-doc-wrap">) -&gt; <a class="m-doc" href="classtoml_1_1node.html">node</a>&amp; <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Returns a reference to the last node in the array.</dd>
<dt id="a7cff1526a6d1f6157e0eab231b4757aa">
<span class="m-doc-wrap-bumper">auto <a class="m-doc-self" href="#a7cff1526a6d1f6157e0eab231b4757aa">begin</a>(</span><span class="m-doc-wrap">) const -&gt; <a class="m-doc" href="classtoml_1_1array.html#ada39844ba79a1f6fec4fbe7c8bc66eba">const_<wbr/>iterator</a> <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Returns an iterator to the first node.</dd>
<dt id="a8eb0c36b3fb969d1693011954a705161">
<span class="m-doc-wrap-bumper">auto <a class="m-doc-self" href="#a8eb0c36b3fb969d1693011954a705161">begin</a>(</span><span class="m-doc-wrap">) -&gt; <a class="m-doc" href="classtoml_1_1array.html#a012d869144b5532229dd3ce1eac02bf6">iterator</a> <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Returns an iterator to the first node.</dd>
<dt id="af625cfe09027a7b6a81988cceb3d2fad">
<span class="m-doc-wrap-bumper">auto <a class="m-doc-self" href="#af625cfe09027a7b6a81988cceb3d2fad">cbegin</a>(</span><span class="m-doc-wrap">) const -&gt; <a class="m-doc" href="classtoml_1_1array.html#ada39844ba79a1f6fec4fbe7c8bc66eba">const_<wbr/>iterator</a> <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Returns an iterator to the first node.</dd>
<dt id="a8c3253a239b50b357abd9b6c17b14b2e">
<span class="m-doc-wrap-bumper">auto <a class="m-doc-self" href="#a8c3253a239b50b357abd9b6c17b14b2e">cend</a>(</span><span class="m-doc-wrap">) const -&gt; <a class="m-doc" href="classtoml_1_1array.html#ada39844ba79a1f6fec4fbe7c8bc66eba">const_<wbr/>iterator</a> <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Returns an iterator to one-past-the-last node.</dd>
<dt id="adaa65bf63f29f898c27423306c165d68">
<span class="m-doc-wrap-bumper">void <a class="m-doc-self" href="#adaa65bf63f29f898c27423306c165d68">clear</a>(</span><span class="m-doc-wrap">) <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Removes all nodes from the array.</dd>
<dt>
<div class="m-doc-template">template&lt;typename U, typename... V&gt;</div>
<span class="m-doc-wrap-bumper">auto <a class="m-doc" href="#a6467e68e1b35c27f876cf04be684a692">emplace</a>(</span><span class="m-doc-wrap"><a class="m-doc" href="classtoml_1_1array.html#ada39844ba79a1f6fec4fbe7c8bc66eba">const_<wbr/>iterator</a> pos,
V &amp;&amp; ... args) -&gt; <a class="m-doc" href="classtoml_1_1array.html#a012d869144b5532229dd3ce1eac02bf6">iterator</a> <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Emplaces a new value at a specific position in the array.</dd>
<dt>
<div class="m-doc-template">template&lt;typename U, typename... V&gt;</div>
<span class="m-doc-wrap-bumper">auto <a class="m-doc" href="#a3946fa8c822ddac062c43ca9a1a561eb">emplace_back</a>(</span><span class="m-doc-wrap">V &amp;&amp; ... args) -&gt; decltype(auto) <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Emplaces a new value at the end of the array.</dd>
<dt id="a5d527ea6bfddad1025e90e4363c822cc">
<span class="m-doc-wrap-bumper">auto <a class="m-doc-self" href="#a5d527ea6bfddad1025e90e4363c822cc">empty</a>(</span><span class="m-doc-wrap">) const -&gt; bool <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Returns true if the array is empty.</dd>
<dt id="a778b5b807ff7329f7de10237d73f29c2">
<span class="m-doc-wrap-bumper">auto <a class="m-doc-self" href="#a778b5b807ff7329f7de10237d73f29c2">end</a>(</span><span class="m-doc-wrap">) const -&gt; <a class="m-doc" href="classtoml_1_1array.html#ada39844ba79a1f6fec4fbe7c8bc66eba">const_<wbr/>iterator</a> <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Returns an iterator to one-past-the-last node.</dd>
<dt id="af423a7a18a9f9891c5832478ce6399b1">
<span class="m-doc-wrap-bumper">auto <a class="m-doc-self" href="#af423a7a18a9f9891c5832478ce6399b1">end</a>(</span><span class="m-doc-wrap">) -&gt; <a class="m-doc" href="classtoml_1_1array.html#a012d869144b5532229dd3ce1eac02bf6">iterator</a> <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Returns an iterator to one-past-the-last node.</dd>
<dt>
<span class="m-doc-wrap-bumper">auto <a class="m-doc" href="#ab2f18d46dd8d432b067f9ac950ef1221">erase</a>(</span><span class="m-doc-wrap"><a class="m-doc" href="classtoml_1_1array.html#ada39844ba79a1f6fec4fbe7c8bc66eba">const_<wbr/>iterator</a> first,
<a class="m-doc" href="classtoml_1_1array.html#ada39844ba79a1f6fec4fbe7c8bc66eba">const_<wbr/>iterator</a> last) -&gt; <a class="m-doc" href="classtoml_1_1array.html#a012d869144b5532229dd3ce1eac02bf6">iterator</a> <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Removes the nodes in the range [first, last) from the array.</dd>
<dt>
<span class="m-doc-wrap-bumper">auto <a class="m-doc" href="#a4d54758d8f50af9c072bb8f15437d2b4">erase</a>(</span><span class="m-doc-wrap"><a class="m-doc" href="classtoml_1_1array.html#ada39844ba79a1f6fec4fbe7c8bc66eba">const_<wbr/>iterator</a> pos) -&gt; <a class="m-doc" href="classtoml_1_1array.html#a012d869144b5532229dd3ce1eac02bf6">iterator</a> <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Removes the specified node from the array.</dd>
<dt>
<span class="m-doc-wrap-bumper">void <a class="m-doc" href="#a86f7f312f44bcdca6fc35307e2843a4c">flatten</a>(</span><span class="m-doc-wrap">)</span>
</dt>
<dd>Flattens this array, recursively hoisting the contents of child arrays up into itself.</dd>
<dt id="a5ba3af18c63546da6f9d2ac3b5b77f64">
<span class="m-doc-wrap-bumper">auto <a class="m-doc-self" href="#a5ba3af18c63546da6f9d2ac3b5b77f64">front</a>(</span><span class="m-doc-wrap">) const -&gt; const <a class="m-doc" href="classtoml_1_1node.html">node</a>&amp; <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Returns a reference to the first node in the array.</dd>
<dt id="afddd746c06213d5dbfe2d1df152d1491">
<span class="m-doc-wrap-bumper">auto <a class="m-doc-self" href="#afddd746c06213d5dbfe2d1df152d1491">front</a>(</span><span class="m-doc-wrap">) -&gt; <a class="m-doc" href="classtoml_1_1node.html">node</a>&amp; <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Returns a reference to the first node in the array.</dd>
<dt>
<span class="m-doc-wrap-bumper">auto <a class="m-doc" href="#a0fb727f90506419f2e950b5d0e5160a9">get</a>(</span><span class="m-doc-wrap"><a class="m-doc tpp-injected tpp-external" href="https://en.cppreference.com/w/cpp/types/size_t" target="_blank">size_t</a> index) const -&gt; const <a class="m-doc" href="classtoml_1_1node.html">node</a>* <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Gets the node at a specific index (const overload).</dd>
<dt>
<span class="m-doc-wrap-bumper">auto <a class="m-doc" href="#a442d80f39922d05c46b4a7d9a5455585">get</a>(</span><span class="m-doc-wrap"><a class="m-doc tpp-injected tpp-external" href="https://en.cppreference.com/w/cpp/types/size_t" target="_blank">size_t</a> index) -&gt; <a class="m-doc" href="classtoml_1_1node.html">node</a>* <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Gets the node at a specific index.</dd>
<dt>
<div class="m-doc-template">template&lt;typename T&gt;</div>
<span class="m-doc-wrap-bumper">auto <a class="m-doc" href="#acb98eae570d4f8a06fc1615a8b5d9655">get_as</a>(</span><span class="m-doc-wrap"><a class="m-doc tpp-injected tpp-external" href="https://en.cppreference.com/w/cpp/types/size_t" target="_blank">size_t</a> index) const -&gt; const impl::node_of&lt;T&gt;* <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Gets the node at a specific index if it is a particular type (const overload).</dd>
<dt>
<div class="m-doc-template">template&lt;typename T&gt;</div>
<span class="m-doc-wrap-bumper">auto <a class="m-doc" href="#a6a5916eed0e68ceb090ef2697fa5b121">get_as</a>(</span><span class="m-doc-wrap"><a class="m-doc tpp-injected tpp-external" href="https://en.cppreference.com/w/cpp/types/size_t" target="_blank">size_t</a> index) -&gt; impl::node_of&lt;T&gt;* <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Gets the node at a specific index if it is a particular type.</dd>
<dt>
<div class="m-doc-template">template&lt;typename Iter&gt;</div>
<span class="m-doc-wrap-bumper">auto <a class="m-doc" href="#a311fed9b54b87daab0646fbc1818170b">insert</a>(</span><span class="m-doc-wrap"><a class="m-doc" href="classtoml_1_1array.html#ada39844ba79a1f6fec4fbe7c8bc66eba">const_<wbr/>iterator</a> pos,
Iter first,
Iter last) -&gt; <a class="m-doc" href="classtoml_1_1array.html#a012d869144b5532229dd3ce1eac02bf6">iterator</a> <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Inserts a range of values into the array at a specific position.</dd>
<dt>
<div class="m-doc-template">template&lt;typename U&gt;</div>
<span class="m-doc-wrap-bumper">auto <a class="m-doc" href="#aae228e38c14c8d6247a1ab4e4ddc151d">insert</a>(</span><span class="m-doc-wrap"><a class="m-doc" href="classtoml_1_1array.html#ada39844ba79a1f6fec4fbe7c8bc66eba">const_<wbr/>iterator</a> pos,
<a class="m-doc tpp-injected tpp-external" href="https://en.cppreference.com/w/cpp/types/size_t" target="_blank">size_t</a> count,
U&amp;&amp; val) -&gt; <a class="m-doc" href="classtoml_1_1array.html#a012d869144b5532229dd3ce1eac02bf6">iterator</a> <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Repeatedly inserts a value starting at a specific position in the array.</dd>
<dt>
<div class="m-doc-template">template&lt;typename U&gt;</div>
<span class="m-doc-wrap-bumper">auto <a class="m-doc" href="#a2209e45b30df84c9f6da381cd0f92c07">insert</a>(</span><span class="m-doc-wrap"><a class="m-doc" href="classtoml_1_1array.html#ada39844ba79a1f6fec4fbe7c8bc66eba">const_<wbr/>iterator</a> pos,
<a class="m-doc tpp-injected tpp-external" href="https://en.cppreference.com/w/cpp/utility/initializer_list" target="_blank">std::initializer_list</a>&lt;U&gt; ilist) -&gt; <a class="m-doc" href="classtoml_1_1array.html#a012d869144b5532229dd3ce1eac02bf6">iterator</a> <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Inserts a range of values into the array at a specific position.</dd>
<dt>
<div class="m-doc-template">template&lt;typename U&gt;</div>
<span class="m-doc-wrap-bumper">auto <a class="m-doc" href="#a106930bbdf1221941813f51aba1cc17e">insert</a>(</span><span class="m-doc-wrap"><a class="m-doc" href="classtoml_1_1array.html#ada39844ba79a1f6fec4fbe7c8bc66eba">const_<wbr/>iterator</a> pos,
U&amp;&amp; val) -&gt; <a class="m-doc" href="classtoml_1_1array.html#a012d869144b5532229dd3ce1eac02bf6">iterator</a> <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Inserts a new node at a specific position in the array.</dd>
<dt id="a17362a39f6ec6f14ce59f8a8ed2b88cf">
<span class="m-doc-wrap-bumper">auto <a class="m-doc-self" href="#a17362a39f6ec6f14ce59f8a8ed2b88cf">is_array</a>(</span><span class="m-doc-wrap">) const -&gt; bool <span class="m-label m-flat m-warning">override</span> <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Always returns <code>true</code> for array nodes.</dd>
<dt id="ab8e15c4067237ab3192ab8f412bee0f6">
<span class="m-doc-wrap-bumper">auto <a class="m-doc-self" href="#ab8e15c4067237ab3192ab8f412bee0f6">is_array_of_tables</a>(</span><span class="m-doc-wrap">) const -&gt; bool <span class="m-label m-flat m-warning">override</span> <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Returns true if this array contains only tables.</dd>
<dt>
<div class="m-doc-template">template&lt;typename T = void&gt;</div>
<span class="m-doc-wrap-bumper">auto <a class="m-doc" href="#a35ffeee7c5ba7a45dda85699af2b0f07">is_homogeneous</a>(</span><span class="m-doc-wrap">) const -&gt; bool <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Checks if the array contains nodes of only one type.</dd>
<dt id="a30764b48a4c5cb191b620b77df4c8b00">
<span class="m-doc-wrap-bumper">auto <a class="m-doc-self" href="#a30764b48a4c5cb191b620b77df4c8b00">is_table</a>(</span><span class="m-doc-wrap">) const -&gt; bool <span class="m-label m-flat m-warning">override</span> <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Always returns <code>false</code> for array nodes.</dd>
<dt id="a7a38831cec7e7215a6101ba40fc1ce11">
<span class="m-doc-wrap-bumper">auto <a class="m-doc-self" href="#a7a38831cec7e7215a6101ba40fc1ce11">is_value</a>(</span><span class="m-doc-wrap">) const -&gt; bool <span class="m-label m-flat m-warning">override</span> <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Always returns <code>false</code> for array nodes.</dd>
<dt id="a94ca021b96ffca7cc01ebd2b37ce23aa">
<span class="m-doc-wrap-bumper">auto <a class="m-doc-self" href="#a94ca021b96ffca7cc01ebd2b37ce23aa">operator=</a>(</span><span class="m-doc-wrap"><a class="m-doc" href="classtoml_1_1array.html">array</a>&amp;&amp; rhs) -&gt; <a class="m-doc" href="classtoml_1_1array.html">array</a>&amp; <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Move-assignment operator.</dd>
<dt id="a908e56552c2cfaabc9b73d220792e214">
<span class="m-doc-wrap-bumper">auto <a class="m-doc-self" href="#a908e56552c2cfaabc9b73d220792e214">operator[]</a>(</span><span class="m-doc-wrap"><a class="m-doc tpp-injected tpp-external" href="https://en.cppreference.com/w/cpp/types/size_t" target="_blank">size_t</a> index) const -&gt; const <a class="m-doc" href="classtoml_1_1node.html">node</a>&amp; <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Gets a reference to the node at a specific index.</dd>
<dt id="a1e471e2bed5daf80b6695c009052bb4e">
<span class="m-doc-wrap-bumper">auto <a class="m-doc-self" href="#a1e471e2bed5daf80b6695c009052bb4e">operator[]</a>(</span><span class="m-doc-wrap"><a class="m-doc tpp-injected tpp-external" href="https://en.cppreference.com/w/cpp/types/size_t" target="_blank">size_t</a> index) -&gt; <a class="m-doc" href="classtoml_1_1node.html">node</a>&amp; <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Gets a reference to the node at a specific index.</dd>
<dt id="af99d72e29cef84f736d91d627b47a1dc">
<span class="m-doc-wrap-bumper">void <a class="m-doc-self" href="#af99d72e29cef84f736d91d627b47a1dc">pop_back</a>(</span><span class="m-doc-wrap">) <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Removes the last node from the array.</dd>
<dt>
<div class="m-doc-template">template&lt;typename U&gt;</div>
<span class="m-doc-wrap-bumper">auto <a class="m-doc" href="#a1fe7d07a51adbd32c734bb99cbe3ff28">push_back</a>(</span><span class="m-doc-wrap">U&amp;&amp; val) -&gt; decltype(auto) <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Appends a new value to the end of the array.</dd>
<dt id="a1ba073adc52c3df5ad29cfd7e5daa1d5">
<span class="m-doc-wrap-bumper">void <a class="m-doc-self" href="#a1ba073adc52c3df5ad29cfd7e5daa1d5">reserve</a>(</span><span class="m-doc-wrap"><a class="m-doc tpp-injected tpp-external" href="https://en.cppreference.com/w/cpp/types/size_t" target="_blank">size_t</a> new_capacity)</span>
</dt>
<dd>Reserves internal storage capacity up to a pre-determined number of nodes.</dd>
<dt id="af81d7b6a1257ad766a47d9276855a7c9">
<span class="m-doc-wrap-bumper">auto <a class="m-doc-self" href="#af81d7b6a1257ad766a47d9276855a7c9">size</a>(</span><span class="m-doc-wrap">) const -&gt; <a class="m-doc tpp-injected tpp-external" href="https://en.cppreference.com/w/cpp/types/size_t" target="_blank">size_t</a> <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Returns the number of nodes in the array.</dd>
<dt id="a10f914637ff56f5bc6f96b089fd141a3">
<span class="m-doc-wrap-bumper">auto <a class="m-doc-self" href="#a10f914637ff56f5bc6f96b089fd141a3">type</a>(</span><span class="m-doc-wrap">) const -&gt; <a class="m-doc" href="namespacetoml.html#abac3e84bbf1f2c90717fca107055f48d">node_<wbr/>type</a> <span class="m-label m-flat m-warning">override</span> <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Always returns <a class="m-doc" href="namespacetoml.html#abac3e84bbf1f2c90717fca107055f48daf1f713c9e000f5d3f280adbd124df4f5">node_type::<wbr/>array</a> for array nodes.</dd>
</dl>
</section>
<section id="friends">
<h2><a href="#friends">Friends</a></h2>
<dl class="m-doc">
<dt>
<span class="m-doc-wrap-bumper">auto <a class="m-doc" href="#af06c7437a0946a9d5e093d903b59f6a4">operator!=</a>(</span><span class="m-doc-wrap">const <a class="m-doc" href="classtoml_1_1array.html">array</a>&amp; lhs,
const <a class="m-doc" href="classtoml_1_1array.html">array</a>&amp; rhs) -&gt; bool <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Inequality operator.</dd>
<dt>
<span class="m-doc-wrap-bumper">auto <a class="m-doc" href="#a06cf25e3f80c98d88e041ef9823976c0">operator==</a>(</span><span class="m-doc-wrap">const <a class="m-doc" href="classtoml_1_1array.html">array</a>&amp; lhs,
const <a class="m-doc" href="classtoml_1_1array.html">array</a>&amp; rhs) -&gt; bool <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Equality operator.</dd>
<dt id="ab87e435c5a41140e60cd2e703df96fbd">
<div class="m-doc-template">template&lt;typename T&gt;</div>
<span class="m-doc-wrap-bumper">auto <a class="m-doc-self" href="#ab87e435c5a41140e60cd2e703df96fbd">operator==</a>(</span><span class="m-doc-wrap">const <a class="m-doc" href="classtoml_1_1array.html">array</a>&amp; lhs,
const <a class="m-doc tpp-injected tpp-external" href="https://en.cppreference.com/w/cpp/utility/initializer_list" target="_blank">std::initializer_list</a>&lt;T&gt;&amp; rhs) -&gt; bool <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Initializer list equality operator.</dd>
<dt id="a5b3c615e4ba8fd780b966f175070b554">
<div class="m-doc-template">template&lt;typename T&gt;</div>
<span class="m-doc-wrap-bumper">auto <a class="m-doc-self" href="#a5b3c615e4ba8fd780b966f175070b554">operator==</a>(</span><span class="m-doc-wrap">const <a class="m-doc" href="classtoml_1_1array.html">array</a>&amp; lhs,
const <a class="m-doc tpp-injected tpp-external" href="https://en.cppreference.com/w/cpp/container/vector" target="_blank">std::vector</a>&lt;T&gt;&amp; rhs) -&gt; bool <span class="m-label m-flat m-success">noexcept</span></span>
</dt>
<dd>Vector equality operator.</dd>
</dl>
</section>
<section>
<h2>Function documentation</h2>
<section class="m-doc-details" id="a5bd50aa0d09d7efd767e6c874525be2f"><div>
<h3>
<div class="m-doc-template">
template&lt;typename U, typename... V&gt;
</div>
<span class="m-doc-wrap-bumper"> toml::<wbr/>array::<wbr/></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a class="m-doc-self" href="#a5bd50aa0d09d7efd767e6c874525be2f">array</a>(</span><span class="m-doc-wrap">U&amp;&amp; val,
V &amp;&amp; ... vals) <span class="m-label m-info">explicit</span> </span></span>
</h3>
<p>Constructs an array with one or more initial values.</p>
<table class="m-table m-fullwidth m-flat">
<thead>
<tr><th colspan="2">Template parameters</th></tr>
</thead>
<tbody>
<tr>
<td style="width: 1%">U</td>
<td>One of the TOML node or value types (or a type promotable to one).</td>
</tr>
<tr>
<td>V</td>
<td>One of the TOML node or value types (or a type promotable to one).</td>
</tr>
</tbody>
<thead>
<tr><th colspan="2">Parameters</th></tr>
</thead>
<tbody>
<tr>
<td>val</td>
<td>The value used to initialize node 0.</td>
</tr>
<tr>
<td>vals</td>
<td>The values used to initialize nodes 1...N.</td>
</tr>
</tbody>
</table>
<pre class="m-code"><span class="k">auto</span> <span class="n">arr</span> <span class="o">=</span> <span class="ns">toml::</span><span class="ut">array</span><span class="p">{</span> <span class="mi">1</span><span class="p">,</span> <span class="mf">2.0</span><span class="p">,</span> <span class="s">"three"</span><span class="sa">sv</span><span class="p">,</span> <span class="ns">toml::</span><span class="ut">array</span><span class="p">{</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span> <span class="p">}</span> <span class="p">};</span>
<span class="ns">std::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">arr</span> <span class="o">&lt;&lt;</span> <span class="ns">std::</span><span class="n">endl</span><span class="p">;</span></pre><pre class="m-console"><span class="go">[1, 2.0, "three", [4, 5]]</span></pre>
</div></section>
<section class="m-doc-details" id="a6467e68e1b35c27f876cf04be684a692"><div>
<h3>
<div class="m-doc-template">
template&lt;typename U, typename... V&gt;
</div>
<span class="m-doc-wrap-bumper"><a class="m-doc" href="classtoml_1_1array.html#a012d869144b5532229dd3ce1eac02bf6">iterator</a> toml::<wbr/>array::<wbr/></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a class="m-doc-self" href="#a6467e68e1b35c27f876cf04be684a692">emplace</a>(</span><span class="m-doc-wrap"><a class="m-doc" href="classtoml_1_1array.html#ada39844ba79a1f6fec4fbe7c8bc66eba">const_<wbr/>iterator</a> pos,
V &amp;&amp; ... args) <span class="m-label m-success">noexcept</span></span></span>
</h3>
<p>Emplaces a new value at a specific position in the array.</p>
<table class="m-table m-fullwidth m-flat">
<thead>
<tr><th colspan="2">Template parameters</th></tr>
</thead>
<tbody>
<tr>
<td style="width: 1%">U</td>
<td>One of the TOML node or value types.</td>
</tr>
<tr>
<td>V</td>
<td>Value constructor argument types.</td>
</tr>
</tbody>
<thead>
<tr><th colspan="2">Parameters</th></tr>
</thead>
<tbody>
<tr>
<td>pos</td>
<td>The insertion position.</td>
</tr>
<tr>
<td>args</td>
<td>Arguments to forward to the value's constructor.</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Returns</th>
<td>An iterator to the inserted value.</td>
</tr>
</tfoot>
</table>
<pre class="m-code"><span class="k">auto</span> <span class="n">arr</span> <span class="o">=</span> <span class="ns">toml::</span><span class="ut">array</span><span class="p">{</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span> <span class="p">};</span>
<span class="c1">//add a string using <a class="m-doc tpp-injected tpp-external" href="https://en.cppreference.com/w/cpp/string/basic_string" target="_blank">std::string</a>'s substring constructor</span>
<span class="n">arr</span><span class="p">.</span><span class="n">emplace</span><span class="o">&lt;</span><span class="ns">std::</span><span class="ut">string</span><span class="o">&gt;</span><span class="p">(</span><span class="n">arr</span><span class="p">.</span><span class="n">cbegin</span><span class="p">()</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="s">"this is not a drill"</span><span class="sa">sv</span><span class="p">,</span> <span class="mi">14</span><span class="p">,</span> <span class="mi">5</span><span class="p">);</span>
<span class="ns">std::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">arr</span> <span class="o">&lt;&lt;</span> <span class="ns">std::</span><span class="n">endl</span><span class="p">;</span></pre><pre class="m-console"><span class="go">[1, "drill" 2]</span></pre><aside class="m-note m-default"><h4>Remark</h4><p>There is no difference between <a class="m-doc" href="classtoml_1_1array.html#a106930bbdf1221941813f51aba1cc17e">insert()</a> and <a class="m-doc" href="classtoml_1_1array.html#a6467e68e1b35c27f876cf04be684a692">emplace()</a> for trivial value types (floats, ints, bools).</p></aside>
</div></section>
<section class="m-doc-details" id="a3946fa8c822ddac062c43ca9a1a561eb"><div>
<h3>
<div class="m-doc-template">
template&lt;typename U, typename... V&gt;
</div>
<span class="m-doc-wrap-bumper">decltype(auto) toml::<wbr/>array::<wbr/></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a class="m-doc-self" href="#a3946fa8c822ddac062c43ca9a1a561eb">emplace_back</a>(</span><span class="m-doc-wrap">V &amp;&amp; ... args) <span class="m-label m-success">noexcept</span></span></span>
</h3>
<p>Emplaces a new value at the end of the array.</p>
<table class="m-table m-fullwidth m-flat">
<thead>
<tr><th colspan="2">Template parameters</th></tr>
</thead>
<tbody>
<tr>
<td style="width: 1%">U</td>
<td>One of the TOML value types.</td>
</tr>
<tr>
<td>V</td>
<td>Value constructor argument types.</td>
</tr>
</tbody>
<thead>
<tr><th colspan="2">Parameters</th></tr>
</thead>
<tbody>
<tr>
<td>args</td>
<td>Arguments to forward to the value's constructor.</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Returns</th>
<td>A reference to the newly-constructed value node.</td>
</tr>
</tfoot>
</table>
<pre class="m-code"><span class="k">auto</span> <span class="n">arr</span> <span class="o">=</span> <span class="ns">toml::</span><span class="ut">array</span><span class="p">{</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span> <span class="p">};</span>
<span class="n">arr</span><span class="p">.</span><span class="n">emplace_back</span><span class="o">&lt;</span><span class="ns">toml::</span><span class="ut">array</span><span class="o">&gt;</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="s">"four"</span><span class="sa">sv</span><span class="p">);</span>
<span class="ns">std::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">arr</span> <span class="o">&lt;&lt;</span> <span class="ns">std::</span><span class="n">endl</span><span class="p">;</span></pre><pre class="m-console"><span class="go">[1, 2, [3, "four"]]</span></pre><aside class="m-note m-default"><h4>Remark</h4><p>There is no difference between push_back and emplace_back For trivial value types (floats, ints, bools).</p></aside>
</div></section>
<section class="m-doc-details" id="ab2f18d46dd8d432b067f9ac950ef1221"><div>
<h3>
<span class="m-doc-wrap-bumper"><a class="m-doc" href="classtoml_1_1array.html#a012d869144b5532229dd3ce1eac02bf6">iterator</a> toml::<wbr/>array::<wbr/></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a class="m-doc-self" href="#ab2f18d46dd8d432b067f9ac950ef1221">erase</a>(</span><span class="m-doc-wrap"><a class="m-doc" href="classtoml_1_1array.html#ada39844ba79a1f6fec4fbe7c8bc66eba">const_<wbr/>iterator</a> first,
<a class="m-doc" href="classtoml_1_1array.html#ada39844ba79a1f6fec4fbe7c8bc66eba">const_<wbr/>iterator</a> last) <span class="m-label m-success">noexcept</span></span></span>
</h3>
<p>Removes the nodes in the range [first, last) from the array.</p>
<table class="m-table m-fullwidth m-flat">
<thead>
<tr><th colspan="2">Parameters</th></tr>
</thead>
<tbody>
<tr>
<td style="width: 1%">first</td>
<td>Iterator to the first node being erased.</td>
</tr>
<tr>
<td>last</td>
<td>Iterator to the one-past-the-last node being erased.</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Returns</th>
<td>Iterator to the first node immediately following the last removed node.</td>
</tr>
</tfoot>
</table>
<pre class="m-code"><span class="k">auto</span> <span class="n">arr</span> <span class="o">=</span> <span class="ns">toml::</span><span class="ut">array</span><span class="p">{</span> <span class="mi">1</span><span class="p">,</span> <span class="s">"bad"</span><span class="p">,</span> <span class="s">"karma"</span> <span class="mi">2</span> <span class="p">};</span>
<span class="ns">std::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">arr</span> <span class="o">&lt;&lt;</span> <span class="ns">std::</span><span class="n">endl</span><span class="p">;</span>
<span class="n">arr</span><span class="p">.</span><span class="n">erase</span><span class="p">(</span><span class="n">arr</span><span class="p">.</span><span class="n">cbegin</span><span class="p">()</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">arr</span><span class="p">.</span><span class="n">cbegin</span><span class="p">()</span> <span class="o">+</span> <span class="mi">3</span><span class="p">);</span>
<span class="ns">std::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">arr</span> <span class="o">&lt;&lt;</span> <span class="ns">std::</span><span class="n">endl</span><span class="p">;</span></pre><pre class="m-console"><span class="go">[1, "bad", "karma", 3]</span>
<span class="go">[1, 3]</span></pre>
</div></section>
<section class="m-doc-details" id="a4d54758d8f50af9c072bb8f15437d2b4"><div>
<h3>
<span class="m-doc-wrap-bumper"><a class="m-doc" href="classtoml_1_1array.html#a012d869144b5532229dd3ce1eac02bf6">iterator</a> toml::<wbr/>array::<wbr/></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a class="m-doc-self" href="#a4d54758d8f50af9c072bb8f15437d2b4">erase</a>(</span><span class="m-doc-wrap"><a class="m-doc" href="classtoml_1_1array.html#ada39844ba79a1f6fec4fbe7c8bc66eba">const_<wbr/>iterator</a> pos) <span class="m-label m-success">noexcept</span></span></span>
</h3>
<p>Removes the specified node from the array.</p>
<table class="m-table m-fullwidth m-flat">
<thead>
<tr><th colspan="2">Parameters</th></tr>
</thead>
<tbody>
<tr>
<td style="width: 1%">pos</td>
<td>Iterator to the node being erased.</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Returns</th>
<td>Iterator to the first node immediately following the removed node.</td>
</tr>
</tfoot>
</table>
<pre class="m-code"><span class="k">auto</span> <span class="n">arr</span> <span class="o">=</span> <span class="ns">toml::</span><span class="ut">array</span><span class="p">{</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span> <span class="p">};</span>
<span class="ns">std::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">arr</span> <span class="o">&lt;&lt;</span> <span class="ns">std::</span><span class="n">endl</span><span class="p">;</span>
<span class="n">arr</span><span class="p">.</span><span class="n">erase</span><span class="p">(</span><span class="n">arr</span><span class="p">.</span><span class="n">cbegin</span><span class="p">()</span> <span class="o">+</span> <span class="mi">1</span><span class="p">);</span>
<span class="ns">std::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">arr</span> <span class="o">&lt;&lt;</span> <span class="ns">std::</span><span class="n">endl</span><span class="p">;</span></pre><pre class="m-console"><span class="go">[1, 2, 3]</span>
<span class="go">[1, 3]</span></pre>
</div></section>
<section class="m-doc-details" id="a86f7f312f44bcdca6fc35307e2843a4c"><div>
<h3>
<span class="m-doc-wrap-bumper">void toml::<wbr/>array::<wbr/></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a class="m-doc-self" href="#a86f7f312f44bcdca6fc35307e2843a4c">flatten</a>(</span><span class="m-doc-wrap">)</span></span>
</h3>
<p>Flattens this array, recursively hoisting the contents of child arrays up into itself.</p>
<pre class="m-code"><span class="k">auto</span> <span class="n">arr</span> <span class="o">=</span> <span class="ns">toml::</span><span class="ut">array</span><span class="p">{</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="ns">toml::</span><span class="ut">array</span><span class="p">{</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="ns">toml::</span><span class="ut">array</span><span class="p">{</span> <span class="mi">5</span> <span class="p">}</span> <span class="p">},</span> <span class="mi">6</span><span class="p">,</span> <span class="ns">toml::</span><span class="ut">array</span><span class="p">{}</span> <span class="p">};</span>
<span class="ns">std::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">arr</span> <span class="o">&lt;&lt;</span> <span class="ns">std::</span><span class="n">endl</span><span class="p">;</span>
<span class="n">arr</span><span class="p">.</span><span class="n">flatten</span><span class="p">();</span>
<span class="ns">std::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">arr</span> <span class="o">&lt;&lt;</span> <span class="ns">std::</span><span class="n">endl</span><span class="p">;</span></pre><pre class="m-console"><span class="go">[1, 2, [3, 4, [5]], 6, []]</span>
<span class="go">[1, 2, 3, 4, 5, 6]</span></pre><aside class="m-note m-default"><h4>Remark</h4><p>Arrays inside child tables are not flattened.</p></aside>
</div></section>
<section class="m-doc-details" id="a0fb727f90506419f2e950b5d0e5160a9"><div>
<h3>
<span class="m-doc-wrap-bumper">const <a class="m-doc" href="classtoml_1_1node.html">node</a>* toml::<wbr/>array::<wbr/></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a class="m-doc-self" href="#a0fb727f90506419f2e950b5d0e5160a9">get</a>(</span><span class="m-doc-wrap"><a class="m-doc tpp-injected tpp-external" href="https://en.cppreference.com/w/cpp/types/size_t" target="_blank">size_t</a> index) const <span class="m-label m-success">noexcept</span></span></span>
</h3>
<p>Gets the node at a specific index (const overload).</p>
<table class="m-table m-fullwidth m-flat">
<thead>
<tr><th colspan="2">Parameters</th></tr>
</thead>
<tbody>
<tr>
<td style="width: 1%">index</td>
<td>The node's index.</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Returns</th>
<td>A pointer to the node at the specified index if one existed, or nullptr.</td>
</tr>
</tfoot>
</table>
</div></section>
<section class="m-doc-details" id="a442d80f39922d05c46b4a7d9a5455585"><div>
<h3>
<span class="m-doc-wrap-bumper"><a class="m-doc" href="classtoml_1_1node.html">node</a>* toml::<wbr/>array::<wbr/></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a class="m-doc-self" href="#a442d80f39922d05c46b4a7d9a5455585">get</a>(</span><span class="m-doc-wrap"><a class="m-doc tpp-injected tpp-external" href="https://en.cppreference.com/w/cpp/types/size_t" target="_blank">size_t</a> index) <span class="m-label m-success">noexcept</span></span></span>
</h3>
<p>Gets the node at a specific index.</p>
<table class="m-table m-fullwidth m-flat">
<thead>
<tr><th colspan="2">Parameters</th></tr>
</thead>
<tbody>
<tr>
<td style="width: 1%">index</td>
<td>The node's index.</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Returns</th>
<td>A pointer to the node at the specified index if one existed, or nullptr.</td>
</tr>
</tfoot>
</table>
<pre class="m-code"><span class="k">auto</span> <span class="n">arr</span> <span class="o">=</span> <span class="ns">toml::</span><span class="ut">array</span><span class="p">{</span> <span class="mi">99</span><span class="p">,</span> <span class="s">"bottles of beer on the wall"</span> <span class="p">};</span>
<span class="ns">std::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"node [0] exists: "</span><span class="sa">sv</span> <span class="o">&lt;&lt;</span> <span class="o">!!</span><span class="n">arr</span><span class="p">.</span><span class="n">get</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> <span class="o">&lt;&lt;</span> <span class="ns">std::</span><span class="n">endl</span><span class="p">;</span>
<span class="ns">std::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"node [1] exists: "</span><span class="sa">sv</span> <span class="o">&lt;&lt;</span> <span class="o">!!</span><span class="n">arr</span><span class="p">.</span><span class="n">get</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="o">&lt;&lt;</span> <span class="ns">std::</span><span class="n">endl</span><span class="p">;</span>
<span class="ns">std::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"node [2] exists: "</span><span class="sa">sv</span> <span class="o">&lt;&lt;</span> <span class="o">!!</span><span class="n">arr</span><span class="p">.</span><span class="n">get</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> <span class="o">&lt;&lt;</span> <span class="ns">std::</span><span class="n">endl</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="k">auto</span> <span class="n">val</span> <span class="o">=</span> <span class="n">arr</span><span class="p">.</span><span class="n">get</span><span class="p">(</span><span class="mi">0</span><span class="p">))</span>
<span class="ns">std::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"node [0] was an "</span><span class="sa">sv</span> <span class="o">&lt;&lt;</span> <span class="n">val</span><span class="o">-&gt;</span><span class="n">type</span><span class="p">()</span> <span class="o">&lt;&lt;</span> <span class="ns">std::</span><span class="n">endl</span><span class="p">;</span></pre><pre class="m-console"><span class="go">node [0] exists: true</span>
<span class="go">node [1] exists: true</span>
<span class="go">node [2] exists: false</span>
<span class="go">node [0] was an integer</span></pre>
</div></section>
<section class="m-doc-details" id="acb98eae570d4f8a06fc1615a8b5d9655"><div>
<h3>
<div class="m-doc-template">
template&lt;typename T&gt;
</div>
<span class="m-doc-wrap-bumper">const impl::node_of&lt;T&gt;* toml::<wbr/>array::<wbr/></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a class="m-doc-self" href="#acb98eae570d4f8a06fc1615a8b5d9655">get_as</a>(</span><span class="m-doc-wrap"><a class="m-doc tpp-injected tpp-external" href="https://en.cppreference.com/w/cpp/types/size_t" target="_blank">size_t</a> index) const <span class="m-label m-success">noexcept</span></span></span>
</h3>
<p>Gets the node at a specific index if it is a particular type (const overload).</p>
<table class="m-table m-fullwidth m-flat">
<thead>
<tr><th colspan="2">Template parameters</th></tr>
</thead>
<tbody>
<tr>
<td style="width: 1%">T</td>
<td>The node's type.</td>
</tr>
</tbody>
<thead>
<tr><th colspan="2">Parameters</th></tr>
</thead>
<tbody>
<tr>
<td>index</td>
<td>The node's index.</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Returns</th>
<td>A pointer to the selected node if it existed and was of the specified type, or nullptr.</td>
</tr>
</tfoot>
</table>
</div></section>
<section class="m-doc-details" id="a6a5916eed0e68ceb090ef2697fa5b121"><div>
<h3>
<div class="m-doc-template">
template&lt;typename T&gt;
</div>
<span class="m-doc-wrap-bumper">impl::node_of&lt;T&gt;* toml::<wbr/>array::<wbr/></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a class="m-doc-self" href="#a6a5916eed0e68ceb090ef2697fa5b121">get_as</a>(</span><span class="m-doc-wrap"><a class="m-doc tpp-injected tpp-external" href="https://en.cppreference.com/w/cpp/types/size_t" target="_blank">size_t</a> index) <span class="m-label m-success">noexcept</span></span></span>
</h3>
<p>Gets the node at a specific index if it is a particular type.</p>
<table class="m-table m-fullwidth m-flat">
<thead>
<tr><th colspan="2">Template parameters</th></tr>
</thead>
<tbody>
<tr>
<td style="width: 1%">T</td>
<td>The node's type.</td>
</tr>
</tbody>
<thead>
<tr><th colspan="2">Parameters</th></tr>
</thead>
<tbody>
<tr>
<td>index</td>
<td>The node's index.</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Returns</th>
<td>A pointer to the selected node if it existed and was of the specified type, or nullptr.</td>
</tr>
</tfoot>
</table>
<pre class="m-code"><span class="k">auto</span> <span class="n">arr</span> <span class="o">=</span> <span class="ns">toml::</span><span class="ut">array</span><span class="p">{</span> <span class="mi">42</span><span class="p">,</span> <span class="s">"is the meaning of life, apparently."</span><span class="sa">sv</span> <span class="p">};</span>
<span class="k">if</span> <span class="p">(</span><span class="k">auto</span> <span class="n">val</span> <span class="o">=</span> <span class="n">arr</span><span class="p">.</span><span class="n">get_as</span><span class="o">&lt;</span><span class="ut"><a class="m-doc tpp-injected tpp-external" href="https://en.cppreference.com/w/cpp/types/integer" target="_blank">int64_t</a></span><span class="o">&gt;</span><span class="p">(</span><span class="mi">0</span><span class="p">))</span>
<span class="ns">std::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"node [0] was an integer with value "</span><span class="sa">sv</span> <span class="o">&lt;&lt;</span> <span class="o">**</span><span class="n">val</span> <span class="o">&lt;&lt;</span> <span class="ns">std::</span><span class="n">endl</span><span class="p">;</span></pre><pre class="m-console"><span class="go">node [0] was an integer with value 42</span></pre>
</div></section>
<section class="m-doc-details" id="a311fed9b54b87daab0646fbc1818170b"><div>
<h3>
<div class="m-doc-template">
template&lt;typename Iter&gt;
</div>
<span class="m-doc-wrap-bumper"><a class="m-doc" href="classtoml_1_1array.html#a012d869144b5532229dd3ce1eac02bf6">iterator</a> toml::<wbr/>array::<wbr/></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a class="m-doc-self" href="#a311fed9b54b87daab0646fbc1818170b">insert</a>(</span><span class="m-doc-wrap"><a class="m-doc" href="classtoml_1_1array.html#ada39844ba79a1f6fec4fbe7c8bc66eba">const_<wbr/>iterator</a> pos,
Iter first,
Iter last) <span class="m-label m-success">noexcept</span></span></span>
</h3>
<p>Inserts a range of values into the array at a specific position.</p>
<table class="m-table m-fullwidth m-flat">
<thead>
<tr><th colspan="2">Template parameters</th></tr>
</thead>
<tbody>
<tr>
<td style="width: 1%">Iter</td>
<td>An iterator type. Must satisfy <a class="m-doc tpp-injected tpp-external" href="https://en.cppreference.com/w/cpp/named_req/ForwardIterator" target="_blank">ForwardIterator</a>.</td>
</tr>
</tbody>
<thead>
<tr><th colspan="2">Parameters</th></tr>
</thead>
<tbody>
<tr>
<td>pos</td>
<td>The insertion position.</td>
</tr>
<tr>
<td>first</td>
<td>Iterator to the first value being inserted.</td>
</tr>
<tr>
<td>last</td>
<td>Iterator to the one-past-the-last value being inserted.</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Returns</th>
<td>An iterator to the first inserted value (or a copy of <code>pos</code> if <code>first</code> == <code>last</code>).</td>
</tr>
</tfoot>
</table>
</div></section>
<section class="m-doc-details" id="aae228e38c14c8d6247a1ab4e4ddc151d"><div>
<h3>
<div class="m-doc-template">
template&lt;typename U&gt;
</div>
<span class="m-doc-wrap-bumper"><a class="m-doc" href="classtoml_1_1array.html#a012d869144b5532229dd3ce1eac02bf6">iterator</a> toml::<wbr/>array::<wbr/></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a class="m-doc-self" href="#aae228e38c14c8d6247a1ab4e4ddc151d">insert</a>(</span><span class="m-doc-wrap"><a class="m-doc" href="classtoml_1_1array.html#ada39844ba79a1f6fec4fbe7c8bc66eba">const_<wbr/>iterator</a> pos,
<a class="m-doc tpp-injected tpp-external" href="https://en.cppreference.com/w/cpp/types/size_t" target="_blank">size_t</a> count,
U&amp;&amp; val) <span class="m-label m-success">noexcept</span></span></span>
</h3>
<p>Repeatedly inserts a value starting at a specific position in the array.</p>
<table class="m-table m-fullwidth m-flat">
<thead>
<tr><th colspan="2">Template parameters</th></tr>
</thead>
<tbody>
<tr>
<td style="width: 1%">U</td>
<td>One of the TOML value types (or a type promotable to one).</td>
</tr>
</tbody>
<thead>
<tr><th colspan="2">Parameters</th></tr>
</thead>
<tbody>
<tr>
<td>pos</td>
<td>The insertion position.</td>
</tr>
<tr>
<td>count</td>
<td>The number of times the value should be inserted.</td>
</tr>
<tr>
<td>val</td>
<td>The value being inserted.</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Returns</th>
<td>An iterator to the first inserted value (or a copy of <code>pos</code> if count was 0).</td>
</tr>
</tfoot>
</table>
<pre class="m-code"><span class="k">auto</span> <span class="n">arr</span> <span class="o">=</span> <span class="ns">toml::</span><span class="ut">array</span><span class="p">{</span>
<span class="s">"with an evil twinkle in its eye the goose said"</span><span class="p">,</span>
<span class="s">"and immediately we knew peace was never an option."</span>
<span class="p">};</span>
<span class="n">arr</span><span class="p">.</span><span class="n">insert</span><span class="p">(</span><span class="n">arr</span><span class="p">.</span><span class="n">cbegin</span><span class="p">()</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="s">"honk"</span><span class="p">);</span>
<span class="ns">std::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">arr</span> <span class="o">&lt;&lt;</span> <span class="ns">std::</span><span class="n">endl</span><span class="p">;</span></pre><pre class="m-console"><span class="go">[</span>
<span class="go"> "with an evil twinkle in its eye the goose said",</span>
<span class="go"> "honk",</span>
<span class="go"> "honk",</span>
<span class="go"> "honk",</span>
<span class="go"> "and immediately we knew peace was never an option."</span>
<span class="go">]</span></pre>
</div></section>
<section class="m-doc-details" id="a2209e45b30df84c9f6da381cd0f92c07"><div>
<h3>
<div class="m-doc-template">
template&lt;typename U&gt;
</div>
<span class="m-doc-wrap-bumper"><a class="m-doc" href="classtoml_1_1array.html#a012d869144b5532229dd3ce1eac02bf6">iterator</a> toml::<wbr/>array::<wbr/></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a class="m-doc-self" href="#a2209e45b30df84c9f6da381cd0f92c07">insert</a>(</span><span class="m-doc-wrap"><a class="m-doc" href="classtoml_1_1array.html#ada39844ba79a1f6fec4fbe7c8bc66eba">const_<wbr/>iterator</a> pos,
<a class="m-doc tpp-injected tpp-external" href="https://en.cppreference.com/w/cpp/utility/initializer_list" target="_blank">std::initializer_list</a>&lt;U&gt; ilist) <span class="m-label m-success">noexcept</span></span></span>
</h3>
<p>Inserts a range of values into the array at a specific position.</p>
<table class="m-table m-fullwidth m-flat">
<thead>
<tr><th colspan="2">Template parameters</th></tr>
</thead>
<tbody>
<tr>
<td style="width: 1%">U</td>
<td>One of the TOML node or value types (or a type promotable to one).</td>
</tr>
</tbody>
<thead>
<tr><th colspan="2">Parameters</th></tr>
</thead>
<tbody>
<tr>
<td>pos</td>
<td>The insertion position.</td>
</tr>
<tr>
<td>ilist</td>
<td>An initializer list containing the values to be inserted.</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Returns</th>
<td>An iterator to the first inserted value (or a copy of <code>pos</code> if <code>ilist</code> was empty).</td>
</tr>
</tfoot>
</table>
</div></section>
<section class="m-doc-details" id="a106930bbdf1221941813f51aba1cc17e"><div>
<h3>
<div class="m-doc-template">
template&lt;typename U&gt;
</div>
<span class="m-doc-wrap-bumper"><a class="m-doc" href="classtoml_1_1array.html#a012d869144b5532229dd3ce1eac02bf6">iterator</a> toml::<wbr/>array::<wbr/></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a class="m-doc-self" href="#a106930bbdf1221941813f51aba1cc17e">insert</a>(</span><span class="m-doc-wrap"><a class="m-doc" href="classtoml_1_1array.html#ada39844ba79a1f6fec4fbe7c8bc66eba">const_<wbr/>iterator</a> pos,
U&amp;&amp; val) <span class="m-label m-success">noexcept</span></span></span>
</h3>
<p>Inserts a new node at a specific position in the array.</p>
<table class="m-table m-fullwidth m-flat">
<thead>
<tr><th colspan="2">Template parameters</th></tr>
</thead>
<tbody>
<tr>
<td style="width: 1%">U</td>
<td>One of the TOML node or value types (or a type promotable to one).</td>
</tr>
</tbody>
<thead>
<tr><th colspan="2">Parameters</th></tr>
</thead>
<tbody>
<tr>
<td>pos</td>
<td>The insertion position.</td>
</tr>
<tr>
<td>val</td>
<td>The value being inserted.</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Returns</th>
<td>An iterator to the inserted value.</td>
</tr>
</tfoot>
</table>
<pre class="m-code"><span class="k">auto</span> <span class="n">arr</span> <span class="o">=</span> <span class="ns">toml::</span><span class="ut">array</span><span class="p">{</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">3</span> <span class="p">};</span>
<span class="n">arr</span><span class="p">.</span><span class="n">insert</span><span class="p">(</span><span class="n">arr</span><span class="p">.</span><span class="n">cbegin</span><span class="p">()</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="s">"two"</span><span class="p">);</span>
<span class="n">arr</span><span class="p">.</span><span class="n">insert</span><span class="p">(</span><span class="n">arr</span><span class="p">.</span><span class="n">cend</span><span class="p">(),</span> <span class="ns">toml::</span><span class="ut">array</span><span class="p">{</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span> <span class="p">});</span>
<span class="ns">std::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">arr</span> <span class="o">&lt;&lt;</span> <span class="ns">std::</span><span class="n">endl</span><span class="p">;</span></pre><pre class="m-console"><span class="go">[1, "two", 3, [4, 5]]</span></pre>
</div></section>
<section class="m-doc-details" id="a35ffeee7c5ba7a45dda85699af2b0f07"><div>
<h3>
<div class="m-doc-template">
template&lt;typename T = void&gt;
</div>
<span class="m-doc-wrap-bumper">bool toml::<wbr/>array::<wbr/></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a class="m-doc-self" href="#a35ffeee7c5ba7a45dda85699af2b0f07">is_homogeneous</a>(</span><span class="m-doc-wrap">) const <span class="m-label m-success">noexcept</span></span></span>
</h3>
<p>Checks if the array contains nodes of only one type.</p>
<table class="m-table m-fullwidth m-flat">
<thead>
<tr><th colspan="2">Template parameters</th></tr>
</thead>
<tbody>
<tr>
<td style="width: 1%">T</td>
<td>A TOML node type.<br/><strong><em>Explicitly specified:</em></strong> "is every node a T?"<br/><strong><em>Left as <code>void</code>:</em></strong> "is every node the same type?"</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Returns</th>
<td>True if the array was homogeneous.</td>
</tr>
</tfoot>
</table>
<pre class="m-code"><span class="k">auto</span> <span class="n">arr</span> <span class="o">=</span> <span class="ns">toml::</span><span class="ut">array</span><span class="p">{</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span> <span class="p">};</span>
<span class="ns">std::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"homogenous: "</span><span class="sa">sv</span> <span class="o">&lt;&lt;</span> <span class="n">arr</span><span class="p">.</span><span class="n">is_homogeneous</span><span class="p">()</span> <span class="o">&lt;&lt;</span> <span class="ns">std::</span><span class="n">endl</span><span class="p">;</span>
<span class="ns">std::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"all doubles: "</span><span class="sa">sv</span> <span class="o">&lt;&lt;</span> <span class="n">arr</span><span class="p">.</span><span class="n">is_homogeneous</span><span class="o">&lt;</span><span class="ut">double</span><span class="o">&gt;</span><span class="p">()</span> <span class="o">&lt;&lt;</span> <span class="ns">std::</span><span class="n">endl</span><span class="p">;</span>
<span class="ns">std::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"all arrays: "</span><span class="sa">sv</span> <span class="o">&lt;&lt;</span> <span class="n">arr</span><span class="p">.</span><span class="n">is_homogeneous</span><span class="o">&lt;</span><span class="ns">toml::</span><span class="ut">array</span><span class="o">&gt;</span><span class="p">()</span> <span class="o">&lt;&lt;</span> <span class="ns">std::</span><span class="n">endl</span><span class="p">;</span>
<span class="ns">std::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"all integers: "</span><span class="sa">sv</span> <span class="o">&lt;&lt;</span> <span class="n">arr</span><span class="p">.</span><span class="n">is_homogeneous</span><span class="o">&lt;</span><span class="ut"><a class="m-doc tpp-injected tpp-external" href="https://en.cppreference.com/w/cpp/types/integer" target="_blank">int64_t</a></span><span class="o">&gt;</span><span class="p">()</span> <span class="o">&lt;&lt;</span> <span class="ns">std::</span><span class="n">endl</span><span class="p">;</span></pre><pre class="m-console"><span class="go">homogeneous: true</span>
<span class="go">all doubles: false</span>
<span class="go">all arrays: false</span>
<span class="go">all integers: true</span></pre><aside class="m-note m-default"><h4>Remark</h4><p>Always returns <code>false</code> for empty arrays.</p></aside>
</div></section>
<section class="m-doc-details" id="a1fe7d07a51adbd32c734bb99cbe3ff28"><div>
<h3>
<div class="m-doc-template">
template&lt;typename U&gt;
</div>
<span class="m-doc-wrap-bumper">decltype(auto) toml::<wbr/>array::<wbr/></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a class="m-doc-self" href="#a1fe7d07a51adbd32c734bb99cbe3ff28">push_back</a>(</span><span class="m-doc-wrap">U&amp;&amp; val) <span class="m-label m-success">noexcept</span></span></span>
</h3>
<p>Appends a new value to the end of the array.</p>
<table class="m-table m-fullwidth m-flat">
<thead>
<tr><th colspan="2">Template parameters</th></tr>
</thead>
<tbody>
<tr>
<td style="width: 1%">U</td>
<td>One of the TOML value types (or a type promotable to one).</td>
</tr>
</tbody>
<thead>
<tr><th colspan="2">Parameters</th></tr>
</thead>
<tbody>
<tr>
<td>val</td>
<td>The value being added.</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Returns</th>
<td>A reference to the newly-constructed value node.</td>
</tr>
</tfoot>
</table>
<pre class="m-code"><span class="k">auto</span> <span class="n">arr</span> <span class="o">=</span> <span class="ns">toml::</span><span class="ut">array</span><span class="p">{</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span> <span class="p">};</span>
<span class="n">arr</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="mi">3</span><span class="p">);</span>
<span class="n">arr</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="mf">4.0</span><span class="p">);</span>
<span class="n">arr</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="ns">toml::</span><span class="ut">array</span><span class="p">{</span> <span class="mi">5</span><span class="p">,</span> <span class="s">"six"</span><span class="sa">sv</span> <span class="p">});</span>
<span class="ns">std::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">arr</span> <span class="o">&lt;&lt;</span> <span class="ns">std::</span><span class="n">endl</span><span class="p">;</span></pre><pre class="m-console"><span class="go">[1, 2, 3, 4.0, [5, "six"]]</span></pre>
</div></section>
<section class="m-doc-details" id="af06c7437a0946a9d5e093d903b59f6a4"><div>
<h3>
<span class="m-doc-wrap-bumper">bool </span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a class="m-doc-self" href="#af06c7437a0946a9d5e093d903b59f6a4">operator!=</a>(</span><span class="m-doc-wrap">const <a class="m-doc" href="classtoml_1_1array.html">array</a>&amp; lhs,
const <a class="m-doc" href="classtoml_1_1array.html">array</a>&amp; rhs) <span class="m-label m-success">noexcept</span></span></span>
</h3>
<p>Inequality operator.</p>
<table class="m-table m-fullwidth m-flat">
<thead>
<tr><th colspan="2">Parameters</th></tr>
</thead>
<tbody>
<tr>
<td style="width: 1%">lhs</td>
<td>The LHS array.</td>
</tr>
<tr>
<td>rhs</td>
<td>The RHS array.</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Returns</th>
<td>True if the arrays did not contain the same values.</td>
</tr>
</tfoot>
</table>
</div></section>
<section class="m-doc-details" id="a06cf25e3f80c98d88e041ef9823976c0"><div>
<h3>
<span class="m-doc-wrap-bumper">bool </span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a class="m-doc-self" href="#a06cf25e3f80c98d88e041ef9823976c0">operator==</a>(</span><span class="m-doc-wrap">const <a class="m-doc" href="classtoml_1_1array.html">array</a>&amp; lhs,
const <a class="m-doc" href="classtoml_1_1array.html">array</a>&amp; rhs) <span class="m-label m-success">noexcept</span></span></span>
</h3>
<p>Equality operator.</p>
<table class="m-table m-fullwidth m-flat">
<thead>
<tr><th colspan="2">Parameters</th></tr>
</thead>
<tbody>
<tr>
<td style="width: 1%">lhs</td>
<td>The LHS array.</td>
</tr>
<tr>
<td>rhs</td>
<td>The RHS array.</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Returns</th>
<td>True if the arrays contained the same values.</td>
</tr>
</tfoot>
</table>
</div></section>
</section>
</div>
</div>
</div>
</article></main>
<div class="m-doc-search" id="search">
<a href="#!" onclick="return hideSearch()"></a>
<div class="m-container">
<div class="m-row">
<div class="m-col-m-8 m-push-m-2">
<div class="m-doc-search-header m-text m-small">
<div><span class="m-label m-default">Tab</span> / <span class="m-label m-default">T</span> to search, <span class="m-label m-default">Esc</span> to close</div>
<div id="search-symbolcount"></div>
</div>
<div class="m-doc-search-content">
<form>
<input autocomplete="off" autofocus="autofocus" disabled="disabled" id="search-input" name="q" placeholder="Loading …" spellcheck="false" type="search"/>
</form>
<noscript class="m-text m-danger m-text-center">Unlike everything else in the docs, the search functionality <em>requires</em> JavaScript.</noscript>
<div class="m-text m-dim m-text-center" id="search-help">
<p class="m-noindent">Search for symbols, directories, files, pages or
modules. You can omit any prefix from the symbol or file path; adding a
<code>:</code> or <code>/</code> suffix lists all members of given symbol or
directory.</p>
<p class="m-noindent">Use <span class="m-label m-dim"></span>
/ <span class="m-label m-dim"></span> to navigate through the list,
<span class="m-label m-dim">Enter</span> to go.
<span class="m-label m-dim">Tab</span> autocompletes common prefix, you can
copy a link to the result using <span class="m-label m-dim"></span>
<span class="m-label m-dim">L</span> while <span class="m-label m-dim"></span>
<span class="m-label m-dim">M</span> produces a Markdown link.</p>
</div>
<div class="m-text m-warning m-text-center" id="search-notfound">Sorry, nothing was found.</div>
<ul id="search-results"></ul>
</div>
</div>
</div>
</div>
</div>
<script src="search-v1.js"></script>
<script async="async" src="searchdata-v1.js"></script>
<footer><nav>
<div class="m-container">
<div class="m-row">
<div class="m-col-l-10 m-push-l-1">
<a href="https://github.com/marzer/tomlplusplus/" target="_blank">Github</a>
<a href="https://github.com/marzer/tomlplusplus/issues" target="_blank">Report
an
issue</a>
<br/><br/>Documentation
generated
using
<a href="https://mcss.mosra.cz/">m.css</a>
</div>
</div>
</div>
</nav></footer>
</body></html>