add Doxygen documentation
[o-du/phy.git] / docs / API / classnlohmann_1_1basic__json.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6 <meta name="generator" content="Doxygen 1.8.13"/>
7 <meta name="viewport" content="width=device-width, initial-scale=1"/>
8 <title>o-du/phy: basic_json&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; Class Template Reference</title>
9 <link href="tabs.css" rel="stylesheet" type="text/css"/>
10 <script type="text/javascript" src="jquery.js"></script>
11 <script type="text/javascript" src="dynsections.js"></script>
12 <link href="search/search.css" rel="stylesheet" type="text/css"/>
13 <script type="text/javascript" src="search/searchdata.js"></script>
14 <script type="text/javascript" src="search/search.js"></script>
15 <link href="doxygen.css" rel="stylesheet" type="text/css" />
16 </head>
17 <body>
18 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
19 <div id="titlearea">
20 <table cellspacing="0" cellpadding="0">
21  <tbody>
22  <tr style="height: 56px;">
23   <td id="projectalign" style="padding-left: 0.5em;">
24    <div id="projectname">o-du/phy
25    </div>
26    <div id="projectbrief">Intel O-RAN/X-RAN Generated Doxygen Documentation</div>
27   </td>
28  </tr>
29  </tbody>
30 </table>
31 </div>
32 <!-- end header part -->
33 <!-- Generated by Doxygen 1.8.13 -->
34 <script type="text/javascript">
35 var searchBox = new SearchBox("searchBox", "search",false,'Search');
36 </script>
37 <script type="text/javascript" src="menudata.js"></script>
38 <script type="text/javascript" src="menu.js"></script>
39 <script type="text/javascript">
40 $(function() {
41   initMenu('',true,false,'search.php','Search');
42   $(document).ready(function() { init_search(); });
43 });
44 </script>
45 <div id="main-nav"></div>
46 <!-- window showing the filter options -->
47 <div id="MSearchSelectWindow"
48      onmouseover="return searchBox.OnSearchSelectShow()"
49      onmouseout="return searchBox.OnSearchSelectHide()"
50      onkeydown="return searchBox.OnSearchSelectKey(event)">
51 </div>
52
53 <!-- iframe showing the search results (closed by default) -->
54 <div id="MSearchResultsWindow">
55 <iframe src="javascript:void(0)" frameborder="0" 
56         name="MSearchResults" id="MSearchResults">
57 </iframe>
58 </div>
59
60 <div id="nav-path" class="navpath">
61   <ul>
62 <li class="navelem"><a class="el" href="namespacenlohmann.html">nlohmann</a></li><li class="navelem"><a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a></li>  </ul>
63 </div>
64 </div><!-- top -->
65 <div class="header">
66   <div class="summary">
67 <a href="#nested-classes">Data Structures</a> &#124;
68 <a href="#pub-types">Public Types</a> &#124;
69 <a href="#pub-methods">Public Member Functions</a> &#124;
70 <a href="#pub-static-methods">Static Public Member Functions</a> &#124;
71 <a href="#friends">Friends</a>  </div>
72   <div class="headertitle">
73 <div class="title">basic_json&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; Class Template Reference</div>  </div>
74 </div><!--header-->
75 <div class="contents">
76
77 <p>a class to store JSON values  
78  <a href="classnlohmann_1_1basic__json.html#details">More...</a></p>
79
80 <p><code>#include &lt;<a class="el" href="json_8hpp_source.html">json.hpp</a>&gt;</code></p>
81 <div class="dynheader">
82 Collaboration diagram for basic_json&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt;:</div>
83 <div class="dyncontent">
84 <div class="center"><img src="classnlohmann_1_1basic__json__coll__graph.png" border="0" usemap="#basic__json_3_01_object_type_00_01_array_type_00_01_string_type_00_01_boolean_type_00_01_number_integer_type_00_01_number_unsigned_type_00_01_number_float_type_00_01_allocator_type_00_01_j_s_o_n_serializer_01_4_coll__map" alt="Collaboration graph"/></div>
85 </div>
86 <table class="memberdecls">
87 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
88 Data Structures</h2></td></tr>
89 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json_1_1iter__impl.html">iter_impl</a></td></tr>
90 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">a template for a random access iterator for the <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> class  <a href="classnlohmann_1_1basic__json_1_1iter__impl.html#details">More...</a><br /></td></tr>
91 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
92 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json_1_1json__pointer.html">json_pointer</a></td></tr>
93 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">JSON Pointer.  <a href="classnlohmann_1_1basic__json_1_1json__pointer.html#details">More...</a><br /></td></tr>
94 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
95 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json_1_1json__reverse__iterator.html">json_reverse_iterator</a></td></tr>
96 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">a template for a reverse iterator class  <a href="classnlohmann_1_1basic__json_1_1json__reverse__iterator.html#details">More...</a><br /></td></tr>
97 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
98 </table><table class="memberdecls">
99 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
100 Public Types</h2></td></tr>
101 <tr class="memitem:a284abb29079a3ece0b67d67da11da441"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a284abb29079a3ece0b67d67da11da441">parse_event_t</a> : uint8_t { <br />
102 &#160;&#160;<a class="el" href="classnlohmann_1_1basic__json.html#a284abb29079a3ece0b67d67da11da441ae73f17027cb0acbb537f29d0a6944b26">object_start</a>, 
103 <a class="el" href="classnlohmann_1_1basic__json.html#a284abb29079a3ece0b67d67da11da441af63e2a2468a37aa4f394fcc3bcb8249c">object_end</a>, 
104 <a class="el" href="classnlohmann_1_1basic__json.html#a284abb29079a3ece0b67d67da11da441aa4388a3d92419edbb1c6efd4d52461f3">array_start</a>, 
105 <a class="el" href="classnlohmann_1_1basic__json.html#a284abb29079a3ece0b67d67da11da441a49642fb732aa2e112188fba1f9d3ef7f">array_end</a>, 
106 <br />
107 &#160;&#160;<a class="el" href="classnlohmann_1_1basic__json.html#a284abb29079a3ece0b67d67da11da441a3c6e0b8a9c15224a8228b9a98ca1531d">key</a>, 
108 <a class="el" href="classnlohmann_1_1basic__json.html#a284abb29079a3ece0b67d67da11da441a2063c1608d6e0baf80249c42e2be5804">value</a>
109 <br />
110  }<tr class="memdesc:a284abb29079a3ece0b67d67da11da441"><td class="mdescLeft">&#160;</td><td class="mdescRight">JSON callback events.  <a href="classnlohmann_1_1basic__json.html#a284abb29079a3ece0b67d67da11da441">More...</a><br /></td></tr>
111 </td></tr>
112 <tr class="separator:a284abb29079a3ece0b67d67da11da441"><td class="memSeparator" colspan="2">&#160;</td></tr>
113 <tr class="memitem:ace569a7a0433ec013c33c927453cb727"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ace569a7a0433ec013c33c927453cb727">value_t</a> = <a class="el" href="namespacenlohmann_1_1detail.html#aedb3045c82a17d48de0f030229adbffe">detail::value_t</a></td></tr>
114 <tr class="separator:ace569a7a0433ec013c33c927453cb727"><td class="memSeparator" colspan="2">&#160;</td></tr>
115 <tr class="memitem:a0529ada731a19a6860d72dd7ca888271"><td class="memTemplParams" colspan="2">template&lt;typename T , typename SFINAE &gt; </td></tr>
116 <tr class="memitem:a0529ada731a19a6860d72dd7ca888271"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a0529ada731a19a6860d72dd7ca888271">json_serializer</a> = JSONSerializer&lt; T, SFINAE &gt;</td></tr>
117 <tr class="separator:a0529ada731a19a6860d72dd7ca888271"><td class="memSeparator" colspan="2">&#160;</td></tr>
118 <tr class="memitem:a8bcd7fb59f7978ccd8942605357fc28a"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a8bcd7fb59f7978ccd8942605357fc28a">parser_callback_t</a> = std::function&lt; bool(int depth, <a class="el" href="classnlohmann_1_1basic__json.html#a284abb29079a3ece0b67d67da11da441">parse_event_t</a> event, <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &amp;parsed)&gt;</td></tr>
119 <tr class="memdesc:a8bcd7fb59f7978ccd8942605357fc28a"><td class="mdescLeft">&#160;</td><td class="mdescRight">per-element parser callback type  <a href="#a8bcd7fb59f7978ccd8942605357fc28a">More...</a><br /></td></tr>
120 <tr class="separator:a8bcd7fb59f7978ccd8942605357fc28a"><td class="memSeparator" colspan="2">&#160;</td></tr>
121 </table><table class="memberdecls">
122 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
123 Public Member Functions</h2></td></tr>
124 <tr class="memitem:a99cfa952f8b8deaae2505c89507ff3cd"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a99cfa952f8b8deaae2505c89507ff3cd">type_name</a> () const</td></tr>
125 <tr class="memdesc:a99cfa952f8b8deaae2505c89507ff3cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the type as string  <a href="#a99cfa952f8b8deaae2505c89507ff3cd">More...</a><br /></td></tr>
126 <tr class="separator:a99cfa952f8b8deaae2505c89507ff3cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
127 </table><table class="memberdecls">
128 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
129 Static Public Member Functions</h2></td></tr>
130 <tr class="memitem:a00ebe95bd430fd8f70297c7d8e6b1393"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classnlohmann_1_1basic__json.html#ac2ba7cdee02c8dca32097093847cef4a">allocator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a00ebe95bd430fd8f70297c7d8e6b1393">get_allocator</a> ()</td></tr>
131 <tr class="memdesc:a00ebe95bd430fd8f70297c7d8e6b1393"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the allocator associated with the container  <a href="#a00ebe95bd430fd8f70297c7d8e6b1393">More...</a><br /></td></tr>
132 <tr class="separator:a00ebe95bd430fd8f70297c7d8e6b1393"><td class="memSeparator" colspan="2">&#160;</td></tr>
133 <tr class="memitem:a7b7fb3fbbbbae070cef34411707c887b"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a7b7fb3fbbbbae070cef34411707c887b">meta</a> ()</td></tr>
134 <tr class="memdesc:a7b7fb3fbbbbae070cef34411707c887b"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns version information on the library  <a href="#a7b7fb3fbbbbae070cef34411707c887b">More...</a><br /></td></tr>
135 <tr class="separator:a7b7fb3fbbbbae070cef34411707c887b"><td class="memSeparator" colspan="2">&#160;</td></tr>
136 </table><table class="memberdecls">
137 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
138 Friends</h2></td></tr>
139 <tr class="memitem:a6275ed57bae6866cdf5db5370a7ad47c"><td class="memTemplParams" colspan="2">template&lt;detail::value_t &gt; </td></tr>
140 <tr class="memitem:a6275ed57bae6866cdf5db5370a7ad47c"><td class="memTemplItemLeft" align="right" valign="top">struct&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a6275ed57bae6866cdf5db5370a7ad47c">detail::external_constructor</a></td></tr>
141 <tr class="separator:a6275ed57bae6866cdf5db5370a7ad47c"><td class="memSeparator" colspan="2">&#160;</td></tr>
142 </table><table class="memberdecls">
143 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
144 container types</h2></td></tr>
145 <tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp6618fa684bc6d5a05e2c88bfff1c0d66"></a>The canonic container types to use <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> like any other STL container. </p>
146 </td></tr>
147 <tr class="memitem:a6266b89788d56d4601b357b9bf3b06d5"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a6266b89788d56d4601b357b9bf3b06d5">value_type</a> = <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a></td></tr>
148 <tr class="memdesc:a6266b89788d56d4601b357b9bf3b06d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">the type of elements in a <a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a> container  <a href="#a6266b89788d56d4601b357b9bf3b06d5">More...</a><br /></td></tr>
149 <tr class="separator:a6266b89788d56d4601b357b9bf3b06d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
150 <tr class="memitem:a74202cdd96628bc49a756e5fc87d22de"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a> = <a class="el" href="classnlohmann_1_1basic__json.html#a6266b89788d56d4601b357b9bf3b06d5">value_type</a> &amp;</td></tr>
151 <tr class="memdesc:a74202cdd96628bc49a756e5fc87d22de"><td class="mdescLeft">&#160;</td><td class="mdescRight">the type of an element reference  <a href="#a74202cdd96628bc49a756e5fc87d22de">More...</a><br /></td></tr>
152 <tr class="separator:a74202cdd96628bc49a756e5fc87d22de"><td class="memSeparator" colspan="2">&#160;</td></tr>
153 <tr class="memitem:ab1137da269e66589b98fce3416d40502"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> = const <a class="el" href="classnlohmann_1_1basic__json.html#a6266b89788d56d4601b357b9bf3b06d5">value_type</a> &amp;</td></tr>
154 <tr class="memdesc:ab1137da269e66589b98fce3416d40502"><td class="mdescLeft">&#160;</td><td class="mdescRight">the type of an element const reference  <a href="#ab1137da269e66589b98fce3416d40502">More...</a><br /></td></tr>
155 <tr class="separator:ab1137da269e66589b98fce3416d40502"><td class="memSeparator" colspan="2">&#160;</td></tr>
156 <tr class="memitem:ace405568d0b2f3fad4990044252c7732"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ace405568d0b2f3fad4990044252c7732">difference_type</a> = std::ptrdiff_t</td></tr>
157 <tr class="memdesc:ace405568d0b2f3fad4990044252c7732"><td class="mdescLeft">&#160;</td><td class="mdescRight">a type to represent differences between iterators  <a href="#ace405568d0b2f3fad4990044252c7732">More...</a><br /></td></tr>
158 <tr class="separator:ace405568d0b2f3fad4990044252c7732"><td class="memSeparator" colspan="2">&#160;</td></tr>
159 <tr class="memitem:af38ce1af42d538f410180c265518d4f0"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#af38ce1af42d538f410180c265518d4f0">size_type</a> = std::size_t</td></tr>
160 <tr class="memdesc:af38ce1af42d538f410180c265518d4f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">a type to represent container sizes  <a href="#af38ce1af42d538f410180c265518d4f0">More...</a><br /></td></tr>
161 <tr class="separator:af38ce1af42d538f410180c265518d4f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
162 <tr class="memitem:ac2ba7cdee02c8dca32097093847cef4a"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ac2ba7cdee02c8dca32097093847cef4a">allocator_type</a> = AllocatorType&lt; <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &gt;</td></tr>
163 <tr class="memdesc:ac2ba7cdee02c8dca32097093847cef4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">the allocator type  <a href="#ac2ba7cdee02c8dca32097093847cef4a">More...</a><br /></td></tr>
164 <tr class="separator:ac2ba7cdee02c8dca32097093847cef4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
165 <tr class="memitem:a1e2c3fce980b34a87b95f41000e849cc"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a1e2c3fce980b34a87b95f41000e849cc">pointer</a> = typename std::allocator_traits&lt; <a class="el" href="classnlohmann_1_1basic__json.html#ac2ba7cdee02c8dca32097093847cef4a">allocator_type</a> &gt;::<a class="el" href="classnlohmann_1_1basic__json.html#a1e2c3fce980b34a87b95f41000e849cc">pointer</a></td></tr>
166 <tr class="memdesc:a1e2c3fce980b34a87b95f41000e849cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">the type of an element pointer  <a href="#a1e2c3fce980b34a87b95f41000e849cc">More...</a><br /></td></tr>
167 <tr class="separator:a1e2c3fce980b34a87b95f41000e849cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
168 <tr class="memitem:a4c63dc62d030308ff89f0327e752c5e2"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a4c63dc62d030308ff89f0327e752c5e2">const_pointer</a> = typename std::allocator_traits&lt; <a class="el" href="classnlohmann_1_1basic__json.html#ac2ba7cdee02c8dca32097093847cef4a">allocator_type</a> &gt;::<a class="el" href="classnlohmann_1_1basic__json.html#a4c63dc62d030308ff89f0327e752c5e2">const_pointer</a></td></tr>
169 <tr class="memdesc:a4c63dc62d030308ff89f0327e752c5e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">the type of an element const pointer  <a href="#a4c63dc62d030308ff89f0327e752c5e2">More...</a><br /></td></tr>
170 <tr class="separator:a4c63dc62d030308ff89f0327e752c5e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
171 <tr class="memitem:a241034c44708fd20925e6ae18efcfb56"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">iterator</a> = <a class="el" href="classnlohmann_1_1basic__json_1_1iter__impl.html">iter_impl</a>&lt; <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &gt;</td></tr>
172 <tr class="memdesc:a241034c44708fd20925e6ae18efcfb56"><td class="mdescLeft">&#160;</td><td class="mdescRight">an iterator for a <a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a> container  <a href="#a241034c44708fd20925e6ae18efcfb56">More...</a><br /></td></tr>
173 <tr class="separator:a241034c44708fd20925e6ae18efcfb56"><td class="memSeparator" colspan="2">&#160;</td></tr>
174 <tr class="memitem:aad59084c30e18d9f72bbeaea04b69c08"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a> = <a class="el" href="classnlohmann_1_1basic__json_1_1iter__impl.html">iter_impl</a>&lt; const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &gt;</td></tr>
175 <tr class="memdesc:aad59084c30e18d9f72bbeaea04b69c08"><td class="mdescLeft">&#160;</td><td class="mdescRight">a const iterator for a <a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a> container  <a href="#aad59084c30e18d9f72bbeaea04b69c08">More...</a><br /></td></tr>
176 <tr class="separator:aad59084c30e18d9f72bbeaea04b69c08"><td class="memSeparator" colspan="2">&#160;</td></tr>
177 <tr class="memitem:a44b6b974744b30149559c9dce91b92ec"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a44b6b974744b30149559c9dce91b92ec">reverse_iterator</a> = <a class="el" href="classnlohmann_1_1basic__json_1_1json__reverse__iterator.html">json_reverse_iterator</a>&lt; typename <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">basic_json::iterator</a> &gt;</td></tr>
178 <tr class="memdesc:a44b6b974744b30149559c9dce91b92ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">a reverse iterator for a <a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a> container  <a href="#a44b6b974744b30149559c9dce91b92ec">More...</a><br /></td></tr>
179 <tr class="separator:a44b6b974744b30149559c9dce91b92ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
180 <tr class="memitem:a80e93f4899e95d7ba9f80df4c423b9d5"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a80e93f4899e95d7ba9f80df4c423b9d5">const_reverse_iterator</a> = <a class="el" href="classnlohmann_1_1basic__json_1_1json__reverse__iterator.html">json_reverse_iterator</a>&lt; typename <a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">basic_json::const_iterator</a> &gt;</td></tr>
181 <tr class="memdesc:a80e93f4899e95d7ba9f80df4c423b9d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">a const reverse iterator for a <a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a> container  <a href="#a80e93f4899e95d7ba9f80df4c423b9d5">More...</a><br /></td></tr>
182 <tr class="separator:a80e93f4899e95d7ba9f80df4c423b9d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
183 </table><table class="memberdecls">
184 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
185 JSON value data types</h2></td></tr>
186 <tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrpbddfba6d49869d59bfd397e65b8cba87"></a>The data types to store a JSON value. These types are derived from the template arguments passed to class <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>. </p>
187 </td></tr>
188 <tr class="memitem:a143db8a40359a56372e21a8feea66454"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a143db8a40359a56372e21a8feea66454">object_t</a> = ObjectType&lt; StringType, <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>, std::less&lt; StringType &gt;, AllocatorType&lt; std::pair&lt; const StringType, <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &gt; &gt;&gt;</td></tr>
189 <tr class="memdesc:a143db8a40359a56372e21a8feea66454"><td class="mdescLeft">&#160;</td><td class="mdescRight">a type for an object  <a href="#a143db8a40359a56372e21a8feea66454">More...</a><br /></td></tr>
190 <tr class="separator:a143db8a40359a56372e21a8feea66454"><td class="memSeparator" colspan="2">&#160;</td></tr>
191 <tr class="memitem:a289ffe7b795d293d233d03cfc60bcd15"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a289ffe7b795d293d233d03cfc60bcd15">array_t</a> = ArrayType&lt; <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>, AllocatorType&lt; <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &gt; &gt;</td></tr>
192 <tr class="memdesc:a289ffe7b795d293d233d03cfc60bcd15"><td class="mdescLeft">&#160;</td><td class="mdescRight">a type for an array  <a href="#a289ffe7b795d293d233d03cfc60bcd15">More...</a><br /></td></tr>
193 <tr class="separator:a289ffe7b795d293d233d03cfc60bcd15"><td class="memSeparator" colspan="2">&#160;</td></tr>
194 <tr class="memitem:aeacc0aa4079b56866238b8845928c2b7"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#aeacc0aa4079b56866238b8845928c2b7">string_t</a> = StringType</td></tr>
195 <tr class="memdesc:aeacc0aa4079b56866238b8845928c2b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">a type for a string  <a href="#aeacc0aa4079b56866238b8845928c2b7">More...</a><br /></td></tr>
196 <tr class="separator:aeacc0aa4079b56866238b8845928c2b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
197 <tr class="memitem:a8fc151a08d12d6ca47c54458703e573f"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a8fc151a08d12d6ca47c54458703e573f">boolean_t</a> = BooleanType</td></tr>
198 <tr class="memdesc:a8fc151a08d12d6ca47c54458703e573f"><td class="mdescLeft">&#160;</td><td class="mdescRight">a type for a boolean  <a href="#a8fc151a08d12d6ca47c54458703e573f">More...</a><br /></td></tr>
199 <tr class="separator:a8fc151a08d12d6ca47c54458703e573f"><td class="memSeparator" colspan="2">&#160;</td></tr>
200 <tr class="memitem:a4bd9b6d54deaadefc43b5c536062b792"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a4bd9b6d54deaadefc43b5c536062b792">number_integer_t</a> = NumberIntegerType</td></tr>
201 <tr class="memdesc:a4bd9b6d54deaadefc43b5c536062b792"><td class="mdescLeft">&#160;</td><td class="mdescRight">a type for a number (integer)  <a href="#a4bd9b6d54deaadefc43b5c536062b792">More...</a><br /></td></tr>
202 <tr class="separator:a4bd9b6d54deaadefc43b5c536062b792"><td class="memSeparator" colspan="2">&#160;</td></tr>
203 <tr class="memitem:a915185d4413599516b85993e6baaca73"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a915185d4413599516b85993e6baaca73">number_unsigned_t</a> = NumberUnsignedType</td></tr>
204 <tr class="memdesc:a915185d4413599516b85993e6baaca73"><td class="mdescLeft">&#160;</td><td class="mdescRight">a type for a number (unsigned)  <a href="#a915185d4413599516b85993e6baaca73">More...</a><br /></td></tr>
205 <tr class="separator:a915185d4413599516b85993e6baaca73"><td class="memSeparator" colspan="2">&#160;</td></tr>
206 <tr class="memitem:aa43a00a590f6ce46ee8ced69513ee4ef"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#aa43a00a590f6ce46ee8ced69513ee4ef">number_float_t</a> = NumberFloatType</td></tr>
207 <tr class="memdesc:aa43a00a590f6ce46ee8ced69513ee4ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">a type for a number (floating-point)  <a href="#aa43a00a590f6ce46ee8ced69513ee4ef">More...</a><br /></td></tr>
208 <tr class="separator:aa43a00a590f6ce46ee8ced69513ee4ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
209 </table><table class="memberdecls">
210 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
211 constructors and destructors</h2></td></tr>
212 <tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrpd94b4d3d0135946bb7bdf25e48755337"></a>Constructors of class <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>, copy/move constructor, copy assignment, static functions creating objects, and the destructor. </p>
213 </td></tr>
214 <tr class="memitem:a16bfbc9e705582cdf7e88affced6ca51"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a16bfbc9e705582cdf7e88affced6ca51">array</a> (std::initializer_list&lt; <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &gt; init=std::initializer_list&lt; <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &gt;())</td></tr>
215 <tr class="memdesc:a16bfbc9e705582cdf7e88affced6ca51"><td class="mdescLeft">&#160;</td><td class="mdescRight">explicitly create an array from an initializer list  <a href="#a16bfbc9e705582cdf7e88affced6ca51">More...</a><br /></td></tr>
216 <tr class="separator:a16bfbc9e705582cdf7e88affced6ca51"><td class="memSeparator" colspan="2">&#160;</td></tr>
217 <tr class="memitem:a6955fcba671f39d7d04164ef034aada8"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a6955fcba671f39d7d04164ef034aada8">object</a> (std::initializer_list&lt; <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &gt; init=std::initializer_list&lt; <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &gt;())</td></tr>
218 <tr class="memdesc:a6955fcba671f39d7d04164ef034aada8"><td class="mdescLeft">&#160;</td><td class="mdescRight">explicitly create an object from an initializer list  <a href="#a6955fcba671f39d7d04164ef034aada8">More...</a><br /></td></tr>
219 <tr class="separator:a6955fcba671f39d7d04164ef034aada8"><td class="memSeparator" colspan="2">&#160;</td></tr>
220 <tr class="memitem:af2ec44358263a76e8289454bd0514f69"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#af2ec44358263a76e8289454bd0514f69">basic_json</a> (const <a class="el" href="namespacenlohmann_1_1detail.html#aedb3045c82a17d48de0f030229adbffe">value_t</a> <a class="el" href="classnlohmann_1_1basic__json.html#a6266b89788d56d4601b357b9bf3b06d5">value_type</a>)</td></tr>
221 <tr class="memdesc:af2ec44358263a76e8289454bd0514f69"><td class="mdescLeft">&#160;</td><td class="mdescRight">create an empty value with a given type  <a href="#af2ec44358263a76e8289454bd0514f69">More...</a><br /></td></tr>
222 <tr class="separator:af2ec44358263a76e8289454bd0514f69"><td class="memSeparator" colspan="2">&#160;</td></tr>
223 <tr class="memitem:a87c8001776394acd236550ac497556b3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a87c8001776394acd236550ac497556b3">basic_json</a> (std::nullptr_t=nullptr) noexcept</td></tr>
224 <tr class="memdesc:a87c8001776394acd236550ac497556b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">create a null object  <a href="#a87c8001776394acd236550ac497556b3">More...</a><br /></td></tr>
225 <tr class="separator:a87c8001776394acd236550ac497556b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
226 <tr class="memitem:a12cfdf59e8552b8604c71585e6dd32bc"><td class="memTemplParams" colspan="2">template&lt;typename CompatibleType , typename U  = detail::uncvref_t&lt;CompatibleType&gt;, detail::enable_if_t&lt; not std::is_base_of&lt; std::istream, U &gt;::value and not std::is_same&lt; U, basic_json_t &gt;::value and not detail::is_basic_json_nested_type&lt; basic_json_t, U &gt;::value and detail::has_to_json&lt; basic_json, U &gt;::value, int &gt;  = 0&gt; </td></tr>
227 <tr class="memitem:a12cfdf59e8552b8604c71585e6dd32bc"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a12cfdf59e8552b8604c71585e6dd32bc">basic_json</a> (CompatibleType &amp;&amp;val) noexcept(noexcept(JSONSerializer&lt; U &gt;::to_json(std::declval&lt; <a class="el" href="classnlohmann_1_1basic__json.html">basic_json_t</a> &amp;&gt;(), std::forward&lt; CompatibleType &gt;(val))))</td></tr>
228 <tr class="memdesc:a12cfdf59e8552b8604c71585e6dd32bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">create a JSON value  <a href="#a12cfdf59e8552b8604c71585e6dd32bc">More...</a><br /></td></tr>
229 <tr class="separator:a12cfdf59e8552b8604c71585e6dd32bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
230 <tr class="memitem:a0ed1b6bedb9c7915b6e4bdca58d9921d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a0ed1b6bedb9c7915b6e4bdca58d9921d">basic_json</a> (std::initializer_list&lt; <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &gt; init, bool type_deduction=true, <a class="el" href="namespacenlohmann_1_1detail.html#aedb3045c82a17d48de0f030229adbffe">value_t</a> manual_type=<a class="el" href="namespacenlohmann_1_1detail.html#aedb3045c82a17d48de0f030229adbffeaf1f713c9e000f5d3f280adbd124df4f5">value_t::array</a>)</td></tr>
231 <tr class="memdesc:a0ed1b6bedb9c7915b6e4bdca58d9921d"><td class="mdescLeft">&#160;</td><td class="mdescRight">create a container (array or object) from an initializer list  <a href="#a0ed1b6bedb9c7915b6e4bdca58d9921d">More...</a><br /></td></tr>
232 <tr class="separator:a0ed1b6bedb9c7915b6e4bdca58d9921d"><td class="memSeparator" colspan="2">&#160;</td></tr>
233 <tr class="memitem:a87b55a17c55bfd7d77f7e8ee05a13211"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a87b55a17c55bfd7d77f7e8ee05a13211">basic_json</a> (<a class="el" href="classnlohmann_1_1basic__json.html#af38ce1af42d538f410180c265518d4f0">size_type</a> cnt, const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &amp;val)</td></tr>
234 <tr class="memdesc:a87b55a17c55bfd7d77f7e8ee05a13211"><td class="mdescLeft">&#160;</td><td class="mdescRight">construct an array with count copies of given value  <a href="#a87b55a17c55bfd7d77f7e8ee05a13211">More...</a><br /></td></tr>
235 <tr class="separator:a87b55a17c55bfd7d77f7e8ee05a13211"><td class="memSeparator" colspan="2">&#160;</td></tr>
236 <tr class="memitem:a0d91af4d13eb01626697367f92991b19"><td class="memTemplParams" colspan="2">template&lt;class InputIT , typename std::enable_if&lt; std::is_same&lt; InputIT, typename basic_json_t::iterator &gt;::value or std::is_same&lt; InputIT, typename basic_json_t::const_iterator &gt;::value, int &gt;::type  = 0&gt; </td></tr>
237 <tr class="memitem:a0d91af4d13eb01626697367f92991b19"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a0d91af4d13eb01626697367f92991b19">basic_json</a> (InputIT first, InputIT last)</td></tr>
238 <tr class="memdesc:a0d91af4d13eb01626697367f92991b19"><td class="mdescLeft">&#160;</td><td class="mdescRight">construct a JSON container given an iterator range  <a href="#a0d91af4d13eb01626697367f92991b19">More...</a><br /></td></tr>
239 <tr class="separator:a0d91af4d13eb01626697367f92991b19"><td class="memSeparator" colspan="2">&#160;</td></tr>
240 <tr class="memitem:a8ba521ef10c3a04a086c19526c3cdc64"><td class="memItemLeft" align="right" valign="top"><a class="el" href="json_8hpp.html#a584fd8f49cd7f4ecf5baba15b5b53cdd">JSON_DEPRECATED</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a8ba521ef10c3a04a086c19526c3cdc64">basic_json</a> (std::istream &amp;i, const <a class="el" href="classnlohmann_1_1basic__json.html#a8bcd7fb59f7978ccd8942605357fc28a">parser_callback_t</a> cb=nullptr)</td></tr>
241 <tr class="memdesc:a8ba521ef10c3a04a086c19526c3cdc64"><td class="mdescLeft">&#160;</td><td class="mdescRight">construct a JSON value given an input stream  <a href="#a8ba521ef10c3a04a086c19526c3cdc64">More...</a><br /></td></tr>
242 <tr class="separator:a8ba521ef10c3a04a086c19526c3cdc64"><td class="memSeparator" colspan="2">&#160;</td></tr>
243 <tr class="memitem:a9a119fd02c79c9acab75c1cc6a8e9dea"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a9a119fd02c79c9acab75c1cc6a8e9dea">basic_json</a> (const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &amp;other)</td></tr>
244 <tr class="memdesc:a9a119fd02c79c9acab75c1cc6a8e9dea"><td class="mdescLeft">&#160;</td><td class="mdescRight">copy constructor  <a href="#a9a119fd02c79c9acab75c1cc6a8e9dea">More...</a><br /></td></tr>
245 <tr class="separator:a9a119fd02c79c9acab75c1cc6a8e9dea"><td class="memSeparator" colspan="2">&#160;</td></tr>
246 <tr class="memitem:a9288df424f61d19905ae6f3d8152225a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a9288df424f61d19905ae6f3d8152225a">basic_json</a> (<a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &amp;&amp;other) noexcept</td></tr>
247 <tr class="memdesc:a9288df424f61d19905ae6f3d8152225a"><td class="mdescLeft">&#160;</td><td class="mdescRight">move constructor  <a href="#a9288df424f61d19905ae6f3d8152225a">More...</a><br /></td></tr>
248 <tr class="separator:a9288df424f61d19905ae6f3d8152225a"><td class="memSeparator" colspan="2">&#160;</td></tr>
249 <tr class="memitem:aee22c00d2bff99e59c1a2abe76bb74d8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#aee22c00d2bff99e59c1a2abe76bb74d8">operator=</a> (<a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> other) noexcept(std::is_nothrow_move_constructible&lt; <a class="el" href="namespacenlohmann_1_1detail.html#aedb3045c82a17d48de0f030229adbffe">value_t</a> &gt;::<a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f">value</a> and std::is_nothrow_move_assignable&lt; <a class="el" href="namespacenlohmann_1_1detail.html#aedb3045c82a17d48de0f030229adbffe">value_t</a> &gt;::<a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f">value</a> and std::is_nothrow_move_constructible&lt; json_value &gt;::<a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f">value</a> and std::is_nothrow_move_assignable&lt; json_value &gt;::<a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f">value</a>)</td></tr>
250 <tr class="memdesc:aee22c00d2bff99e59c1a2abe76bb74d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">copy assignment  <a href="#aee22c00d2bff99e59c1a2abe76bb74d8">More...</a><br /></td></tr>
251 <tr class="separator:aee22c00d2bff99e59c1a2abe76bb74d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
252 <tr class="memitem:a5d09c330bdb8627ef5ed12a5ff38b542"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a5d09c330bdb8627ef5ed12a5ff38b542">~basic_json</a> ()</td></tr>
253 <tr class="memdesc:a5d09c330bdb8627ef5ed12a5ff38b542"><td class="mdescLeft">&#160;</td><td class="mdescRight">destructor  <a href="#a5d09c330bdb8627ef5ed12a5ff38b542">More...</a><br /></td></tr>
254 <tr class="separator:a5d09c330bdb8627ef5ed12a5ff38b542"><td class="memSeparator" colspan="2">&#160;</td></tr>
255 </table><table class="memberdecls">
256 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
257 object inspection</h2></td></tr>
258 <tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrpbbb01a37b8f261ae5b5799058dcac1a0"></a>Functions to inspect the type of a JSON value. </p>
259 </td></tr>
260 <tr class="memitem:a42de62d3e7b710d0279ac373a22c63eb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#aeacc0aa4079b56866238b8845928c2b7">string_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a42de62d3e7b710d0279ac373a22c63eb">dump</a> (const int indent=-1) const</td></tr>
261 <tr class="memdesc:a42de62d3e7b710d0279ac373a22c63eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">serialization  <a href="#a42de62d3e7b710d0279ac373a22c63eb">More...</a><br /></td></tr>
262 <tr class="separator:a42de62d3e7b710d0279ac373a22c63eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
263 <tr class="memitem:adb8999aa40f92f1a176d8b43dc0ab25b"><td class="memItemLeft" align="right" valign="top">constexpr <a class="el" href="namespacenlohmann_1_1detail.html#aedb3045c82a17d48de0f030229adbffe">value_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#adb8999aa40f92f1a176d8b43dc0ab25b">type</a> () const noexcept</td></tr>
264 <tr class="memdesc:adb8999aa40f92f1a176d8b43dc0ab25b"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the type of the JSON value (explicit)  <a href="#adb8999aa40f92f1a176d8b43dc0ab25b">More...</a><br /></td></tr>
265 <tr class="separator:adb8999aa40f92f1a176d8b43dc0ab25b"><td class="memSeparator" colspan="2">&#160;</td></tr>
266 <tr class="memitem:ae5e7e83e05bf011781326a00fdf7a733"><td class="memItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ae5e7e83e05bf011781326a00fdf7a733">is_primitive</a> () const noexcept</td></tr>
267 <tr class="memdesc:ae5e7e83e05bf011781326a00fdf7a733"><td class="mdescLeft">&#160;</td><td class="mdescRight">return whether type is primitive  <a href="#ae5e7e83e05bf011781326a00fdf7a733">More...</a><br /></td></tr>
268 <tr class="separator:ae5e7e83e05bf011781326a00fdf7a733"><td class="memSeparator" colspan="2">&#160;</td></tr>
269 <tr class="memitem:abc946f8df0445e62162a6633a444ae79"><td class="memItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#abc946f8df0445e62162a6633a444ae79">is_structured</a> () const noexcept</td></tr>
270 <tr class="memdesc:abc946f8df0445e62162a6633a444ae79"><td class="mdescLeft">&#160;</td><td class="mdescRight">return whether type is structured  <a href="#abc946f8df0445e62162a6633a444ae79">More...</a><br /></td></tr>
271 <tr class="separator:abc946f8df0445e62162a6633a444ae79"><td class="memSeparator" colspan="2">&#160;</td></tr>
272 <tr class="memitem:a5343c52ade262b120e6cdafb516f1f65"><td class="memItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a5343c52ade262b120e6cdafb516f1f65">is_null</a> () const noexcept</td></tr>
273 <tr class="memdesc:a5343c52ade262b120e6cdafb516f1f65"><td class="mdescLeft">&#160;</td><td class="mdescRight">return whether value is null  <a href="#a5343c52ade262b120e6cdafb516f1f65">More...</a><br /></td></tr>
274 <tr class="separator:a5343c52ade262b120e6cdafb516f1f65"><td class="memSeparator" colspan="2">&#160;</td></tr>
275 <tr class="memitem:a3f27b4908e7f73e1028bf681f0e25258"><td class="memItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a3f27b4908e7f73e1028bf681f0e25258">is_boolean</a> () const noexcept</td></tr>
276 <tr class="memdesc:a3f27b4908e7f73e1028bf681f0e25258"><td class="mdescLeft">&#160;</td><td class="mdescRight">return whether value is a boolean  <a href="#a3f27b4908e7f73e1028bf681f0e25258">More...</a><br /></td></tr>
277 <tr class="separator:a3f27b4908e7f73e1028bf681f0e25258"><td class="memSeparator" colspan="2">&#160;</td></tr>
278 <tr class="memitem:ac752edf4fd63784b587cd7116a407392"><td class="memItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ac752edf4fd63784b587cd7116a407392">is_number</a> () const noexcept</td></tr>
279 <tr class="memdesc:ac752edf4fd63784b587cd7116a407392"><td class="mdescLeft">&#160;</td><td class="mdescRight">return whether value is a number  <a href="#ac752edf4fd63784b587cd7116a407392">More...</a><br /></td></tr>
280 <tr class="separator:ac752edf4fd63784b587cd7116a407392"><td class="memSeparator" colspan="2">&#160;</td></tr>
281 <tr class="memitem:a8719f77e4b63e026597607704740f89a"><td class="memItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a8719f77e4b63e026597607704740f89a">is_number_integer</a> () const noexcept</td></tr>
282 <tr class="memdesc:a8719f77e4b63e026597607704740f89a"><td class="mdescLeft">&#160;</td><td class="mdescRight">return whether value is an integer number  <a href="#a8719f77e4b63e026597607704740f89a">More...</a><br /></td></tr>
283 <tr class="separator:a8719f77e4b63e026597607704740f89a"><td class="memSeparator" colspan="2">&#160;</td></tr>
284 <tr class="memitem:a1899915ea90604c5bf3204c2a270d44e"><td class="memItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a1899915ea90604c5bf3204c2a270d44e">is_number_unsigned</a> () const noexcept</td></tr>
285 <tr class="memdesc:a1899915ea90604c5bf3204c2a270d44e"><td class="mdescLeft">&#160;</td><td class="mdescRight">return whether value is an unsigned integer number  <a href="#a1899915ea90604c5bf3204c2a270d44e">More...</a><br /></td></tr>
286 <tr class="separator:a1899915ea90604c5bf3204c2a270d44e"><td class="memSeparator" colspan="2">&#160;</td></tr>
287 <tr class="memitem:a8bcacf4b2549df21e7e3d6d5882bc26f"><td class="memItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a8bcacf4b2549df21e7e3d6d5882bc26f">is_number_float</a> () const noexcept</td></tr>
288 <tr class="memdesc:a8bcacf4b2549df21e7e3d6d5882bc26f"><td class="mdescLeft">&#160;</td><td class="mdescRight">return whether value is a floating-point number  <a href="#a8bcacf4b2549df21e7e3d6d5882bc26f">More...</a><br /></td></tr>
289 <tr class="separator:a8bcacf4b2549df21e7e3d6d5882bc26f"><td class="memSeparator" colspan="2">&#160;</td></tr>
290 <tr class="memitem:ad6a2a9425ea3806424417c2e7dcdbc01"><td class="memItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ad6a2a9425ea3806424417c2e7dcdbc01">is_object</a> () const noexcept</td></tr>
291 <tr class="memdesc:ad6a2a9425ea3806424417c2e7dcdbc01"><td class="mdescLeft">&#160;</td><td class="mdescRight">return whether value is an object  <a href="#ad6a2a9425ea3806424417c2e7dcdbc01">More...</a><br /></td></tr>
292 <tr class="separator:ad6a2a9425ea3806424417c2e7dcdbc01"><td class="memSeparator" colspan="2">&#160;</td></tr>
293 <tr class="memitem:a286a1af9e72e4e41a359b6d01a7b9be9"><td class="memItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a286a1af9e72e4e41a359b6d01a7b9be9">is_array</a> () const noexcept</td></tr>
294 <tr class="memdesc:a286a1af9e72e4e41a359b6d01a7b9be9"><td class="mdescLeft">&#160;</td><td class="mdescRight">return whether value is an array  <a href="#a286a1af9e72e4e41a359b6d01a7b9be9">More...</a><br /></td></tr>
295 <tr class="separator:a286a1af9e72e4e41a359b6d01a7b9be9"><td class="memSeparator" colspan="2">&#160;</td></tr>
296 <tr class="memitem:adef80b7704d7b8d8ed6bcf3c69fe9568"><td class="memItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#adef80b7704d7b8d8ed6bcf3c69fe9568">is_string</a> () const noexcept</td></tr>
297 <tr class="memdesc:adef80b7704d7b8d8ed6bcf3c69fe9568"><td class="mdescLeft">&#160;</td><td class="mdescRight">return whether value is a string  <a href="#adef80b7704d7b8d8ed6bcf3c69fe9568">More...</a><br /></td></tr>
298 <tr class="separator:adef80b7704d7b8d8ed6bcf3c69fe9568"><td class="memSeparator" colspan="2">&#160;</td></tr>
299 <tr class="memitem:aa3755192d05bc50d680919b259b69305"><td class="memItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#aa3755192d05bc50d680919b259b69305">is_discarded</a> () const noexcept</td></tr>
300 <tr class="memdesc:aa3755192d05bc50d680919b259b69305"><td class="mdescLeft">&#160;</td><td class="mdescRight">return whether value is discarded  <a href="#aa3755192d05bc50d680919b259b69305">More...</a><br /></td></tr>
301 <tr class="separator:aa3755192d05bc50d680919b259b69305"><td class="memSeparator" colspan="2">&#160;</td></tr>
302 <tr class="memitem:a88617128d78ac71c7f1025c3de7a2859"><td class="memItemLeft" align="right" valign="top">constexpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a88617128d78ac71c7f1025c3de7a2859">operator value_t</a> () const noexcept</td></tr>
303 <tr class="memdesc:a88617128d78ac71c7f1025c3de7a2859"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the type of the JSON value (implicit)  <a href="#a88617128d78ac71c7f1025c3de7a2859">More...</a><br /></td></tr>
304 <tr class="separator:a88617128d78ac71c7f1025c3de7a2859"><td class="memSeparator" colspan="2">&#160;</td></tr>
305 </table><table class="memberdecls">
306 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
307 value access</h2></td></tr>
308 <tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrpd8f53c9caf18314e5b3f758245606995"></a>Direct access to the stored value of a JSON value. </p>
309 </td></tr>
310 <tr class="memitem:ac0019ee44c3e6a11491b841b589391ad"><td class="memTemplParams" colspan="2">template&lt;typename BasicJsonType , detail::enable_if_t&lt; std::is_same&lt; typename std::remove_const&lt; BasicJsonType &gt;::type, basic_json_t &gt;::value, int &gt;  = 0&gt; </td></tr>
311 <tr class="memitem:ac0019ee44c3e6a11491b841b589391ad"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ac0019ee44c3e6a11491b841b589391ad">get</a> () const</td></tr>
312 <tr class="memdesc:ac0019ee44c3e6a11491b841b589391ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">get special-case overload  <a href="#ac0019ee44c3e6a11491b841b589391ad">More...</a><br /></td></tr>
313 <tr class="separator:ac0019ee44c3e6a11491b841b589391ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
314 <tr class="memitem:a49c729573c3c831d7138c976755d10fd"><td class="memTemplParams" colspan="2">template&lt;typename ValueTypeCV , typename ValueType  = detail::uncvref_t&lt;ValueTypeCV&gt;, detail::enable_if_t&lt; not std::is_same&lt; basic_json_t, ValueType &gt;::value and detail::has_from_json&lt; basic_json_t, ValueType &gt;::value and not detail::has_non_default_from_json&lt; basic_json_t, ValueType &gt;::value, int &gt;  = 0&gt; </td></tr>
315 <tr class="memitem:a49c729573c3c831d7138c976755d10fd"><td class="memTemplItemLeft" align="right" valign="top">ValueType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a49c729573c3c831d7138c976755d10fd">get</a> () const noexcept(noexcept(JSONSerializer&lt; ValueType &gt;::from_json(std::declval&lt; const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json_t</a> &amp;&gt;(), std::declval&lt; ValueType &amp;&gt;())))</td></tr>
316 <tr class="memdesc:a49c729573c3c831d7138c976755d10fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">get a value (explicit)  <a href="#a49c729573c3c831d7138c976755d10fd">More...</a><br /></td></tr>
317 <tr class="separator:a49c729573c3c831d7138c976755d10fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
318 <tr class="memitem:a9cad661513975b42da8bc1d805fd0848"><td class="memTemplParams" colspan="2">template&lt;typename ValueTypeCV , typename ValueType  = detail::uncvref_t&lt;ValueTypeCV&gt;, detail::enable_if_t&lt; not std::is_same&lt; basic_json_t, ValueType &gt;::value and detail::has_non_default_from_json&lt; basic_json_t, ValueType &gt;::value, int &gt;  = 0&gt; </td></tr>
319 <tr class="memitem:a9cad661513975b42da8bc1d805fd0848"><td class="memTemplItemLeft" align="right" valign="top">ValueType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a9cad661513975b42da8bc1d805fd0848">get</a> () const noexcept(noexcept(JSONSerializer&lt; ValueTypeCV &gt;::from_json(std::declval&lt; const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json_t</a> &amp;&gt;())))</td></tr>
320 <tr class="memdesc:a9cad661513975b42da8bc1d805fd0848"><td class="mdescLeft">&#160;</td><td class="mdescRight">get a value (explicit); special case  <a href="#a9cad661513975b42da8bc1d805fd0848">More...</a><br /></td></tr>
321 <tr class="separator:a9cad661513975b42da8bc1d805fd0848"><td class="memSeparator" colspan="2">&#160;</td></tr>
322 <tr class="memitem:a621804845aa82d44271fa934fca54dde"><td class="memTemplParams" colspan="2">template&lt;typename PointerType , typename std::enable_if&lt; std::is_pointer&lt; PointerType &gt;::value, int &gt;::type  = 0&gt; </td></tr>
323 <tr class="memitem:a621804845aa82d44271fa934fca54dde"><td class="memTemplItemLeft" align="right" valign="top">PointerType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a621804845aa82d44271fa934fca54dde">get</a> () noexcept</td></tr>
324 <tr class="memdesc:a621804845aa82d44271fa934fca54dde"><td class="mdescLeft">&#160;</td><td class="mdescRight">get a pointer value (explicit)  <a href="#a621804845aa82d44271fa934fca54dde">More...</a><br /></td></tr>
325 <tr class="separator:a621804845aa82d44271fa934fca54dde"><td class="memSeparator" colspan="2">&#160;</td></tr>
326 <tr class="memitem:aa322e329129e2cc7629145724279c614"><td class="memTemplParams" colspan="2">template&lt;typename PointerType , typename std::enable_if&lt; std::is_pointer&lt; PointerType &gt;::value, int &gt;::type  = 0&gt; </td></tr>
327 <tr class="memitem:aa322e329129e2cc7629145724279c614"><td class="memTemplItemLeft" align="right" valign="top">constexpr const PointerType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#aa322e329129e2cc7629145724279c614">get</a> () const noexcept</td></tr>
328 <tr class="memdesc:aa322e329129e2cc7629145724279c614"><td class="mdescLeft">&#160;</td><td class="mdescRight">get a pointer value (explicit)  <a href="#aa322e329129e2cc7629145724279c614">More...</a><br /></td></tr>
329 <tr class="separator:aa322e329129e2cc7629145724279c614"><td class="memSeparator" colspan="2">&#160;</td></tr>
330 <tr class="memitem:ac27278f706614ec358de7eea17be96ee"><td class="memTemplParams" colspan="2">template&lt;typename PointerType , typename std::enable_if&lt; std::is_pointer&lt; PointerType &gt;::value, int &gt;::type  = 0&gt; </td></tr>
331 <tr class="memitem:ac27278f706614ec358de7eea17be96ee"><td class="memTemplItemLeft" align="right" valign="top">PointerType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ac27278f706614ec358de7eea17be96ee">get_ptr</a> () noexcept</td></tr>
332 <tr class="memdesc:ac27278f706614ec358de7eea17be96ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">get a pointer value (implicit)  <a href="#ac27278f706614ec358de7eea17be96ee">More...</a><br /></td></tr>
333 <tr class="separator:ac27278f706614ec358de7eea17be96ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
334 <tr class="memitem:abdc4eee48904c134bc94bd5c7a32b97a"><td class="memTemplParams" colspan="2">template&lt;typename PointerType , typename std::enable_if&lt; std::is_pointer&lt; PointerType &gt;::value and std::is_const&lt; typename std::remove_pointer&lt; PointerType &gt;::type &gt;::value, int &gt;::type  = 0&gt; </td></tr>
335 <tr class="memitem:abdc4eee48904c134bc94bd5c7a32b97a"><td class="memTemplItemLeft" align="right" valign="top">constexpr const PointerType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#abdc4eee48904c134bc94bd5c7a32b97a">get_ptr</a> () const noexcept</td></tr>
336 <tr class="memdesc:abdc4eee48904c134bc94bd5c7a32b97a"><td class="mdescLeft">&#160;</td><td class="mdescRight">get a pointer value (implicit)  <a href="#abdc4eee48904c134bc94bd5c7a32b97a">More...</a><br /></td></tr>
337 <tr class="separator:abdc4eee48904c134bc94bd5c7a32b97a"><td class="memSeparator" colspan="2">&#160;</td></tr>
338 <tr class="memitem:ad466825405fe763b16ce1a000b3d9b6c"><td class="memTemplParams" colspan="2">template&lt;typename ReferenceType , typename std::enable_if&lt; std::is_reference&lt; ReferenceType &gt;::value, int &gt;::type  = 0&gt; </td></tr>
339 <tr class="memitem:ad466825405fe763b16ce1a000b3d9b6c"><td class="memTemplItemLeft" align="right" valign="top">ReferenceType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ad466825405fe763b16ce1a000b3d9b6c">get_ref</a> ()</td></tr>
340 <tr class="memdesc:ad466825405fe763b16ce1a000b3d9b6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">get a reference value (implicit)  <a href="#ad466825405fe763b16ce1a000b3d9b6c">More...</a><br /></td></tr>
341 <tr class="separator:ad466825405fe763b16ce1a000b3d9b6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
342 <tr class="memitem:ab4df689f8cd3fe0e11f25c319b0da394"><td class="memTemplParams" colspan="2">template&lt;typename ReferenceType , typename std::enable_if&lt; std::is_reference&lt; ReferenceType &gt;::value and std::is_const&lt; typename std::remove_reference&lt; ReferenceType &gt;::type &gt;::value, int &gt;::type  = 0&gt; </td></tr>
343 <tr class="memitem:ab4df689f8cd3fe0e11f25c319b0da394"><td class="memTemplItemLeft" align="right" valign="top">ReferenceType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ab4df689f8cd3fe0e11f25c319b0da394">get_ref</a> () const</td></tr>
344 <tr class="memdesc:ab4df689f8cd3fe0e11f25c319b0da394"><td class="mdescLeft">&#160;</td><td class="mdescRight">get a reference value (implicit)  <a href="#ab4df689f8cd3fe0e11f25c319b0da394">More...</a><br /></td></tr>
345 <tr class="separator:ab4df689f8cd3fe0e11f25c319b0da394"><td class="memSeparator" colspan="2">&#160;</td></tr>
346 <tr class="memitem:ad473c5817538254b1cc601abcd371157"><td class="memTemplParams" colspan="2">template&lt;typename ValueType , typename std::enable_if&lt; not std::is_pointer&lt; ValueType &gt;::value and not std::is_same&lt; ValueType, typename string_t::value_type &gt;::value and not std::is_same&lt; ValueType, std::initializer_list&lt; typename string_t::value_type &gt;&gt;::value, int &gt;::type  = 0&gt; </td></tr>
347 <tr class="memitem:ad473c5817538254b1cc601abcd371157"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ad473c5817538254b1cc601abcd371157">operator ValueType</a> () const</td></tr>
348 <tr class="memdesc:ad473c5817538254b1cc601abcd371157"><td class="mdescLeft">&#160;</td><td class="mdescRight">get a value (implicit)  <a href="#ad473c5817538254b1cc601abcd371157">More...</a><br /></td></tr>
349 <tr class="separator:ad473c5817538254b1cc601abcd371157"><td class="memSeparator" colspan="2">&#160;</td></tr>
350 </table><table class="memberdecls">
351 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
352 element access</h2></td></tr>
353 <tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrpf68418821a90b03a001117a613b131dd"></a>Access to the JSON value. </p>
354 </td></tr>
355 <tr class="memitem:a3d5717f39bfe485057850f116fb2ed12"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a3d5717f39bfe485057850f116fb2ed12">at</a> (<a class="el" href="classnlohmann_1_1basic__json.html#af38ce1af42d538f410180c265518d4f0">size_type</a> idx)</td></tr>
356 <tr class="memdesc:a3d5717f39bfe485057850f116fb2ed12"><td class="mdescLeft">&#160;</td><td class="mdescRight">access specified array element with bounds checking  <a href="#a3d5717f39bfe485057850f116fb2ed12">More...</a><br /></td></tr>
357 <tr class="separator:a3d5717f39bfe485057850f116fb2ed12"><td class="memSeparator" colspan="2">&#160;</td></tr>
358 <tr class="memitem:af67a114d84325900759c8aeb6b6ad916"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#af67a114d84325900759c8aeb6b6ad916">at</a> (<a class="el" href="classnlohmann_1_1basic__json.html#af38ce1af42d538f410180c265518d4f0">size_type</a> idx) const</td></tr>
359 <tr class="memdesc:af67a114d84325900759c8aeb6b6ad916"><td class="mdescLeft">&#160;</td><td class="mdescRight">access specified array element with bounds checking  <a href="#af67a114d84325900759c8aeb6b6ad916">More...</a><br /></td></tr>
360 <tr class="separator:af67a114d84325900759c8aeb6b6ad916"><td class="memSeparator" colspan="2">&#160;</td></tr>
361 <tr class="memitem:a18c0c62edce2742d5ab24d1979c3ef00"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a18c0c62edce2742d5ab24d1979c3ef00">at</a> (const typename object_t::key_type &amp;key)</td></tr>
362 <tr class="memdesc:a18c0c62edce2742d5ab24d1979c3ef00"><td class="mdescLeft">&#160;</td><td class="mdescRight">access specified object element with bounds checking  <a href="#a18c0c62edce2742d5ab24d1979c3ef00">More...</a><br /></td></tr>
363 <tr class="separator:a18c0c62edce2742d5ab24d1979c3ef00"><td class="memSeparator" colspan="2">&#160;</td></tr>
364 <tr class="memitem:a4f54990041741beea9083540c8ea25c7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a4f54990041741beea9083540c8ea25c7">at</a> (const typename object_t::key_type &amp;key) const</td></tr>
365 <tr class="memdesc:a4f54990041741beea9083540c8ea25c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">access specified object element with bounds checking  <a href="#a4f54990041741beea9083540c8ea25c7">More...</a><br /></td></tr>
366 <tr class="separator:a4f54990041741beea9083540c8ea25c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
367 <tr class="memitem:a693ccc537e47d7c90c86d4ca2fe1db05"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a693ccc537e47d7c90c86d4ca2fe1db05">operator[]</a> (<a class="el" href="classnlohmann_1_1basic__json.html#af38ce1af42d538f410180c265518d4f0">size_type</a> idx)</td></tr>
368 <tr class="memdesc:a693ccc537e47d7c90c86d4ca2fe1db05"><td class="mdescLeft">&#160;</td><td class="mdescRight">access specified array element  <a href="#a693ccc537e47d7c90c86d4ca2fe1db05">More...</a><br /></td></tr>
369 <tr class="separator:a693ccc537e47d7c90c86d4ca2fe1db05"><td class="memSeparator" colspan="2">&#160;</td></tr>
370 <tr class="memitem:a890ecb965cd00d2cae1f76c0602f350a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a890ecb965cd00d2cae1f76c0602f350a">operator[]</a> (<a class="el" href="classnlohmann_1_1basic__json.html#af38ce1af42d538f410180c265518d4f0">size_type</a> idx) const</td></tr>
371 <tr class="memdesc:a890ecb965cd00d2cae1f76c0602f350a"><td class="mdescLeft">&#160;</td><td class="mdescRight">access specified array element  <a href="#a890ecb965cd00d2cae1f76c0602f350a">More...</a><br /></td></tr>
372 <tr class="separator:a890ecb965cd00d2cae1f76c0602f350a"><td class="memSeparator" colspan="2">&#160;</td></tr>
373 <tr class="memitem:a27efc3966d94d080bb36fa3595c15df5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a27efc3966d94d080bb36fa3595c15df5">operator[]</a> (const typename object_t::key_type &amp;key)</td></tr>
374 <tr class="memdesc:a27efc3966d94d080bb36fa3595c15df5"><td class="mdescLeft">&#160;</td><td class="mdescRight">access specified object element  <a href="#a27efc3966d94d080bb36fa3595c15df5">More...</a><br /></td></tr>
375 <tr class="separator:a27efc3966d94d080bb36fa3595c15df5"><td class="memSeparator" colspan="2">&#160;</td></tr>
376 <tr class="memitem:a21e205d45fed194dec979bc1ea5388ac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a21e205d45fed194dec979bc1ea5388ac">operator[]</a> (const typename object_t::key_type &amp;key) const</td></tr>
377 <tr class="memdesc:a21e205d45fed194dec979bc1ea5388ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">read-only access specified object element  <a href="#a21e205d45fed194dec979bc1ea5388ac">More...</a><br /></td></tr>
378 <tr class="separator:a21e205d45fed194dec979bc1ea5388ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
379 <tr class="memitem:aea49996d0be84a9e652cadf7f975db33"><td class="memTemplParams" colspan="2">template&lt;typename T , std::size_t n&gt; </td></tr>
380 <tr class="memitem:aea49996d0be84a9e652cadf7f975db33"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#aea49996d0be84a9e652cadf7f975db33">operator[]</a> (T *(&amp;key)[n])</td></tr>
381 <tr class="memdesc:aea49996d0be84a9e652cadf7f975db33"><td class="mdescLeft">&#160;</td><td class="mdescRight">access specified object element  <a href="#aea49996d0be84a9e652cadf7f975db33">More...</a><br /></td></tr>
382 <tr class="separator:aea49996d0be84a9e652cadf7f975db33"><td class="memSeparator" colspan="2">&#160;</td></tr>
383 <tr class="memitem:ae4a416f01acd73e941714fe5c54389ce"><td class="memTemplParams" colspan="2">template&lt;typename T , std::size_t n&gt; </td></tr>
384 <tr class="memitem:ae4a416f01acd73e941714fe5c54389ce"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ae4a416f01acd73e941714fe5c54389ce">operator[]</a> (T *(&amp;key)[n]) const</td></tr>
385 <tr class="memdesc:ae4a416f01acd73e941714fe5c54389ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">read-only access specified object element  <a href="#ae4a416f01acd73e941714fe5c54389ce">More...</a><br /></td></tr>
386 <tr class="separator:ae4a416f01acd73e941714fe5c54389ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
387 <tr class="memitem:ace3f02fdb9af2b87d407db1bfd20c424"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
388 <tr class="memitem:ace3f02fdb9af2b87d407db1bfd20c424"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ace3f02fdb9af2b87d407db1bfd20c424">operator[]</a> (T *key)</td></tr>
389 <tr class="memdesc:ace3f02fdb9af2b87d407db1bfd20c424"><td class="mdescLeft">&#160;</td><td class="mdescRight">access specified object element  <a href="#ace3f02fdb9af2b87d407db1bfd20c424">More...</a><br /></td></tr>
390 <tr class="separator:ace3f02fdb9af2b87d407db1bfd20c424"><td class="memSeparator" colspan="2">&#160;</td></tr>
391 <tr class="memitem:a12d90fef934fc6cfdac130424872604a"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
392 <tr class="memitem:a12d90fef934fc6cfdac130424872604a"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a12d90fef934fc6cfdac130424872604a">operator[]</a> (T *key) const</td></tr>
393 <tr class="memdesc:a12d90fef934fc6cfdac130424872604a"><td class="mdescLeft">&#160;</td><td class="mdescRight">read-only access specified object element  <a href="#a12d90fef934fc6cfdac130424872604a">More...</a><br /></td></tr>
394 <tr class="separator:a12d90fef934fc6cfdac130424872604a"><td class="memSeparator" colspan="2">&#160;</td></tr>
395 <tr class="memitem:a13f9440aff453090f573a39f4713668f"><td class="memTemplParams" colspan="2">template&lt;class ValueType , typename std::enable_if&lt; std::is_convertible&lt; basic_json_t, ValueType &gt;::value, int &gt;::type  = 0&gt; </td></tr>
396 <tr class="memitem:a13f9440aff453090f573a39f4713668f"><td class="memTemplItemLeft" align="right" valign="top">ValueType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f">value</a> (const typename object_t::key_type &amp;key, ValueType default_value) const</td></tr>
397 <tr class="memdesc:a13f9440aff453090f573a39f4713668f"><td class="mdescLeft">&#160;</td><td class="mdescRight">access specified object element with default value  <a href="#a13f9440aff453090f573a39f4713668f">More...</a><br /></td></tr>
398 <tr class="separator:a13f9440aff453090f573a39f4713668f"><td class="memSeparator" colspan="2">&#160;</td></tr>
399 <tr class="memitem:a47ae67764aed69ccdbf53dac54249070"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#aeacc0aa4079b56866238b8845928c2b7">string_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a47ae67764aed69ccdbf53dac54249070">value</a> (const typename object_t::key_type &amp;key, const char *default_value) const</td></tr>
400 <tr class="memdesc:a47ae67764aed69ccdbf53dac54249070"><td class="mdescLeft">&#160;</td><td class="mdescRight">overload for a default value of type const char*  <a href="#a47ae67764aed69ccdbf53dac54249070">More...</a><br /></td></tr>
401 <tr class="separator:a47ae67764aed69ccdbf53dac54249070"><td class="memSeparator" colspan="2">&#160;</td></tr>
402 <tr class="memitem:ab2b8ceec8ed782b929dcb426bac15966"><td class="memTemplParams" colspan="2">template&lt;class ValueType , typename std::enable_if&lt; std::is_convertible&lt; basic_json_t, ValueType &gt;::value, int &gt;::type  = 0&gt; </td></tr>
403 <tr class="memitem:ab2b8ceec8ed782b929dcb426bac15966"><td class="memTemplItemLeft" align="right" valign="top">ValueType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ab2b8ceec8ed782b929dcb426bac15966">value</a> (const <a class="el" href="classnlohmann_1_1basic__json_1_1json__pointer.html">json_pointer</a> &amp;ptr, ValueType default_value) const</td></tr>
404 <tr class="memdesc:ab2b8ceec8ed782b929dcb426bac15966"><td class="mdescLeft">&#160;</td><td class="mdescRight">access specified object element via JSON Pointer with default value  <a href="#ab2b8ceec8ed782b929dcb426bac15966">More...</a><br /></td></tr>
405 <tr class="separator:ab2b8ceec8ed782b929dcb426bac15966"><td class="memSeparator" colspan="2">&#160;</td></tr>
406 <tr class="memitem:afd2fc91538dba07614e9c1da44fafad7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#aeacc0aa4079b56866238b8845928c2b7">string_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#afd2fc91538dba07614e9c1da44fafad7">value</a> (const <a class="el" href="classnlohmann_1_1basic__json_1_1json__pointer.html">json_pointer</a> &amp;ptr, const char *default_value) const</td></tr>
407 <tr class="memdesc:afd2fc91538dba07614e9c1da44fafad7"><td class="mdescLeft">&#160;</td><td class="mdescRight">overload for a default value of type const char*  <a href="#afd2fc91538dba07614e9c1da44fafad7">More...</a><br /></td></tr>
408 <tr class="separator:afd2fc91538dba07614e9c1da44fafad7"><td class="memSeparator" colspan="2">&#160;</td></tr>
409 <tr class="memitem:a6a48363b4355f6f5b441637774f79a59"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a6a48363b4355f6f5b441637774f79a59">front</a> ()</td></tr>
410 <tr class="memdesc:a6a48363b4355f6f5b441637774f79a59"><td class="mdescLeft">&#160;</td><td class="mdescRight">access the first element  <a href="#a6a48363b4355f6f5b441637774f79a59">More...</a><br /></td></tr>
411 <tr class="separator:a6a48363b4355f6f5b441637774f79a59"><td class="memSeparator" colspan="2">&#160;</td></tr>
412 <tr class="memitem:a0ae6b4f9719202f7ddb334c16fb03d80"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a0ae6b4f9719202f7ddb334c16fb03d80">front</a> () const</td></tr>
413 <tr class="memdesc:a0ae6b4f9719202f7ddb334c16fb03d80"><td class="mdescLeft">&#160;</td><td class="mdescRight">access the first element  <a href="#a0ae6b4f9719202f7ddb334c16fb03d80">More...</a><br /></td></tr>
414 <tr class="separator:a0ae6b4f9719202f7ddb334c16fb03d80"><td class="memSeparator" colspan="2">&#160;</td></tr>
415 <tr class="memitem:af71e6c1eccbc12e9339c00a86a981a43"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#af71e6c1eccbc12e9339c00a86a981a43">back</a> ()</td></tr>
416 <tr class="memdesc:af71e6c1eccbc12e9339c00a86a981a43"><td class="mdescLeft">&#160;</td><td class="mdescRight">access the last element  <a href="#af71e6c1eccbc12e9339c00a86a981a43">More...</a><br /></td></tr>
417 <tr class="separator:af71e6c1eccbc12e9339c00a86a981a43"><td class="memSeparator" colspan="2">&#160;</td></tr>
418 <tr class="memitem:a61772c77ad2abfbb296912e7281e154c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a61772c77ad2abfbb296912e7281e154c">back</a> () const</td></tr>
419 <tr class="memdesc:a61772c77ad2abfbb296912e7281e154c"><td class="mdescLeft">&#160;</td><td class="mdescRight">access the last element  <a href="#a61772c77ad2abfbb296912e7281e154c">More...</a><br /></td></tr>
420 <tr class="separator:a61772c77ad2abfbb296912e7281e154c"><td class="memSeparator" colspan="2">&#160;</td></tr>
421 <tr class="memitem:a05a2d4678b130a13b4bcbc62f4318d72"><td class="memTemplParams" colspan="2">template&lt;class IteratorType , typename std::enable_if&lt; std::is_same&lt; IteratorType, typename basic_json_t::iterator &gt;::value or std::is_same&lt; IteratorType, typename basic_json_t::const_iterator &gt;::value, int &gt;::type  = 0&gt; </td></tr>
422 <tr class="memitem:a05a2d4678b130a13b4bcbc62f4318d72"><td class="memTemplItemLeft" align="right" valign="top">IteratorType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a05a2d4678b130a13b4bcbc62f4318d72">erase</a> (IteratorType pos)</td></tr>
423 <tr class="memdesc:a05a2d4678b130a13b4bcbc62f4318d72"><td class="mdescLeft">&#160;</td><td class="mdescRight">remove element given an iterator  <a href="#a05a2d4678b130a13b4bcbc62f4318d72">More...</a><br /></td></tr>
424 <tr class="separator:a05a2d4678b130a13b4bcbc62f4318d72"><td class="memSeparator" colspan="2">&#160;</td></tr>
425 <tr class="memitem:ae6435ba8565966a32cbaa5f3b7a9429f"><td class="memTemplParams" colspan="2">template&lt;class IteratorType , typename std::enable_if&lt; std::is_same&lt; IteratorType, typename basic_json_t::iterator &gt;::value or std::is_same&lt; IteratorType, typename basic_json_t::const_iterator &gt;::value, int &gt;::type  = 0&gt; </td></tr>
426 <tr class="memitem:ae6435ba8565966a32cbaa5f3b7a9429f"><td class="memTemplItemLeft" align="right" valign="top">IteratorType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ae6435ba8565966a32cbaa5f3b7a9429f">erase</a> (IteratorType first, IteratorType last)</td></tr>
427 <tr class="memdesc:ae6435ba8565966a32cbaa5f3b7a9429f"><td class="mdescLeft">&#160;</td><td class="mdescRight">remove elements given an iterator range  <a href="#ae6435ba8565966a32cbaa5f3b7a9429f">More...</a><br /></td></tr>
428 <tr class="separator:ae6435ba8565966a32cbaa5f3b7a9429f"><td class="memSeparator" colspan="2">&#160;</td></tr>
429 <tr class="memitem:a506aa484ea4e1a2cee6b9f77c33b7979"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#af38ce1af42d538f410180c265518d4f0">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a506aa484ea4e1a2cee6b9f77c33b7979">erase</a> (const typename object_t::key_type &amp;key)</td></tr>
430 <tr class="memdesc:a506aa484ea4e1a2cee6b9f77c33b7979"><td class="mdescLeft">&#160;</td><td class="mdescRight">remove element from a JSON object given a key  <a href="#a506aa484ea4e1a2cee6b9f77c33b7979">More...</a><br /></td></tr>
431 <tr class="separator:a506aa484ea4e1a2cee6b9f77c33b7979"><td class="memSeparator" colspan="2">&#160;</td></tr>
432 <tr class="memitem:a2dd65c471eadf1651db73f3c1f155bfd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a2dd65c471eadf1651db73f3c1f155bfd">erase</a> (const <a class="el" href="classnlohmann_1_1basic__json.html#af38ce1af42d538f410180c265518d4f0">size_type</a> idx)</td></tr>
433 <tr class="memdesc:a2dd65c471eadf1651db73f3c1f155bfd"><td class="mdescLeft">&#160;</td><td class="mdescRight">remove element from a JSON array given an index  <a href="#a2dd65c471eadf1651db73f3c1f155bfd">More...</a><br /></td></tr>
434 <tr class="separator:a2dd65c471eadf1651db73f3c1f155bfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
435 </table><table class="memberdecls">
436 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
437 lookup</h2></td></tr>
438 <tr class="memitem:a4cf2116be00a99de7addd2c32d71f99d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a4cf2116be00a99de7addd2c32d71f99d">find</a> (typename object_t::key_type key)</td></tr>
439 <tr class="memdesc:a4cf2116be00a99de7addd2c32d71f99d"><td class="mdescLeft">&#160;</td><td class="mdescRight">find an element in a JSON object  <a href="#a4cf2116be00a99de7addd2c32d71f99d">More...</a><br /></td></tr>
440 <tr class="separator:a4cf2116be00a99de7addd2c32d71f99d"><td class="memSeparator" colspan="2">&#160;</td></tr>
441 <tr class="memitem:a22458ba24125dc0fe0d363864dddc889"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a22458ba24125dc0fe0d363864dddc889">find</a> (typename object_t::key_type key) const</td></tr>
442 <tr class="memdesc:a22458ba24125dc0fe0d363864dddc889"><td class="mdescLeft">&#160;</td><td class="mdescRight">find an element in a JSON object  <a href="#a22458ba24125dc0fe0d363864dddc889">More...</a><br /></td></tr>
443 <tr class="separator:a22458ba24125dc0fe0d363864dddc889"><td class="memSeparator" colspan="2">&#160;</td></tr>
444 <tr class="memitem:a7e5aaef6e00508e105d713b512c4affa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#af38ce1af42d538f410180c265518d4f0">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a7e5aaef6e00508e105d713b512c4affa">count</a> (typename object_t::key_type key) const</td></tr>
445 <tr class="memdesc:a7e5aaef6e00508e105d713b512c4affa"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the number of occurrences of a key in a JSON object  <a href="#a7e5aaef6e00508e105d713b512c4affa">More...</a><br /></td></tr>
446 <tr class="separator:a7e5aaef6e00508e105d713b512c4affa"><td class="memSeparator" colspan="2">&#160;</td></tr>
447 </table><table class="memberdecls">
448 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
449 iterators</h2></td></tr>
450 <tr class="memitem:ace1114c14ae7995319c4248e5fb77f39"><td class="memItemLeft" align="right" valign="top">static iteration_proxy&lt; <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">iterator</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ace1114c14ae7995319c4248e5fb77f39">iterator_wrapper</a> (<a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a> cont)</td></tr>
451 <tr class="memdesc:ace1114c14ae7995319c4248e5fb77f39"><td class="mdescLeft">&#160;</td><td class="mdescRight">wrapper to access iterator member functions in range-based for  <a href="#ace1114c14ae7995319c4248e5fb77f39">More...</a><br /></td></tr>
452 <tr class="separator:ace1114c14ae7995319c4248e5fb77f39"><td class="memSeparator" colspan="2">&#160;</td></tr>
453 <tr class="memitem:ad5aec3fa1ab1dd3fb95581f13d0b0f72"><td class="memItemLeft" align="right" valign="top">static iteration_proxy&lt; <a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ad5aec3fa1ab1dd3fb95581f13d0b0f72">iterator_wrapper</a> (<a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> cont)</td></tr>
454 <tr class="memdesc:ad5aec3fa1ab1dd3fb95581f13d0b0f72"><td class="mdescLeft">&#160;</td><td class="mdescRight">wrapper to access iterator member functions in range-based for  <a href="#ad5aec3fa1ab1dd3fb95581f13d0b0f72">More...</a><br /></td></tr>
455 <tr class="separator:ad5aec3fa1ab1dd3fb95581f13d0b0f72"><td class="memSeparator" colspan="2">&#160;</td></tr>
456 <tr class="memitem:a979556eb331ec35eb33472a90a160f99"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a979556eb331ec35eb33472a90a160f99">begin</a> () noexcept</td></tr>
457 <tr class="memdesc:a979556eb331ec35eb33472a90a160f99"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns an iterator to the first element  <a href="#a979556eb331ec35eb33472a90a160f99">More...</a><br /></td></tr>
458 <tr class="separator:a979556eb331ec35eb33472a90a160f99"><td class="memSeparator" colspan="2">&#160;</td></tr>
459 <tr class="memitem:a1ca1fc2c9fc3e169d5d0decfd1e54221"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a1ca1fc2c9fc3e169d5d0decfd1e54221">begin</a> () const noexcept</td></tr>
460 <tr class="memdesc:a1ca1fc2c9fc3e169d5d0decfd1e54221"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns a const iterator to the first element  <a href="#a1ca1fc2c9fc3e169d5d0decfd1e54221">More...</a><br /></td></tr>
461 <tr class="separator:a1ca1fc2c9fc3e169d5d0decfd1e54221"><td class="memSeparator" colspan="2">&#160;</td></tr>
462 <tr class="memitem:abeb76f7f3414f270020e6f467586bd93"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#abeb76f7f3414f270020e6f467586bd93">cbegin</a> () const noexcept</td></tr>
463 <tr class="memdesc:abeb76f7f3414f270020e6f467586bd93"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns a const iterator to the first element  <a href="#abeb76f7f3414f270020e6f467586bd93">More...</a><br /></td></tr>
464 <tr class="separator:abeb76f7f3414f270020e6f467586bd93"><td class="memSeparator" colspan="2">&#160;</td></tr>
465 <tr class="memitem:afc5380afa64b233d0df01a147616974b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b">end</a> () noexcept</td></tr>
466 <tr class="memdesc:afc5380afa64b233d0df01a147616974b"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns an iterator to one past the last element  <a href="#afc5380afa64b233d0df01a147616974b">More...</a><br /></td></tr>
467 <tr class="separator:afc5380afa64b233d0df01a147616974b"><td class="memSeparator" colspan="2">&#160;</td></tr>
468 <tr class="memitem:a5b9b57293fae9b18b26349ac0b3fdcd3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a5b9b57293fae9b18b26349ac0b3fdcd3">end</a> () const noexcept</td></tr>
469 <tr class="memdesc:a5b9b57293fae9b18b26349ac0b3fdcd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns a const iterator to one past the last element  <a href="#a5b9b57293fae9b18b26349ac0b3fdcd3">More...</a><br /></td></tr>
470 <tr class="separator:a5b9b57293fae9b18b26349ac0b3fdcd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
471 <tr class="memitem:a9859a454bb6f50c654e280274d6a9d13"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a9859a454bb6f50c654e280274d6a9d13">cend</a> () const noexcept</td></tr>
472 <tr class="memdesc:a9859a454bb6f50c654e280274d6a9d13"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns a const iterator to one past the last element  <a href="#a9859a454bb6f50c654e280274d6a9d13">More...</a><br /></td></tr>
473 <tr class="separator:a9859a454bb6f50c654e280274d6a9d13"><td class="memSeparator" colspan="2">&#160;</td></tr>
474 <tr class="memitem:ac7cd69c57ab7c76ac6eb26c474a43053"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a44b6b974744b30149559c9dce91b92ec">reverse_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ac7cd69c57ab7c76ac6eb26c474a43053">rbegin</a> () noexcept</td></tr>
475 <tr class="memdesc:ac7cd69c57ab7c76ac6eb26c474a43053"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns an iterator to the reverse-beginning  <a href="#ac7cd69c57ab7c76ac6eb26c474a43053">More...</a><br /></td></tr>
476 <tr class="separator:ac7cd69c57ab7c76ac6eb26c474a43053"><td class="memSeparator" colspan="2">&#160;</td></tr>
477 <tr class="memitem:aff2c14a4e54378db02316aa5dacce912"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a80e93f4899e95d7ba9f80df4c423b9d5">const_reverse_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#aff2c14a4e54378db02316aa5dacce912">rbegin</a> () const noexcept</td></tr>
478 <tr class="memdesc:aff2c14a4e54378db02316aa5dacce912"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns a const reverse iterator to the last element  <a href="#aff2c14a4e54378db02316aa5dacce912">More...</a><br /></td></tr>
479 <tr class="separator:aff2c14a4e54378db02316aa5dacce912"><td class="memSeparator" colspan="2">&#160;</td></tr>
480 <tr class="memitem:ad4e3dd675f301e0b86183699a2db7d79"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a44b6b974744b30149559c9dce91b92ec">reverse_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ad4e3dd675f301e0b86183699a2db7d79">rend</a> () noexcept</td></tr>
481 <tr class="memdesc:ad4e3dd675f301e0b86183699a2db7d79"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns an iterator to the reverse-end  <a href="#ad4e3dd675f301e0b86183699a2db7d79">More...</a><br /></td></tr>
482 <tr class="separator:ad4e3dd675f301e0b86183699a2db7d79"><td class="memSeparator" colspan="2">&#160;</td></tr>
483 <tr class="memitem:ac5bfd48090cb59d7dd635954831415df"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a80e93f4899e95d7ba9f80df4c423b9d5">const_reverse_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ac5bfd48090cb59d7dd635954831415df">rend</a> () const noexcept</td></tr>
484 <tr class="memdesc:ac5bfd48090cb59d7dd635954831415df"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns a const reverse iterator to one before the first  <a href="#ac5bfd48090cb59d7dd635954831415df">More...</a><br /></td></tr>
485 <tr class="separator:ac5bfd48090cb59d7dd635954831415df"><td class="memSeparator" colspan="2">&#160;</td></tr>
486 <tr class="memitem:abd227f43fec65b1bfeb96751b5eea9c4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a80e93f4899e95d7ba9f80df4c423b9d5">const_reverse_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#abd227f43fec65b1bfeb96751b5eea9c4">crbegin</a> () const noexcept</td></tr>
487 <tr class="memdesc:abd227f43fec65b1bfeb96751b5eea9c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns a const reverse iterator to the last element  <a href="#abd227f43fec65b1bfeb96751b5eea9c4">More...</a><br /></td></tr>
488 <tr class="separator:abd227f43fec65b1bfeb96751b5eea9c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
489 <tr class="memitem:acbe115c4709d004c9899ef5855f96288"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a80e93f4899e95d7ba9f80df4c423b9d5">const_reverse_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#acbe115c4709d004c9899ef5855f96288">crend</a> () const noexcept</td></tr>
490 <tr class="memdesc:acbe115c4709d004c9899ef5855f96288"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns a const reverse iterator to one before the first  <a href="#acbe115c4709d004c9899ef5855f96288">More...</a><br /></td></tr>
491 <tr class="separator:acbe115c4709d004c9899ef5855f96288"><td class="memSeparator" colspan="2">&#160;</td></tr>
492 </table><table class="memberdecls">
493 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
494 capacity</h2></td></tr>
495 <tr class="memitem:a3f6fc5de06a318920d84f3c3742db07f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a3f6fc5de06a318920d84f3c3742db07f">empty</a> () const noexcept</td></tr>
496 <tr class="memdesc:a3f6fc5de06a318920d84f3c3742db07f"><td class="mdescLeft">&#160;</td><td class="mdescRight">checks whether the container is empty  <a href="#a3f6fc5de06a318920d84f3c3742db07f">More...</a><br /></td></tr>
497 <tr class="separator:a3f6fc5de06a318920d84f3c3742db07f"><td class="memSeparator" colspan="2">&#160;</td></tr>
498 <tr class="memitem:a0801762a3fe36fe32dca5f16e515478d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#af38ce1af42d538f410180c265518d4f0">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a0801762a3fe36fe32dca5f16e515478d">size</a> () const noexcept</td></tr>
499 <tr class="memdesc:a0801762a3fe36fe32dca5f16e515478d"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the number of elements  <a href="#a0801762a3fe36fe32dca5f16e515478d">More...</a><br /></td></tr>
500 <tr class="separator:a0801762a3fe36fe32dca5f16e515478d"><td class="memSeparator" colspan="2">&#160;</td></tr>
501 <tr class="memitem:ac2a85e463df4e95c1bf051cfb8237805"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#af38ce1af42d538f410180c265518d4f0">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ac2a85e463df4e95c1bf051cfb8237805">max_size</a> () const noexcept</td></tr>
502 <tr class="memdesc:ac2a85e463df4e95c1bf051cfb8237805"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the maximum possible number of elements  <a href="#ac2a85e463df4e95c1bf051cfb8237805">More...</a><br /></td></tr>
503 <tr class="separator:ac2a85e463df4e95c1bf051cfb8237805"><td class="memSeparator" colspan="2">&#160;</td></tr>
504 </table><table class="memberdecls">
505 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
506 modifiers</h2></td></tr>
507 <tr class="memitem:a03bfacfaaba9195e4498375659f43531"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a03bfacfaaba9195e4498375659f43531">clear</a> () noexcept</td></tr>
508 <tr class="memdesc:a03bfacfaaba9195e4498375659f43531"><td class="mdescLeft">&#160;</td><td class="mdescRight">clears the contents  <a href="#a03bfacfaaba9195e4498375659f43531">More...</a><br /></td></tr>
509 <tr class="separator:a03bfacfaaba9195e4498375659f43531"><td class="memSeparator" colspan="2">&#160;</td></tr>
510 <tr class="memitem:aaf38acbc4aaada0a40549bc606f99c4f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#aaf38acbc4aaada0a40549bc606f99c4f">push_back</a> (<a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &amp;&amp;val)</td></tr>
511 <tr class="memdesc:aaf38acbc4aaada0a40549bc606f99c4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">add an object to an array  <a href="#aaf38acbc4aaada0a40549bc606f99c4f">More...</a><br /></td></tr>
512 <tr class="separator:aaf38acbc4aaada0a40549bc606f99c4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
513 <tr class="memitem:aa130f045dca0b2e8d0ddae89e0f9cba8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#aa130f045dca0b2e8d0ddae89e0f9cba8">operator+=</a> (<a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &amp;&amp;val)</td></tr>
514 <tr class="memdesc:aa130f045dca0b2e8d0ddae89e0f9cba8"><td class="mdescLeft">&#160;</td><td class="mdescRight">add an object to an array  <a href="#aa130f045dca0b2e8d0ddae89e0f9cba8">More...</a><br /></td></tr>
515 <tr class="separator:aa130f045dca0b2e8d0ddae89e0f9cba8"><td class="memSeparator" colspan="2">&#160;</td></tr>
516 <tr class="memitem:a2e642105ec753ddb0650b7013749af7b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a2e642105ec753ddb0650b7013749af7b">push_back</a> (const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &amp;val)</td></tr>
517 <tr class="memdesc:a2e642105ec753ddb0650b7013749af7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">add an object to an array  <a href="#a2e642105ec753ddb0650b7013749af7b">More...</a><br /></td></tr>
518 <tr class="separator:a2e642105ec753ddb0650b7013749af7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
519 <tr class="memitem:a0e7ec359c5e44fa0b81c19a4bb699c3d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a0e7ec359c5e44fa0b81c19a4bb699c3d">operator+=</a> (const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &amp;val)</td></tr>
520 <tr class="memdesc:a0e7ec359c5e44fa0b81c19a4bb699c3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">add an object to an array  <a href="#a0e7ec359c5e44fa0b81c19a4bb699c3d">More...</a><br /></td></tr>
521 <tr class="separator:a0e7ec359c5e44fa0b81c19a4bb699c3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
522 <tr class="memitem:af39e5dcd421f92346c586d57ad7d6609"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#af39e5dcd421f92346c586d57ad7d6609">push_back</a> (const typename object_t::value_type &amp;val)</td></tr>
523 <tr class="memdesc:af39e5dcd421f92346c586d57ad7d6609"><td class="mdescLeft">&#160;</td><td class="mdescRight">add an object to an object  <a href="#af39e5dcd421f92346c586d57ad7d6609">More...</a><br /></td></tr>
524 <tr class="separator:af39e5dcd421f92346c586d57ad7d6609"><td class="memSeparator" colspan="2">&#160;</td></tr>
525 <tr class="memitem:abba1e62253b8581d1e8fa1aab041702f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#abba1e62253b8581d1e8fa1aab041702f">operator+=</a> (const typename object_t::value_type &amp;val)</td></tr>
526 <tr class="memdesc:abba1e62253b8581d1e8fa1aab041702f"><td class="mdescLeft">&#160;</td><td class="mdescRight">add an object to an object  <a href="#abba1e62253b8581d1e8fa1aab041702f">More...</a><br /></td></tr>
527 <tr class="separator:abba1e62253b8581d1e8fa1aab041702f"><td class="memSeparator" colspan="2">&#160;</td></tr>
528 <tr class="memitem:a77ab6e7e6b70135f022172a021a15550"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a77ab6e7e6b70135f022172a021a15550">push_back</a> (std::initializer_list&lt; <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &gt; init)</td></tr>
529 <tr class="memdesc:a77ab6e7e6b70135f022172a021a15550"><td class="mdescLeft">&#160;</td><td class="mdescRight">add an object to an object  <a href="#a77ab6e7e6b70135f022172a021a15550">More...</a><br /></td></tr>
530 <tr class="separator:a77ab6e7e6b70135f022172a021a15550"><td class="memSeparator" colspan="2">&#160;</td></tr>
531 <tr class="memitem:ac42b45d70dbd9ad603c60305540f5aca"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ac42b45d70dbd9ad603c60305540f5aca">operator+=</a> (std::initializer_list&lt; <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &gt; init)</td></tr>
532 <tr class="memdesc:ac42b45d70dbd9ad603c60305540f5aca"><td class="mdescLeft">&#160;</td><td class="mdescRight">add an object to an object  <a href="#ac42b45d70dbd9ad603c60305540f5aca">More...</a><br /></td></tr>
533 <tr class="separator:ac42b45d70dbd9ad603c60305540f5aca"><td class="memSeparator" colspan="2">&#160;</td></tr>
534 <tr class="memitem:ac294eba73765b9a72a7399d64e8ecd9a"><td class="memTemplParams" colspan="2">template&lt;class... Args&gt; </td></tr>
535 <tr class="memitem:ac294eba73765b9a72a7399d64e8ecd9a"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ac294eba73765b9a72a7399d64e8ecd9a">emplace_back</a> (Args &amp;&amp;... args)</td></tr>
536 <tr class="memdesc:ac294eba73765b9a72a7399d64e8ecd9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">add an object to an array  <a href="#ac294eba73765b9a72a7399d64e8ecd9a">More...</a><br /></td></tr>
537 <tr class="separator:ac294eba73765b9a72a7399d64e8ecd9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
538 <tr class="memitem:a3266031b8b423571de004ddf5bcddd24"><td class="memTemplParams" colspan="2">template&lt;class... Args&gt; </td></tr>
539 <tr class="memitem:a3266031b8b423571de004ddf5bcddd24"><td class="memTemplItemLeft" align="right" valign="top">std::pair&lt; <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">iterator</a>, bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a3266031b8b423571de004ddf5bcddd24">emplace</a> (Args &amp;&amp;... args)</td></tr>
540 <tr class="memdesc:a3266031b8b423571de004ddf5bcddd24"><td class="mdescLeft">&#160;</td><td class="mdescRight">add an object to an object if key does not exist  <a href="#a3266031b8b423571de004ddf5bcddd24">More...</a><br /></td></tr>
541 <tr class="separator:a3266031b8b423571de004ddf5bcddd24"><td class="memSeparator" colspan="2">&#160;</td></tr>
542 <tr class="memitem:a61546bf37d98e9b0d098220009e8376d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a61546bf37d98e9b0d098220009e8376d">insert</a> (<a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a> pos, const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &amp;val)</td></tr>
543 <tr class="memdesc:a61546bf37d98e9b0d098220009e8376d"><td class="mdescLeft">&#160;</td><td class="mdescRight">inserts element  <a href="#a61546bf37d98e9b0d098220009e8376d">More...</a><br /></td></tr>
544 <tr class="separator:a61546bf37d98e9b0d098220009e8376d"><td class="memSeparator" colspan="2">&#160;</td></tr>
545 <tr class="memitem:a3558f3419aa799071e6ce6114da3d2ec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a3558f3419aa799071e6ce6114da3d2ec">insert</a> (<a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a> pos, <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &amp;&amp;val)</td></tr>
546 <tr class="memdesc:a3558f3419aa799071e6ce6114da3d2ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">inserts element  <a href="#a3558f3419aa799071e6ce6114da3d2ec">More...</a><br /></td></tr>
547 <tr class="separator:a3558f3419aa799071e6ce6114da3d2ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
548 <tr class="memitem:ad30ad11886ceb1c06ee5dd940fd73dc7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ad30ad11886ceb1c06ee5dd940fd73dc7">insert</a> (<a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a> pos, <a class="el" href="classnlohmann_1_1basic__json.html#af38ce1af42d538f410180c265518d4f0">size_type</a> cnt, const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &amp;val)</td></tr>
549 <tr class="memdesc:ad30ad11886ceb1c06ee5dd940fd73dc7"><td class="mdescLeft">&#160;</td><td class="mdescRight">inserts elements  <a href="#ad30ad11886ceb1c06ee5dd940fd73dc7">More...</a><br /></td></tr>
550 <tr class="separator:ad30ad11886ceb1c06ee5dd940fd73dc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
551 <tr class="memitem:ac3333d8377ac68529c6aecebae9e0b9d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ac3333d8377ac68529c6aecebae9e0b9d">insert</a> (<a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a> pos, <a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a> first, <a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a> last)</td></tr>
552 <tr class="memdesc:ac3333d8377ac68529c6aecebae9e0b9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">inserts elements  <a href="#ac3333d8377ac68529c6aecebae9e0b9d">More...</a><br /></td></tr>
553 <tr class="separator:ac3333d8377ac68529c6aecebae9e0b9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
554 <tr class="memitem:ace9415ac72c37ce036fdcd82710cbc83"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ace9415ac72c37ce036fdcd82710cbc83">insert</a> (<a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a> pos, std::initializer_list&lt; <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &gt; ilist)</td></tr>
555 <tr class="memdesc:ace9415ac72c37ce036fdcd82710cbc83"><td class="mdescLeft">&#160;</td><td class="mdescRight">inserts elements  <a href="#ace9415ac72c37ce036fdcd82710cbc83">More...</a><br /></td></tr>
556 <tr class="separator:ace9415ac72c37ce036fdcd82710cbc83"><td class="memSeparator" colspan="2">&#160;</td></tr>
557 <tr class="memitem:a0f6968dcb6461353787d510aaa671b61"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a0f6968dcb6461353787d510aaa671b61">swap</a> (<a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a> other) noexcept(std::is_nothrow_move_constructible&lt; <a class="el" href="namespacenlohmann_1_1detail.html#aedb3045c82a17d48de0f030229adbffe">value_t</a> &gt;::<a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f">value</a> and std::is_nothrow_move_assignable&lt; <a class="el" href="namespacenlohmann_1_1detail.html#aedb3045c82a17d48de0f030229adbffe">value_t</a> &gt;::<a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f">value</a> and std::is_nothrow_move_constructible&lt; json_value &gt;::<a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f">value</a> and std::is_nothrow_move_assignable&lt; json_value &gt;::<a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f">value</a>)</td></tr>
558 <tr class="memdesc:a0f6968dcb6461353787d510aaa671b61"><td class="mdescLeft">&#160;</td><td class="mdescRight">exchanges the values  <a href="#a0f6968dcb6461353787d510aaa671b61">More...</a><br /></td></tr>
559 <tr class="separator:a0f6968dcb6461353787d510aaa671b61"><td class="memSeparator" colspan="2">&#160;</td></tr>
560 <tr class="memitem:aa9099a065ca08f872f864685ee2e8227"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#aa9099a065ca08f872f864685ee2e8227">swap</a> (<a class="el" href="classnlohmann_1_1basic__json.html#a289ffe7b795d293d233d03cfc60bcd15">array_t</a> &amp;other)</td></tr>
561 <tr class="memdesc:aa9099a065ca08f872f864685ee2e8227"><td class="mdescLeft">&#160;</td><td class="mdescRight">exchanges the values  <a href="#aa9099a065ca08f872f864685ee2e8227">More...</a><br /></td></tr>
562 <tr class="separator:aa9099a065ca08f872f864685ee2e8227"><td class="memSeparator" colspan="2">&#160;</td></tr>
563 <tr class="memitem:a4427f06d587d010c62fb08021ad13612"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a4427f06d587d010c62fb08021ad13612">swap</a> (<a class="el" href="classnlohmann_1_1basic__json.html#a143db8a40359a56372e21a8feea66454">object_t</a> &amp;other)</td></tr>
564 <tr class="memdesc:a4427f06d587d010c62fb08021ad13612"><td class="mdescLeft">&#160;</td><td class="mdescRight">exchanges the values  <a href="#a4427f06d587d010c62fb08021ad13612">More...</a><br /></td></tr>
565 <tr class="separator:a4427f06d587d010c62fb08021ad13612"><td class="memSeparator" colspan="2">&#160;</td></tr>
566 <tr class="memitem:afa2f6591635aca46d323a7e41d71c4b1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#afa2f6591635aca46d323a7e41d71c4b1">swap</a> (<a class="el" href="classnlohmann_1_1basic__json.html#aeacc0aa4079b56866238b8845928c2b7">string_t</a> &amp;other)</td></tr>
567 <tr class="memdesc:afa2f6591635aca46d323a7e41d71c4b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">exchanges the values  <a href="#afa2f6591635aca46d323a7e41d71c4b1">More...</a><br /></td></tr>
568 <tr class="separator:afa2f6591635aca46d323a7e41d71c4b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
569 </table><table class="memberdecls">
570 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
571 lexicographical comparison operators</h2></td></tr>
572 <tr class="memitem:a122640e7e2db1814fc7bbb3c122ec76e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a122640e7e2db1814fc7bbb3c122ec76e">operator==</a> (<a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> lhs, <a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> rhs) noexcept</td></tr>
573 <tr class="memdesc:a122640e7e2db1814fc7bbb3c122ec76e"><td class="mdescLeft">&#160;</td><td class="mdescRight">comparison: equal  <a href="#a122640e7e2db1814fc7bbb3c122ec76e">More...</a><br /></td></tr>
574 <tr class="separator:a122640e7e2db1814fc7bbb3c122ec76e"><td class="memSeparator" colspan="2">&#160;</td></tr>
575 <tr class="memitem:aba21440ea1aff44f718285ed7d6d20d9"><td class="memTemplParams" colspan="2">template&lt;typename ScalarType , typename std::enable_if&lt; std::is_scalar&lt; ScalarType &gt;::value, int &gt;::type  = 0&gt; </td></tr>
576 <tr class="memitem:aba21440ea1aff44f718285ed7d6d20d9"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#aba21440ea1aff44f718285ed7d6d20d9">operator==</a> (<a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> lhs, const ScalarType rhs) noexcept</td></tr>
577 <tr class="memdesc:aba21440ea1aff44f718285ed7d6d20d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">comparison: equal  <a href="#aba21440ea1aff44f718285ed7d6d20d9">More...</a><br /></td></tr>
578 <tr class="separator:aba21440ea1aff44f718285ed7d6d20d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
579 <tr class="memitem:aef302e3ae215e46e5035d0e4fdf47235"><td class="memTemplParams" colspan="2">template&lt;typename ScalarType , typename std::enable_if&lt; std::is_scalar&lt; ScalarType &gt;::value, int &gt;::type  = 0&gt; </td></tr>
580 <tr class="memitem:aef302e3ae215e46e5035d0e4fdf47235"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#aef302e3ae215e46e5035d0e4fdf47235">operator==</a> (const ScalarType lhs, <a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> rhs) noexcept</td></tr>
581 <tr class="memdesc:aef302e3ae215e46e5035d0e4fdf47235"><td class="mdescLeft">&#160;</td><td class="mdescRight">comparison: equal  <a href="#aef302e3ae215e46e5035d0e4fdf47235">More...</a><br /></td></tr>
582 <tr class="separator:aef302e3ae215e46e5035d0e4fdf47235"><td class="memSeparator" colspan="2">&#160;</td></tr>
583 <tr class="memitem:a6e2e21da48f5d9471716cd868a068327"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a6e2e21da48f5d9471716cd868a068327">operator!=</a> (<a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> lhs, <a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> rhs) noexcept</td></tr>
584 <tr class="memdesc:a6e2e21da48f5d9471716cd868a068327"><td class="mdescLeft">&#160;</td><td class="mdescRight">comparison: not equal  <a href="#a6e2e21da48f5d9471716cd868a068327">More...</a><br /></td></tr>
585 <tr class="separator:a6e2e21da48f5d9471716cd868a068327"><td class="memSeparator" colspan="2">&#160;</td></tr>
586 <tr class="memitem:afefc38fc08bdb7a9a7474b5ab4a1140f"><td class="memTemplParams" colspan="2">template&lt;typename ScalarType , typename std::enable_if&lt; std::is_scalar&lt; ScalarType &gt;::value, int &gt;::type  = 0&gt; </td></tr>
587 <tr class="memitem:afefc38fc08bdb7a9a7474b5ab4a1140f"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#afefc38fc08bdb7a9a7474b5ab4a1140f">operator!=</a> (<a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> lhs, const ScalarType rhs) noexcept</td></tr>
588 <tr class="memdesc:afefc38fc08bdb7a9a7474b5ab4a1140f"><td class="mdescLeft">&#160;</td><td class="mdescRight">comparison: not equal  <a href="#afefc38fc08bdb7a9a7474b5ab4a1140f">More...</a><br /></td></tr>
589 <tr class="separator:afefc38fc08bdb7a9a7474b5ab4a1140f"><td class="memSeparator" colspan="2">&#160;</td></tr>
590 <tr class="memitem:ab0e886db6e9fa91ff9fd853333fed05b"><td class="memTemplParams" colspan="2">template&lt;typename ScalarType , typename std::enable_if&lt; std::is_scalar&lt; ScalarType &gt;::value, int &gt;::type  = 0&gt; </td></tr>
591 <tr class="memitem:ab0e886db6e9fa91ff9fd853333fed05b"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ab0e886db6e9fa91ff9fd853333fed05b">operator!=</a> (const ScalarType lhs, <a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> rhs) noexcept</td></tr>
592 <tr class="memdesc:ab0e886db6e9fa91ff9fd853333fed05b"><td class="mdescLeft">&#160;</td><td class="mdescRight">comparison: not equal  <a href="#ab0e886db6e9fa91ff9fd853333fed05b">More...</a><br /></td></tr>
593 <tr class="separator:ab0e886db6e9fa91ff9fd853333fed05b"><td class="memSeparator" colspan="2">&#160;</td></tr>
594 <tr class="memitem:aacd442b66140c764c594ac8ad7dfd5b3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#aacd442b66140c764c594ac8ad7dfd5b3">operator&lt;</a> (<a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> lhs, <a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> rhs) noexcept</td></tr>
595 <tr class="memdesc:aacd442b66140c764c594ac8ad7dfd5b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">comparison: less than  <a href="#aacd442b66140c764c594ac8ad7dfd5b3">More...</a><br /></td></tr>
596 <tr class="separator:aacd442b66140c764c594ac8ad7dfd5b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
597 <tr class="memitem:a5c8bb5200f5eac10d31e26be46e5b1ac"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a5c8bb5200f5eac10d31e26be46e5b1ac">operator&lt;=</a> (<a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> lhs, <a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> rhs) noexcept</td></tr>
598 <tr class="memdesc:a5c8bb5200f5eac10d31e26be46e5b1ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">comparison: less than or equal  <a href="#a5c8bb5200f5eac10d31e26be46e5b1ac">More...</a><br /></td></tr>
599 <tr class="separator:a5c8bb5200f5eac10d31e26be46e5b1ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
600 <tr class="memitem:a87db51b6b936fb2ea293cdbc8702dcb8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a87db51b6b936fb2ea293cdbc8702dcb8">operator&gt;</a> (<a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> lhs, <a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> rhs) noexcept</td></tr>
601 <tr class="memdesc:a87db51b6b936fb2ea293cdbc8702dcb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">comparison: greater than  <a href="#a87db51b6b936fb2ea293cdbc8702dcb8">More...</a><br /></td></tr>
602 <tr class="separator:a87db51b6b936fb2ea293cdbc8702dcb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
603 <tr class="memitem:a74a943800c7f103d0990d7eef82c6453"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a74a943800c7f103d0990d7eef82c6453">operator&gt;=</a> (<a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> lhs, <a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> rhs) noexcept</td></tr>
604 <tr class="memdesc:a74a943800c7f103d0990d7eef82c6453"><td class="mdescLeft">&#160;</td><td class="mdescRight">comparison: greater than or equal  <a href="#a74a943800c7f103d0990d7eef82c6453">More...</a><br /></td></tr>
605 <tr class="separator:a74a943800c7f103d0990d7eef82c6453"><td class="memSeparator" colspan="2">&#160;</td></tr>
606 </table><table class="memberdecls">
607 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
608 serialization</h2></td></tr>
609 <tr class="memitem:a5e34c5435e557d0bf666bd7311211405"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a5e34c5435e557d0bf666bd7311211405">operator&lt;&lt;</a> (std::ostream &amp;o, const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &amp;j)</td></tr>
610 <tr class="memdesc:a5e34c5435e557d0bf666bd7311211405"><td class="mdescLeft">&#160;</td><td class="mdescRight">serialize to stream  <a href="#a5e34c5435e557d0bf666bd7311211405">More...</a><br /></td></tr>
611 <tr class="separator:a5e34c5435e557d0bf666bd7311211405"><td class="memSeparator" colspan="2">&#160;</td></tr>
612 <tr class="memitem:a34d6a60dd99e9f33b8273a1c8db5669b"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a34d6a60dd99e9f33b8273a1c8db5669b">operator&gt;&gt;</a> (const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &amp;j, std::ostream &amp;o)</td></tr>
613 <tr class="memdesc:a34d6a60dd99e9f33b8273a1c8db5669b"><td class="mdescLeft">&#160;</td><td class="mdescRight">serialize to stream  <a href="#a34d6a60dd99e9f33b8273a1c8db5669b">More...</a><br /></td></tr>
614 <tr class="separator:a34d6a60dd99e9f33b8273a1c8db5669b"><td class="memSeparator" colspan="2">&#160;</td></tr>
615 </table><table class="memberdecls">
616 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
617 deserialization</h2></td></tr>
618 <tr class="memitem:a60ca396028b8d9714c6e10efbf475af6"><td class="memItemLeft" align="right" valign="top">std::istream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a60ca396028b8d9714c6e10efbf475af6">operator&lt;&lt;</a> (<a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &amp;j, std::istream &amp;i)</td></tr>
619 <tr class="memdesc:a60ca396028b8d9714c6e10efbf475af6"><td class="mdescLeft">&#160;</td><td class="mdescRight">deserialize from stream  <a href="#a60ca396028b8d9714c6e10efbf475af6">More...</a><br /></td></tr>
620 <tr class="separator:a60ca396028b8d9714c6e10efbf475af6"><td class="memSeparator" colspan="2">&#160;</td></tr>
621 <tr class="memitem:aaf363408931d76472ded14017e59c9e8"><td class="memItemLeft" align="right" valign="top">std::istream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#aaf363408931d76472ded14017e59c9e8">operator&gt;&gt;</a> (std::istream &amp;i, <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &amp;j)</td></tr>
622 <tr class="memdesc:aaf363408931d76472ded14017e59c9e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">deserialize from stream  <a href="#aaf363408931d76472ded14017e59c9e8">More...</a><br /></td></tr>
623 <tr class="separator:aaf363408931d76472ded14017e59c9e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
624 <tr class="memitem:a59c8a7fee8883e55b4317dfd6cab4912"><td class="memTemplParams" colspan="2">template&lt;class T , std::size_t N&gt; </td></tr>
625 <tr class="memitem:a59c8a7fee8883e55b4317dfd6cab4912"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a59c8a7fee8883e55b4317dfd6cab4912">parse</a> (T(&amp;<a class="el" href="classnlohmann_1_1basic__json.html#a16bfbc9e705582cdf7e88affced6ca51">array</a>)[N], const <a class="el" href="classnlohmann_1_1basic__json.html#a8bcd7fb59f7978ccd8942605357fc28a">parser_callback_t</a> cb=nullptr)</td></tr>
626 <tr class="memdesc:a59c8a7fee8883e55b4317dfd6cab4912"><td class="mdescLeft">&#160;</td><td class="mdescRight">deserialize from an array  <a href="#a59c8a7fee8883e55b4317dfd6cab4912">More...</a><br /></td></tr>
627 <tr class="separator:a59c8a7fee8883e55b4317dfd6cab4912"><td class="memSeparator" colspan="2">&#160;</td></tr>
628 <tr class="memitem:afa4d3c57e6fda1fce97025d155f5642f"><td class="memTemplParams" colspan="2">template&lt;typename CharT , typename std::enable_if&lt; std::is_pointer&lt; CharT &gt;::value and std::is_integral&lt; typename std::remove_pointer&lt; CharT &gt;::type &gt;::value and sizeof(typename std::remove_pointer&lt; CharT &gt;::type)==1, int &gt;::type  = 0&gt; </td></tr>
629 <tr class="memitem:afa4d3c57e6fda1fce97025d155f5642f"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#afa4d3c57e6fda1fce97025d155f5642f">parse</a> (const CharT s, const <a class="el" href="classnlohmann_1_1basic__json.html#a8bcd7fb59f7978ccd8942605357fc28a">parser_callback_t</a> cb=nullptr)</td></tr>
630 <tr class="memdesc:afa4d3c57e6fda1fce97025d155f5642f"><td class="mdescLeft">&#160;</td><td class="mdescRight">deserialize from string literal  <a href="#afa4d3c57e6fda1fce97025d155f5642f">More...</a><br /></td></tr>
631 <tr class="separator:afa4d3c57e6fda1fce97025d155f5642f"><td class="memSeparator" colspan="2">&#160;</td></tr>
632 <tr class="memitem:ad19ad3fa5d9a806c5018faa3cd0ed85c"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ad19ad3fa5d9a806c5018faa3cd0ed85c">parse</a> (std::istream &amp;i, const <a class="el" href="classnlohmann_1_1basic__json.html#a8bcd7fb59f7978ccd8942605357fc28a">parser_callback_t</a> cb=nullptr)</td></tr>
633 <tr class="memdesc:ad19ad3fa5d9a806c5018faa3cd0ed85c"><td class="mdescLeft">&#160;</td><td class="mdescRight">deserialize from stream  <a href="#ad19ad3fa5d9a806c5018faa3cd0ed85c">More...</a><br /></td></tr>
634 <tr class="separator:ad19ad3fa5d9a806c5018faa3cd0ed85c"><td class="memSeparator" colspan="2">&#160;</td></tr>
635 <tr class="memitem:afd3a3ede6b43cdf69827593006813658"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#afd3a3ede6b43cdf69827593006813658">parse</a> (std::istream &amp;&amp;i, const <a class="el" href="classnlohmann_1_1basic__json.html#a8bcd7fb59f7978ccd8942605357fc28a">parser_callback_t</a> cb=nullptr)</td></tr>
636 <tr class="memdesc:afd3a3ede6b43cdf69827593006813658"><td class="mdescLeft">&#160;</td><td class="mdescRight">deserialize from stream  <a href="#afd3a3ede6b43cdf69827593006813658">More...</a><br /></td></tr>
637 <tr class="separator:afd3a3ede6b43cdf69827593006813658"><td class="memSeparator" colspan="2">&#160;</td></tr>
638 <tr class="memitem:a09792d435ddd0409a5c002c415f00da4"><td class="memTemplParams" colspan="2">template&lt;class IteratorType , typename std::enable_if&lt; std::is_base_of&lt; std::random_access_iterator_tag, typename std::iterator_traits&lt; IteratorType &gt;::iterator_category &gt;::value, int &gt;::type  = 0&gt; </td></tr>
639 <tr class="memitem:a09792d435ddd0409a5c002c415f00da4"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a09792d435ddd0409a5c002c415f00da4">parse</a> (IteratorType first, IteratorType last, const <a class="el" href="classnlohmann_1_1basic__json.html#a8bcd7fb59f7978ccd8942605357fc28a">parser_callback_t</a> cb=nullptr)</td></tr>
640 <tr class="memdesc:a09792d435ddd0409a5c002c415f00da4"><td class="mdescLeft">&#160;</td><td class="mdescRight">deserialize from an iterator range with contiguous storage  <a href="#a09792d435ddd0409a5c002c415f00da4">More...</a><br /></td></tr>
641 <tr class="separator:a09792d435ddd0409a5c002c415f00da4"><td class="memSeparator" colspan="2">&#160;</td></tr>
642 <tr class="memitem:a39a861de8ee4cc685cd0c5b47f0ab097"><td class="memTemplParams" colspan="2">template&lt;class ContiguousContainer , typename std::enable_if&lt; not std::is_pointer&lt; ContiguousContainer &gt;::value and std::is_base_of&lt; std::random_access_iterator_tag, typename std::iterator_traits&lt; decltype(std::begin(std::declval&lt; ContiguousContainer const &gt;()))&gt;::iterator_category &gt;::value, int &gt;::type  = 0&gt; </td></tr>
643 <tr class="memitem:a39a861de8ee4cc685cd0c5b47f0ab097"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a39a861de8ee4cc685cd0c5b47f0ab097">parse</a> (const ContiguousContainer &amp;c, const <a class="el" href="classnlohmann_1_1basic__json.html#a8bcd7fb59f7978ccd8942605357fc28a">parser_callback_t</a> cb=nullptr)</td></tr>
644 <tr class="memdesc:a39a861de8ee4cc685cd0c5b47f0ab097"><td class="mdescLeft">&#160;</td><td class="mdescRight">deserialize from a container with contiguous storage  <a href="#a39a861de8ee4cc685cd0c5b47f0ab097">More...</a><br /></td></tr>
645 <tr class="separator:a39a861de8ee4cc685cd0c5b47f0ab097"><td class="memSeparator" colspan="2">&#160;</td></tr>
646 </table><table class="memberdecls">
647 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
648 binary serialization/deserialization support</h2></td></tr>
649 <tr class="memitem:aefc0b96a623a236cf9cc27f44c7e997e"><td class="memItemLeft" align="right" valign="top">static std::vector&lt; uint8_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#aefc0b96a623a236cf9cc27f44c7e997e">to_msgpack</a> (const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &amp;j)</td></tr>
650 <tr class="memdesc:aefc0b96a623a236cf9cc27f44c7e997e"><td class="mdescLeft">&#160;</td><td class="mdescRight">create a MessagePack serialization of a given JSON value  <a href="#aefc0b96a623a236cf9cc27f44c7e997e">More...</a><br /></td></tr>
651 <tr class="separator:aefc0b96a623a236cf9cc27f44c7e997e"><td class="memSeparator" colspan="2">&#160;</td></tr>
652 <tr class="memitem:ae9e03e9dcfd9897c8c9b03a53cf02d30"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#ae9e03e9dcfd9897c8c9b03a53cf02d30">from_msgpack</a> (const std::vector&lt; uint8_t &gt; &amp;v, const size_t start_index=0)</td></tr>
653 <tr class="memdesc:ae9e03e9dcfd9897c8c9b03a53cf02d30"><td class="mdescLeft">&#160;</td><td class="mdescRight">create a JSON value from a byte vector in MessagePack format  <a href="#ae9e03e9dcfd9897c8c9b03a53cf02d30">More...</a><br /></td></tr>
654 <tr class="separator:ae9e03e9dcfd9897c8c9b03a53cf02d30"><td class="memSeparator" colspan="2">&#160;</td></tr>
655 <tr class="memitem:a7c65575e95a173952806dbf6cb43db9d"><td class="memItemLeft" align="right" valign="top">static std::vector&lt; uint8_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a7c65575e95a173952806dbf6cb43db9d">to_cbor</a> (const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &amp;j)</td></tr>
656 <tr class="memdesc:a7c65575e95a173952806dbf6cb43db9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">create a MessagePack serialization of a given JSON value  <a href="#a7c65575e95a173952806dbf6cb43db9d">More...</a><br /></td></tr>
657 <tr class="separator:a7c65575e95a173952806dbf6cb43db9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
658 <tr class="memitem:adc1943642176bb9091891f24bbb67416"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#adc1943642176bb9091891f24bbb67416">from_cbor</a> (const std::vector&lt; uint8_t &gt; &amp;v, const size_t start_index=0)</td></tr>
659 <tr class="memdesc:adc1943642176bb9091891f24bbb67416"><td class="mdescLeft">&#160;</td><td class="mdescRight">create a JSON value from a byte vector in CBOR format  <a href="#adc1943642176bb9091891f24bbb67416">More...</a><br /></td></tr>
660 <tr class="separator:adc1943642176bb9091891f24bbb67416"><td class="memSeparator" colspan="2">&#160;</td></tr>
661 </table><table class="memberdecls">
662 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
663 JSON Pointer functions</h2></td></tr>
664 <tr class="memitem:af16e882a2401f188f4b26d728c5fc2ed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#af16e882a2401f188f4b26d728c5fc2ed">operator[]</a> (const <a class="el" href="classnlohmann_1_1basic__json_1_1json__pointer.html">json_pointer</a> &amp;ptr)</td></tr>
665 <tr class="memdesc:af16e882a2401f188f4b26d728c5fc2ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">access specified element via JSON Pointer  <a href="#af16e882a2401f188f4b26d728c5fc2ed">More...</a><br /></td></tr>
666 <tr class="separator:af16e882a2401f188f4b26d728c5fc2ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
667 <tr class="memitem:a3ac9a62afdca75d5793047e6913e5ab1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a3ac9a62afdca75d5793047e6913e5ab1">operator[]</a> (const <a class="el" href="classnlohmann_1_1basic__json_1_1json__pointer.html">json_pointer</a> &amp;ptr) const</td></tr>
668 <tr class="memdesc:a3ac9a62afdca75d5793047e6913e5ab1"><td class="mdescLeft">&#160;</td><td class="mdescRight">access specified element via JSON Pointer  <a href="#a3ac9a62afdca75d5793047e6913e5ab1">More...</a><br /></td></tr>
669 <tr class="separator:a3ac9a62afdca75d5793047e6913e5ab1"><td class="memSeparator" colspan="2">&#160;</td></tr>
670 <tr class="memitem:a4d402bba79c6c22a6399472f5ffa748e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a4d402bba79c6c22a6399472f5ffa748e">at</a> (const <a class="el" href="classnlohmann_1_1basic__json_1_1json__pointer.html">json_pointer</a> &amp;ptr)</td></tr>
671 <tr class="memdesc:a4d402bba79c6c22a6399472f5ffa748e"><td class="mdescLeft">&#160;</td><td class="mdescRight">access specified element via JSON Pointer  <a href="#a4d402bba79c6c22a6399472f5ffa748e">More...</a><br /></td></tr>
672 <tr class="separator:a4d402bba79c6c22a6399472f5ffa748e"><td class="memSeparator" colspan="2">&#160;</td></tr>
673 <tr class="memitem:a64916a31807a0cf9c5dbb16d228a4d5a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a64916a31807a0cf9c5dbb16d228a4d5a">at</a> (const <a class="el" href="classnlohmann_1_1basic__json_1_1json__pointer.html">json_pointer</a> &amp;ptr) const</td></tr>
674 <tr class="memdesc:a64916a31807a0cf9c5dbb16d228a4d5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">access specified element via JSON Pointer  <a href="#a64916a31807a0cf9c5dbb16d228a4d5a">More...</a><br /></td></tr>
675 <tr class="separator:a64916a31807a0cf9c5dbb16d228a4d5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
676 <tr class="memitem:a6a19297e3c35ea1836a330681443e241"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a6a19297e3c35ea1836a330681443e241">flatten</a> () const</td></tr>
677 <tr class="memdesc:a6a19297e3c35ea1836a330681443e241"><td class="mdescLeft">&#160;</td><td class="mdescRight">return flattened JSON value  <a href="#a6a19297e3c35ea1836a330681443e241">More...</a><br /></td></tr>
678 <tr class="separator:a6a19297e3c35ea1836a330681443e241"><td class="memSeparator" colspan="2">&#160;</td></tr>
679 <tr class="memitem:a8d2f715c23be7e55ca35697e88fe6672"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a8d2f715c23be7e55ca35697e88fe6672">unflatten</a> () const</td></tr>
680 <tr class="memdesc:a8d2f715c23be7e55ca35697e88fe6672"><td class="mdescLeft">&#160;</td><td class="mdescRight">unflatten a previously flattened JSON value  <a href="#a8d2f715c23be7e55ca35697e88fe6672">More...</a><br /></td></tr>
681 <tr class="separator:a8d2f715c23be7e55ca35697e88fe6672"><td class="memSeparator" colspan="2">&#160;</td></tr>
682 </table><table class="memberdecls">
683 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
684 JSON Patch functions</h2></td></tr>
685 <tr class="memitem:a2fb1e92221746ff32c5f5c8ff1e7a7f7"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a2fb1e92221746ff32c5f5c8ff1e7a7f7">diff</a> (const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &amp;source, const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &amp;target, const std::string &amp;path=&quot;&quot;)</td></tr>
686 <tr class="memdesc:a2fb1e92221746ff32c5f5c8ff1e7a7f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">creates a diff as a JSON patch  <a href="#a2fb1e92221746ff32c5f5c8ff1e7a7f7">More...</a><br /></td></tr>
687 <tr class="separator:a2fb1e92221746ff32c5f5c8ff1e7a7f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
688 <tr class="memitem:a614dd03ce3e99e79c52bedcf55945645"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnlohmann_1_1basic__json.html#a614dd03ce3e99e79c52bedcf55945645">patch</a> (const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> &amp;json_patch) const</td></tr>
689 <tr class="memdesc:a614dd03ce3e99e79c52bedcf55945645"><td class="mdescLeft">&#160;</td><td class="mdescRight">applies a JSON patch  <a href="#a614dd03ce3e99e79c52bedcf55945645">More...</a><br /></td></tr>
690 <tr class="separator:a614dd03ce3e99e79c52bedcf55945645"><td class="memSeparator" colspan="2">&#160;</td></tr>
691 </table>
692 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
693 <div class="textblock"><h3>template&lt;template&lt; typename U, typename V, typename... Args &gt; class ObjectType = std::map, template&lt; typename U, typename... Args &gt; class ArrayType = std::vector, class StringType = std::string, class BooleanType = bool, class NumberIntegerType = std::int64_t, class NumberUnsignedType = std::uint64_t, class NumberFloatType = double, template&lt; typename U &gt; class AllocatorType = std::allocator, template&lt; typename T, typename SFINAE=void &gt; class JSONSerializer = adl_serializer&gt;<br />
694 class nlohmann::basic_json&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt;</h3>
695
696 <p>a class to store JSON values </p>
697 <dl class="tparams"><dt>Template Parameters</dt><dd>
698   <table class="tparams">
699     <tr><td class="paramname">ObjectType</td><td>type for JSON objects (<code>std::map</code> by default; will be used in <a class="el" href="classnlohmann_1_1basic__json.html#a143db8a40359a56372e21a8feea66454">object_t</a>) </td></tr>
700     <tr><td class="paramname">ArrayType</td><td>type for JSON arrays (<code>std::vector</code> by default; will be used in <a class="el" href="classnlohmann_1_1basic__json.html#a289ffe7b795d293d233d03cfc60bcd15">array_t</a>) </td></tr>
701     <tr><td class="paramname">StringType</td><td>type for JSON strings and object keys (<code>std::string</code> by default; will be used in <a class="el" href="classnlohmann_1_1basic__json.html#aeacc0aa4079b56866238b8845928c2b7">string_t</a>) </td></tr>
702     <tr><td class="paramname">BooleanType</td><td>type for JSON booleans (<code>bool</code> by default; will be used in <a class="el" href="classnlohmann_1_1basic__json.html#a8fc151a08d12d6ca47c54458703e573f">boolean_t</a>) </td></tr>
703     <tr><td class="paramname">NumberIntegerType</td><td>type for JSON integer numbers (<code>int64_t</code> by default; will be used in <a class="el" href="classnlohmann_1_1basic__json.html#a4bd9b6d54deaadefc43b5c536062b792">number_integer_t</a>) </td></tr>
704     <tr><td class="paramname">NumberUnsignedType</td><td>type for JSON unsigned integer numbers (<code><code>uint64_t</code></code> by default; will be used in <a class="el" href="classnlohmann_1_1basic__json.html#a915185d4413599516b85993e6baaca73">number_unsigned_t</a>) </td></tr>
705     <tr><td class="paramname">NumberFloatType</td><td>type for JSON floating-point numbers (<code>double</code> by default; will be used in <a class="el" href="classnlohmann_1_1basic__json.html#aa43a00a590f6ce46ee8ced69513ee4ef">number_float_t</a>) </td></tr>
706     <tr><td class="paramname">AllocatorType</td><td>type of the allocator to use (<code>std::allocator</code> by default) </td></tr>
707     <tr><td class="paramname">JSONSerializer</td><td>the serializer to resolve internal calls to <code><a class="el" href="namespacenlohmann_1_1detail.html#a6fa2f784014bfc0b62d7a35d51e676c9">to_json()</a></code> and <code><a class="el" href="namespacenlohmann_1_1detail.html#a839b0ab50d2c9bce669068f56bc41202">from_json()</a></code> (<a class="el" href="structnlohmann_1_1adl__serializer.html">adl_serializer</a> by default)</td></tr>
708   </table>
709   </dd>
710 </dl>
711 <p>The class satisfies the following concept requirements:</p><ul>
712 <li>Basic<ul>
713 <li><a href="http://en.cppreference.com/w/cpp/concept/DefaultConstructible">DefaultConstructible</a>: JSON values can be default constructed. The result will be a JSON null value.</li>
714 <li><a href="http://en.cppreference.com/w/cpp/concept/MoveConstructible">MoveConstructible</a>: A JSON value can be constructed from an rvalue argument.</li>
715 <li><a href="http://en.cppreference.com/w/cpp/concept/CopyConstructible">CopyConstructible</a>: A JSON value can be copy-constructed from an lvalue expression.</li>
716 <li><a href="http://en.cppreference.com/w/cpp/concept/MoveAssignable">MoveAssignable</a>: A JSON value van be assigned from an rvalue argument.</li>
717 <li><a href="http://en.cppreference.com/w/cpp/concept/CopyAssignable">CopyAssignable</a>: A JSON value can be copy-assigned from an lvalue expression.</li>
718 <li><a href="http://en.cppreference.com/w/cpp/concept/Destructible">Destructible</a>: JSON values can be destructed.</li>
719 </ul>
720 </li>
721 <li>Layout<ul>
722 <li><a href="http://en.cppreference.com/w/cpp/concept/StandardLayoutType">StandardLayoutType</a>: JSON values have <a href="http://en.cppreference.com/w/cpp/language/data_members#Standard_layout">standard layout</a>: All non-static data members are private and standard layout types, the class has no virtual functions or (virtual) base classes.</li>
723 </ul>
724 </li>
725 <li>Library-wide<ul>
726 <li><a href="http://en.cppreference.com/w/cpp/concept/EqualityComparable">EqualityComparable</a>: JSON values can be compared with <code>==</code>, see <a class="el" href="classnlohmann_1_1basic__json.html#a122640e7e2db1814fc7bbb3c122ec76e">operator==(const_reference,const_reference)</a>.</li>
727 <li><a href="http://en.cppreference.com/w/cpp/concept/LessThanComparable">LessThanComparable</a>: JSON values can be compared with <code>&lt;</code>, see <a class="el" href="classnlohmann_1_1basic__json.html#aacd442b66140c764c594ac8ad7dfd5b3">operator&lt;(const_reference,const_reference)</a>.</li>
728 <li><a href="http://en.cppreference.com/w/cpp/concept/Swappable">Swappable</a>: Any JSON lvalue or rvalue of can be swapped with any lvalue or rvalue of other compatible types, using unqualified function call <a class="el" href="classnlohmann_1_1basic__json.html#a0f6968dcb6461353787d510aaa671b61">swap()</a>.</li>
729 <li><a href="http://en.cppreference.com/w/cpp/concept/NullablePointer">NullablePointer</a>: JSON values can be compared against <code>std::nullptr_t</code> objects which are used to model the <code>null</code> value.</li>
730 </ul>
731 </li>
732 <li>Container<ul>
733 <li><a href="http://en.cppreference.com/w/cpp/concept/Container">Container</a>: JSON values can be used like STL containers and provide iterator access.</li>
734 <li><a href="http://en.cppreference.com/w/cpp/concept/ReversibleContainer">ReversibleContainer</a>; JSON values can be used like STL containers and provide reverse iterator access.</li>
735 </ul>
736 </li>
737 </ul>
738 <dl class="section invariant"><dt>Invariant</dt><dd>The member variables <em>m_value</em> and <em>m_type</em> have the following relationship:<ul>
739 <li>If <code>m_type == <a class="el" href="namespacenlohmann_1_1detail.html#aedb3045c82a17d48de0f030229adbffeaa8cfde6331bd59eb2ac96f8911c4b666" title="object (unordered set of name/value pairs) ">value_t::object</a></code>, then <code>m_value.object != nullptr</code>.</li>
740 <li>If <code>m_type == <a class="el" href="namespacenlohmann_1_1detail.html#aedb3045c82a17d48de0f030229adbffeaf1f713c9e000f5d3f280adbd124df4f5" title="array (ordered collection of values) ">value_t::array</a></code>, then <code>m_value.array != nullptr</code>.</li>
741 <li>If <code>m_type == <a class="el" href="namespacenlohmann_1_1detail.html#aedb3045c82a17d48de0f030229adbffeab45cffe084dd3d20d928bee85e7b0f21" title="string value ">value_t::string</a></code>, then <code>m_value.string != nullptr</code>. The invariants are checked by member function assert_invariant().</li>
742 </ul>
743 </dd></dl>
744 <dl class="section see"><dt>See also</dt><dd><a href="http://rfc7159.net/rfc7159">RFC 7159: The JavaScript Object Notation (JSON) Data Interchange Format</a></dd></dl>
745 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
746
747 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01016">1016</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
748 </div><h2 class="groupheader">Member Typedef Documentation</h2>
749 <a id="ac2ba7cdee02c8dca32097093847cef4a"></a>
750 <h2 class="memtitle"><span class="permalink"><a href="#ac2ba7cdee02c8dca32097093847cef4a">&#9670;&nbsp;</a></span>allocator_type</h2>
751
752 <div class="memitem">
753 <div class="memproto">
754       <table class="memname">
755         <tr>
756           <td class="memname">using <a class="el" href="classnlohmann_1_1basic__json.html#ac2ba7cdee02c8dca32097093847cef4a">allocator_type</a> =  AllocatorType&lt;<a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&gt;</td>
757         </tr>
758       </table>
759 </div><div class="memdoc">
760
761 <p>the allocator type </p>
762
763 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01057">1057</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
764
765 </div>
766 </div>
767 <a id="a289ffe7b795d293d233d03cfc60bcd15"></a>
768 <h2 class="memtitle"><span class="permalink"><a href="#a289ffe7b795d293d233d03cfc60bcd15">&#9670;&nbsp;</a></span>array_t</h2>
769
770 <div class="memitem">
771 <div class="memproto">
772       <table class="memname">
773         <tr>
774           <td class="memname">using <a class="el" href="classnlohmann_1_1basic__json.html#a289ffe7b795d293d233d03cfc60bcd15">array_t</a> =  ArrayType&lt;<a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>, AllocatorType&lt;<a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&gt; &gt;</td>
775         </tr>
776       </table>
777 </div><div class="memdoc">
778
779 <p>a type for an array </p>
780 <p><a href="http://rfc7159.net/rfc7159">RFC 7159</a> describes JSON arrays as follows: </p><blockquote class="doxtable">
781 <p>An array is an ordered sequence of zero or more values. </p>
782 </blockquote>
783 <p>To store objects in C++, a type is defined by the template parameters explained below.</p>
784 <dl class="tparams"><dt>Template Parameters</dt><dd>
785   <table class="tparams">
786     <tr><td class="paramname">ArrayType</td><td>container type to store arrays (e.g., <code>std::vector</code> or <code>std::list</code>) </td></tr>
787     <tr><td class="paramname">AllocatorType</td><td>allocator to use for arrays (e.g., <code>std::allocator</code>)</td></tr>
788   </table>
789   </dd>
790 </dl>
791 <h4>Default type</h4>
792 <p>With the default values for <em>ArrayType</em> (<code>std::vector</code>) and <em>AllocatorType</em> (<code>std::allocator</code>), the default value for <em>array_t</em> is:</p>
793 <div class="fragment"><div class="line">std::vector&lt;</div><div class="line">  <a class="code" href="classnlohmann_1_1basic__json.html#af2ec44358263a76e8289454bd0514f69">basic_json</a>, <span class="comment">// value_type</span></div><div class="line">  std::allocator&lt;basic_json&gt; <span class="comment">// allocator_type</span></div><div class="line">&gt;</div></div><!-- fragment --><h4>Limits</h4>
794 <p><a href="http://rfc7159.net/rfc7159">RFC 7159</a> specifies: </p><blockquote class="doxtable">
795 <p>An implementation may set limits on the maximum depth of nesting. </p>
796 </blockquote>
797 <p>In this class, the array's limit of nesting is not constraint explicitly. However, a maximum depth of nesting may be introduced by the compiler or runtime environment. A theoretical limit can be queried by calling the <a class="el" href="classnlohmann_1_1basic__json.html#ac2a85e463df4e95c1bf051cfb8237805">max_size</a> function of a JSON array.</p>
798 <h4>Storage</h4>
799 <p>Arrays are stored as pointers in a <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> type. That is, for any access to array values, a pointer of type <code>array_t*</code> must be dereferenced.</p>
800 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a143db8a40359a56372e21a8feea66454">object_t</a> &ndash; <a class="el" href="classnlohmann_1_1basic__json.html#adb8999aa40f92f1a176d8b43dc0ab25b" title="return the type of the JSON value (explicit) ">type</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> an <a class="el" href="classnlohmann_1_1basic__json.html#a6955fcba671f39d7d04164ef034aada8" title="explicitly create an object from an initializer list ">object</a> <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a></dd></dl>
801 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
802
803 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01305">1305</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
804
805 </div>
806 </div>
807 <a id="a8fc151a08d12d6ca47c54458703e573f"></a>
808 <h2 class="memtitle"><span class="permalink"><a href="#a8fc151a08d12d6ca47c54458703e573f">&#9670;&nbsp;</a></span>boolean_t</h2>
809
810 <div class="memitem">
811 <div class="memproto">
812       <table class="memname">
813         <tr>
814           <td class="memname">using <a class="el" href="classnlohmann_1_1basic__json.html#a8fc151a08d12d6ca47c54458703e573f">boolean_t</a> =  BooleanType</td>
815         </tr>
816       </table>
817 </div><div class="memdoc">
818
819 <p>a type for a boolean </p>
820 <p><a href="http://rfc7159.net/rfc7159">RFC 7159</a> implicitly describes a boolean as a type which differentiates the two literals <code>true</code> and <code>false</code>.</p>
821 <p>To store objects in C++, a type is defined by the template parameter <em>BooleanType</em> which chooses the type to use.</p>
822 <h4>Default type</h4>
823 <p>With the default values for <em>BooleanType</em> (<code>bool</code>), the default value for <em>boolean_t</em> is:</p>
824 <div class="fragment"><div class="line"><span class="keywordtype">bool</span></div></div><!-- fragment --><h4>Storage</h4>
825 <p>Boolean values are stored directly inside a <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> type.</p>
826 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
827
828 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01384">1384</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
829
830 </div>
831 </div>
832 <a id="aad59084c30e18d9f72bbeaea04b69c08"></a>
833 <h2 class="memtitle"><span class="permalink"><a href="#aad59084c30e18d9f72bbeaea04b69c08">&#9670;&nbsp;</a></span>const_iterator</h2>
834
835 <div class="memitem">
836 <div class="memproto">
837       <table class="memname">
838         <tr>
839           <td class="memname">using <a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a> =  <a class="el" href="classnlohmann_1_1basic__json_1_1iter__impl.html">iter_impl</a>&lt;const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&gt;</td>
840         </tr>
841       </table>
842 </div><div class="memdoc">
843
844 <p>a const iterator for a <a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a> container </p>
845
846 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01067">1067</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
847
848 </div>
849 </div>
850 <a id="a4c63dc62d030308ff89f0327e752c5e2"></a>
851 <h2 class="memtitle"><span class="permalink"><a href="#a4c63dc62d030308ff89f0327e752c5e2">&#9670;&nbsp;</a></span>const_pointer</h2>
852
853 <div class="memitem">
854 <div class="memproto">
855       <table class="memname">
856         <tr>
857           <td class="memname">using <a class="el" href="classnlohmann_1_1basic__json.html#a4c63dc62d030308ff89f0327e752c5e2">const_pointer</a> =  typename std::allocator_traits&lt;<a class="el" href="classnlohmann_1_1basic__json.html#ac2ba7cdee02c8dca32097093847cef4a">allocator_type</a>&gt;::<a class="el" href="classnlohmann_1_1basic__json.html#a4c63dc62d030308ff89f0327e752c5e2">const_pointer</a></td>
858         </tr>
859       </table>
860 </div><div class="memdoc">
861
862 <p>the type of an element const pointer </p>
863
864 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01062">1062</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
865
866 </div>
867 </div>
868 <a id="ab1137da269e66589b98fce3416d40502"></a>
869 <h2 class="memtitle"><span class="permalink"><a href="#ab1137da269e66589b98fce3416d40502">&#9670;&nbsp;</a></span>const_reference</h2>
870
871 <div class="memitem">
872 <div class="memproto">
873       <table class="memname">
874         <tr>
875           <td class="memname">using <a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> =  const <a class="el" href="classnlohmann_1_1basic__json.html#a6266b89788d56d4601b357b9bf3b06d5">value_type</a>&amp;</td>
876         </tr>
877       </table>
878 </div><div class="memdoc">
879
880 <p>the type of an element const reference </p>
881
882 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01049">1049</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
883
884 </div>
885 </div>
886 <a id="a80e93f4899e95d7ba9f80df4c423b9d5"></a>
887 <h2 class="memtitle"><span class="permalink"><a href="#a80e93f4899e95d7ba9f80df4c423b9d5">&#9670;&nbsp;</a></span>const_reverse_iterator</h2>
888
889 <div class="memitem">
890 <div class="memproto">
891       <table class="memname">
892         <tr>
893           <td class="memname">using <a class="el" href="classnlohmann_1_1basic__json.html#a80e93f4899e95d7ba9f80df4c423b9d5">const_reverse_iterator</a> =  <a class="el" href="classnlohmann_1_1basic__json_1_1json__reverse__iterator.html">json_reverse_iterator</a>&lt;typename <a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">basic_json::const_iterator</a>&gt;</td>
894         </tr>
895       </table>
896 </div><div class="memdoc">
897
898 <p>a const reverse iterator for a <a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a> container </p>
899
900 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01071">1071</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
901
902 </div>
903 </div>
904 <a id="ace405568d0b2f3fad4990044252c7732"></a>
905 <h2 class="memtitle"><span class="permalink"><a href="#ace405568d0b2f3fad4990044252c7732">&#9670;&nbsp;</a></span>difference_type</h2>
906
907 <div class="memitem">
908 <div class="memproto">
909       <table class="memname">
910         <tr>
911           <td class="memname">using <a class="el" href="classnlohmann_1_1basic__json.html#ace405568d0b2f3fad4990044252c7732">difference_type</a> =  std::ptrdiff_t</td>
912         </tr>
913       </table>
914 </div><div class="memdoc">
915
916 <p>a type to represent differences between iterators </p>
917
918 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01052">1052</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
919
920 </div>
921 </div>
922 <a id="a241034c44708fd20925e6ae18efcfb56"></a>
923 <h2 class="memtitle"><span class="permalink"><a href="#a241034c44708fd20925e6ae18efcfb56">&#9670;&nbsp;</a></span>iterator</h2>
924
925 <div class="memitem">
926 <div class="memproto">
927       <table class="memname">
928         <tr>
929           <td class="memname">using <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">iterator</a> =  <a class="el" href="classnlohmann_1_1basic__json_1_1iter__impl.html">iter_impl</a>&lt;<a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&gt;</td>
930         </tr>
931       </table>
932 </div><div class="memdoc">
933
934 <p>an iterator for a <a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a> container </p>
935
936 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01065">1065</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
937
938 </div>
939 </div>
940 <a id="a0529ada731a19a6860d72dd7ca888271"></a>
941 <h2 class="memtitle"><span class="permalink"><a href="#a0529ada731a19a6860d72dd7ca888271">&#9670;&nbsp;</a></span>json_serializer</h2>
942
943 <div class="memitem">
944 <div class="memproto">
945       <table class="memname">
946         <tr>
947           <td class="memname">using <a class="el" href="classnlohmann_1_1basic__json.html#a0529ada731a19a6860d72dd7ca888271">json_serializer</a> =  JSONSerializer&lt;T, SFINAE&gt;</td>
948         </tr>
949       </table>
950 </div><div class="memdoc">
951
952 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01032">1032</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
953
954 </div>
955 </div>
956 <a id="aa43a00a590f6ce46ee8ced69513ee4ef"></a>
957 <h2 class="memtitle"><span class="permalink"><a href="#aa43a00a590f6ce46ee8ced69513ee4ef">&#9670;&nbsp;</a></span>number_float_t</h2>
958
959 <div class="memitem">
960 <div class="memproto">
961       <table class="memname">
962         <tr>
963           <td class="memname">using <a class="el" href="classnlohmann_1_1basic__json.html#aa43a00a590f6ce46ee8ced69513ee4ef">number_float_t</a> =  NumberFloatType</td>
964         </tr>
965       </table>
966 </div><div class="memdoc">
967
968 <p>a type for a number (floating-point) </p>
969 <p><a href="http://rfc7159.net/rfc7159">RFC 7159</a> describes numbers as follows: </p><blockquote class="doxtable">
970 <p>The representation of numbers is similar to that used in most programming languages. A number is represented in base 10 using decimal digits. It contains an integer component that may be prefixed with an optional minus sign, which may be followed by a fraction part and/or an exponent part. Leading zeros are not allowed. (...) Numeric values that cannot be represented in the grammar below (such as Infinity and NaN) are not permitted. </p>
971 </blockquote>
972 <p>This description includes both integer and floating-point numbers. However, C++ allows more precise storage if it is known whether the number is a signed integer, an unsigned integer or a floating-point number. Therefore, three different types, <a class="el" href="classnlohmann_1_1basic__json.html#a4bd9b6d54deaadefc43b5c536062b792">number_integer_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a915185d4413599516b85993e6baaca73">number_unsigned_t</a> and <a class="el" href="classnlohmann_1_1basic__json.html#aa43a00a590f6ce46ee8ced69513ee4ef">number_float_t</a> are used.</p>
973 <p>To store floating-point numbers in C++, a type is defined by the template parameter <em>NumberFloatType</em> which chooses the type to use.</p>
974 <h4>Default type</h4>
975 <p>With the default values for <em>NumberFloatType</em> (<code>double</code>), the default value for <em>number_float_t</em> is:</p>
976 <div class="fragment"><div class="line"><span class="keywordtype">double</span></div></div><!-- fragment --><h4>Default behavior</h4>
977 <ul>
978 <li>The restrictions about leading zeros is not enforced in C++. Instead, leading zeros in floating-point literals will be ignored. Internally, the value will be stored as decimal number. For instance, the C++ floating-point literal <code>01.2</code> will be serialized to <code>1.2</code>. During deserialization, leading zeros yield an error.</li>
979 <li>Not-a-number (NaN) values will be serialized to <code>null</code>.</li>
980 </ul>
981 <h4>Limits</h4>
982 <p><a href="http://rfc7159.net/rfc7159">RFC 7159</a> states: </p><blockquote class="doxtable">
983 <p>This specification allows implementations to set limits on the range and precision of numbers accepted. Since software that implements IEEE 754-2008 binary64 (double precision) numbers is generally available and widely used, good interoperability can be achieved by implementations that expect no more precision or range than these provide, in the sense that implementations will approximate JSON numbers within the expected precision. </p>
984 </blockquote>
985 <p>This implementation does exactly follow this approach, as it uses double precision floating-point numbers. Note values smaller than <code>-1.79769313486232e+308</code> and values greater than <code>1.79769313486232e+308</code> will be stored as NaN internally and be serialized to <code>null</code>.</p>
986 <h4>Storage</h4>
987 <p>Floating-point number values are stored directly inside a <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> type.</p>
988 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a4bd9b6d54deaadefc43b5c536062b792">number_integer_t</a> &ndash; <a class="el" href="classnlohmann_1_1basic__json.html#adb8999aa40f92f1a176d8b43dc0ab25b" title="return the type of the JSON value (explicit) ">type</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> number values (integer)</dd>
989 <dd>
990 <a class="el" href="classnlohmann_1_1basic__json.html#a915185d4413599516b85993e6baaca73">number_unsigned_t</a> &ndash; <a class="el" href="classnlohmann_1_1basic__json.html#adb8999aa40f92f1a176d8b43dc0ab25b" title="return the type of the JSON value (explicit) ">type</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> number values (unsigned integer)</dd></dl>
991 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
992
993 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01595">1595</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
994
995 </div>
996 </div>
997 <a id="a4bd9b6d54deaadefc43b5c536062b792"></a>
998 <h2 class="memtitle"><span class="permalink"><a href="#a4bd9b6d54deaadefc43b5c536062b792">&#9670;&nbsp;</a></span>number_integer_t</h2>
999
1000 <div class="memitem">
1001 <div class="memproto">
1002       <table class="memname">
1003         <tr>
1004           <td class="memname">using <a class="el" href="classnlohmann_1_1basic__json.html#a4bd9b6d54deaadefc43b5c536062b792">number_integer_t</a> =  NumberIntegerType</td>
1005         </tr>
1006       </table>
1007 </div><div class="memdoc">
1008
1009 <p>a type for a number (integer) </p>
1010 <p><a href="http://rfc7159.net/rfc7159">RFC 7159</a> describes numbers as follows: </p><blockquote class="doxtable">
1011 <p>The representation of numbers is similar to that used in most programming languages. A number is represented in base 10 using decimal digits. It contains an integer component that may be prefixed with an optional minus sign, which may be followed by a fraction part and/or an exponent part. Leading zeros are not allowed. (...) Numeric values that cannot be represented in the grammar below (such as Infinity and NaN) are not permitted. </p>
1012 </blockquote>
1013 <p>This description includes both integer and floating-point numbers. However, C++ allows more precise storage if it is known whether the number is a signed integer, an unsigned integer or a floating-point number. Therefore, three different types, <a class="el" href="classnlohmann_1_1basic__json.html#a4bd9b6d54deaadefc43b5c536062b792">number_integer_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a915185d4413599516b85993e6baaca73">number_unsigned_t</a> and <a class="el" href="classnlohmann_1_1basic__json.html#aa43a00a590f6ce46ee8ced69513ee4ef">number_float_t</a> are used.</p>
1014 <p>To store integer numbers in C++, a type is defined by the template parameter <em>NumberIntegerType</em> which chooses the type to use.</p>
1015 <h4>Default type</h4>
1016 <p>With the default values for <em>NumberIntegerType</em> (<code>int64_t</code>), the default value for <em>number_integer_t</em> is:</p>
1017 <div class="fragment"><div class="line">int64_t</div></div><!-- fragment --><h4>Default behavior</h4>
1018 <ul>
1019 <li>The restrictions about leading zeros is not enforced in C++. Instead, leading zeros in integer literals lead to an interpretation as octal number. Internally, the value will be stored as decimal number. For instance, the C++ integer literal <code>010</code> will be serialized to <code>8</code>. During deserialization, leading zeros yield an error.</li>
1020 <li>Not-a-number (NaN) values will be serialized to <code>null</code>.</li>
1021 </ul>
1022 <h4>Limits</h4>
1023 <p><a href="http://rfc7159.net/rfc7159">RFC 7159</a> specifies: </p><blockquote class="doxtable">
1024 <p>An implementation may set limits on the range and precision of numbers. </p>
1025 </blockquote>
1026 <p>When the default type is used, the maximal integer number that can be stored is <code>9223372036854775807</code> (INT64_MAX) and the minimal integer number that can be stored is <code>-9223372036854775808</code> (INT64_MIN). Integer numbers that are out of range will yield over/underflow when used in a constructor. During deserialization, too large or small integer numbers will be automatically be stored as <a class="el" href="classnlohmann_1_1basic__json.html#a915185d4413599516b85993e6baaca73">number_unsigned_t</a> or <a class="el" href="classnlohmann_1_1basic__json.html#aa43a00a590f6ce46ee8ced69513ee4ef">number_float_t</a>.</p>
1027 <p><a href="http://rfc7159.net/rfc7159">RFC 7159</a> further states: </p><blockquote class="doxtable">
1028 <p>Note that when such software is used, numbers that are integers and are in the range <img class="formulaInl" alt="$[-2^{53}+1, 2^{53}-1]$" src="form_0.png"/> are interoperable in the sense that implementations will agree exactly on their numeric values. </p>
1029 </blockquote>
1030 <p>As this range is a subrange of the exactly supported range [INT64_MIN, INT64_MAX], this class's integer type is interoperable.</p>
1031 <h4>Storage</h4>
1032 <p>Integer number values are stored directly inside a <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> type.</p>
1033 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#aa43a00a590f6ce46ee8ced69513ee4ef">number_float_t</a> &ndash; <a class="el" href="classnlohmann_1_1basic__json.html#adb8999aa40f92f1a176d8b43dc0ab25b" title="return the type of the JSON value (explicit) ">type</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> number values (floating-point)</dd>
1034 <dd>
1035 <a class="el" href="classnlohmann_1_1basic__json.html#a915185d4413599516b85993e6baaca73">number_unsigned_t</a> &ndash; <a class="el" href="classnlohmann_1_1basic__json.html#adb8999aa40f92f1a176d8b43dc0ab25b" title="return the type of the JSON value (explicit) ">type</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> number values (unsigned integer)</dd></dl>
1036 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
1037
1038 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01456">1456</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
1039
1040 </div>
1041 </div>
1042 <a id="a915185d4413599516b85993e6baaca73"></a>
1043 <h2 class="memtitle"><span class="permalink"><a href="#a915185d4413599516b85993e6baaca73">&#9670;&nbsp;</a></span>number_unsigned_t</h2>
1044
1045 <div class="memitem">
1046 <div class="memproto">
1047       <table class="memname">
1048         <tr>
1049           <td class="memname">using <a class="el" href="classnlohmann_1_1basic__json.html#a915185d4413599516b85993e6baaca73">number_unsigned_t</a> =  NumberUnsignedType</td>
1050         </tr>
1051       </table>
1052 </div><div class="memdoc">
1053
1054 <p>a type for a number (unsigned) </p>
1055 <p><a href="http://rfc7159.net/rfc7159">RFC 7159</a> describes numbers as follows: </p><blockquote class="doxtable">
1056 <p>The representation of numbers is similar to that used in most programming languages. A number is represented in base 10 using decimal digits. It contains an integer component that may be prefixed with an optional minus sign, which may be followed by a fraction part and/or an exponent part. Leading zeros are not allowed. (...) Numeric values that cannot be represented in the grammar below (such as Infinity and NaN) are not permitted. </p>
1057 </blockquote>
1058 <p>This description includes both integer and floating-point numbers. However, C++ allows more precise storage if it is known whether the number is a signed integer, an unsigned integer or a floating-point number. Therefore, three different types, <a class="el" href="classnlohmann_1_1basic__json.html#a4bd9b6d54deaadefc43b5c536062b792">number_integer_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a915185d4413599516b85993e6baaca73">number_unsigned_t</a> and <a class="el" href="classnlohmann_1_1basic__json.html#aa43a00a590f6ce46ee8ced69513ee4ef">number_float_t</a> are used.</p>
1059 <p>To store unsigned integer numbers in C++, a type is defined by the template parameter <em>NumberUnsignedType</em> which chooses the type to use.</p>
1060 <h4>Default type</h4>
1061 <p>With the default values for <em>NumberUnsignedType</em> (<code>uint64_t</code>), the default value for <em>number_unsigned_t</em> is:</p>
1062 <div class="fragment"><div class="line">uint64_t</div></div><!-- fragment --><h4>Default behavior</h4>
1063 <ul>
1064 <li>The restrictions about leading zeros is not enforced in C++. Instead, leading zeros in integer literals lead to an interpretation as octal number. Internally, the value will be stored as decimal number. For instance, the C++ integer literal <code>010</code> will be serialized to <code>8</code>. During deserialization, leading zeros yield an error.</li>
1065 <li>Not-a-number (NaN) values will be serialized to <code>null</code>.</li>
1066 </ul>
1067 <h4>Limits</h4>
1068 <p><a href="http://rfc7159.net/rfc7159">RFC 7159</a> specifies: </p><blockquote class="doxtable">
1069 <p>An implementation may set limits on the range and precision of numbers. </p>
1070 </blockquote>
1071 <p>When the default type is used, the maximal integer number that can be stored is <code>18446744073709551615</code> (UINT64_MAX) and the minimal integer number that can be stored is <code>0</code>. Integer numbers that are out of range will yield over/underflow when used in a constructor. During deserialization, too large or small integer numbers will be automatically be stored as <a class="el" href="classnlohmann_1_1basic__json.html#a4bd9b6d54deaadefc43b5c536062b792">number_integer_t</a> or <a class="el" href="classnlohmann_1_1basic__json.html#aa43a00a590f6ce46ee8ced69513ee4ef">number_float_t</a>.</p>
1072 <p><a href="http://rfc7159.net/rfc7159">RFC 7159</a> further states: </p><blockquote class="doxtable">
1073 <p>Note that when such software is used, numbers that are integers and are in the range <img class="formulaInl" alt="$[-2^{53}+1, 2^{53}-1]$" src="form_0.png"/> are interoperable in the sense that implementations will agree exactly on their numeric values. </p>
1074 </blockquote>
1075 <p>As this range is a subrange (when considered in conjunction with the number_integer_t type) of the exactly supported range [0, UINT64_MAX], this class's integer type is interoperable.</p>
1076 <h4>Storage</h4>
1077 <p>Integer number values are stored directly inside a <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> type.</p>
1078 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#aa43a00a590f6ce46ee8ced69513ee4ef">number_float_t</a> &ndash; <a class="el" href="classnlohmann_1_1basic__json.html#adb8999aa40f92f1a176d8b43dc0ab25b" title="return the type of the JSON value (explicit) ">type</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> number values (floating-point) </dd>
1079 <dd>
1080 <a class="el" href="classnlohmann_1_1basic__json.html#a4bd9b6d54deaadefc43b5c536062b792">number_integer_t</a> &ndash; <a class="el" href="classnlohmann_1_1basic__json.html#adb8999aa40f92f1a176d8b43dc0ab25b" title="return the type of the JSON value (explicit) ">type</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> number values (integer)</dd></dl>
1081 <dl class="section since"><dt>Since</dt><dd>version 2.0.0 </dd></dl>
1082
1083 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01527">1527</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
1084
1085 </div>
1086 </div>
1087 <a id="a143db8a40359a56372e21a8feea66454"></a>
1088 <h2 class="memtitle"><span class="permalink"><a href="#a143db8a40359a56372e21a8feea66454">&#9670;&nbsp;</a></span>object_t</h2>
1089
1090 <div class="memitem">
1091 <div class="memproto">
1092       <table class="memname">
1093         <tr>
1094           <td class="memname">using <a class="el" href="classnlohmann_1_1basic__json.html#a143db8a40359a56372e21a8feea66454">object_t</a> =  ObjectType&lt;StringType, <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>, std::less&lt;StringType&gt;, AllocatorType&lt;std::pair&lt;const StringType, <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&gt; &gt;&gt;</td>
1095         </tr>
1096       </table>
1097 </div><div class="memdoc">
1098
1099 <p>a type for an object </p>
1100 <p><a href="http://rfc7159.net/rfc7159">RFC 7159</a> describes JSON objects as follows: </p><blockquote class="doxtable">
1101 <p>An object is an unordered collection of zero or more name/value pairs, where a name is a string and a value is a string, number, boolean, null, object, or array. </p>
1102 </blockquote>
1103 <p>To store objects in C++, a type is defined by the template parameters described below.</p>
1104 <dl class="tparams"><dt>Template Parameters</dt><dd>
1105   <table class="tparams">
1106     <tr><td class="paramname">ObjectType</td><td>the container to store objects (e.g., <code>std::map</code> or <code>std::unordered_map</code>) </td></tr>
1107     <tr><td class="paramname">StringType</td><td>the type of the keys or names (e.g., <code>std::string</code>). The comparison function <code>std::less&lt;StringType&gt;</code> is used to order elements inside the container. </td></tr>
1108     <tr><td class="paramname">AllocatorType</td><td>the allocator to use for objects (e.g., <code>std::allocator</code>)</td></tr>
1109   </table>
1110   </dd>
1111 </dl>
1112 <h4>Default type</h4>
1113 <p>With the default values for <em>ObjectType</em> (<code>std::map</code>), <em>StringType</em> (<code>std::string</code>), and <em>AllocatorType</em> (<code>std::allocator</code>), the default value for <em>object_t</em> is:</p>
1114 <div class="fragment"><div class="line">std::map&lt;</div><div class="line">  std::string, <span class="comment">// key_type</span></div><div class="line">  <a class="code" href="classnlohmann_1_1basic__json.html#af2ec44358263a76e8289454bd0514f69">basic_json</a>, <span class="comment">// value_type</span></div><div class="line">  std::less&lt;std::string&gt;, <span class="comment">// key_compare</span></div><div class="line">  std::allocator&lt;std::pair&lt;const std::string, basic_json&gt;&gt; <span class="comment">// allocator_type</span></div><div class="line">&gt;</div></div><!-- fragment --><h4>Behavior</h4>
1115 <p>The choice of <em>object_t</em> influences the behavior of the JSON class. With the default type, objects have the following behavior:</p>
1116 <ul>
1117 <li>When all names are unique, objects will be interoperable in the sense that all software implementations receiving that object will agree on the name-value mappings.</li>
1118 <li>When the names within an object are not unique, later stored name/value pairs overwrite previously stored name/value pairs, leaving the used names unique. For instance, <code>{"key": 1}</code> and <code>{"key": 2, "key": 1}</code> will be treated as equal and both stored as <code>{"key": 1}</code>.</li>
1119 <li>Internally, name/value pairs are stored in lexicographical order of the names. Objects will also be serialized (see <a class="el" href="classnlohmann_1_1basic__json.html#a42de62d3e7b710d0279ac373a22c63eb">dump</a>) in this order. For instance, <code>{"b": 1, "a": 2}</code> and <code>{"a": 2, "b": 1}</code> will be stored and serialized as <code>{"a": 2, "b": 1}</code>.</li>
1120 <li>When comparing objects, the order of the name/value pairs is irrelevant. This makes objects interoperable in the sense that they will not be affected by these differences. For instance, <code>{"b": 1, "a": 2}</code> and <code>{"a": 2, "b": 1}</code> will be treated as equal.</li>
1121 </ul>
1122 <h4>Limits</h4>
1123 <p><a href="http://rfc7159.net/rfc7159">RFC 7159</a> specifies: </p><blockquote class="doxtable">
1124 <p>An implementation may set limits on the maximum depth of nesting. </p>
1125 </blockquote>
1126 <p>In this class, the object's limit of nesting is not constraint explicitly. However, a maximum depth of nesting may be introduced by the compiler or runtime environment. A theoretical limit can be queried by calling the <a class="el" href="classnlohmann_1_1basic__json.html#ac2a85e463df4e95c1bf051cfb8237805">max_size</a> function of a JSON object.</p>
1127 <h4>Storage</h4>
1128 <p>Objects are stored as pointers in a <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> type. That is, for any access to object values, a pointer of type <code>object_t*</code> must be dereferenced.</p>
1129 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a289ffe7b795d293d233d03cfc60bcd15">array_t</a> &ndash; <a class="el" href="classnlohmann_1_1basic__json.html#adb8999aa40f92f1a176d8b43dc0ab25b" title="return the type of the JSON value (explicit) ">type</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> an <a class="el" href="classnlohmann_1_1basic__json.html#a16bfbc9e705582cdf7e88affced6ca51" title="explicitly create an array from an initializer list ">array</a> <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a></dd></dl>
1130 <dl class="section since"><dt>Since</dt><dd>version 1.0.0</dd></dl>
1131 <dl class="section note"><dt>Note</dt><dd>The order name/value pairs are added to the object is <em>not</em> preserved by the library. Therefore, iterating an object may return name/value pairs in a different order than they were originally stored. In fact, keys will be traversed in alphabetical order as <code>std::map</code> with <code>std::less</code> is used by default. Please note this behavior conforms to <a href="http://rfc7159.net/rfc7159">RFC 7159</a>, because any order implements the specified "unordered" nature of JSON objects. </dd></dl>
1132
1133 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01259">1259</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
1134
1135 </div>
1136 </div>
1137 <a id="a8bcd7fb59f7978ccd8942605357fc28a"></a>
1138 <h2 class="memtitle"><span class="permalink"><a href="#a8bcd7fb59f7978ccd8942605357fc28a">&#9670;&nbsp;</a></span>parser_callback_t</h2>
1139
1140 <div class="memitem">
1141 <div class="memproto">
1142       <table class="memname">
1143         <tr>
1144           <td class="memname">using <a class="el" href="classnlohmann_1_1basic__json.html#a8bcd7fb59f7978ccd8942605357fc28a">parser_callback_t</a> =  std::function&lt;bool(int depth, <a class="el" href="classnlohmann_1_1basic__json.html#a284abb29079a3ece0b67d67da11da441">parse_event_t</a> event, <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&amp; parsed)&gt;</td>
1145         </tr>
1146       </table>
1147 </div><div class="memdoc">
1148
1149 <p>per-element parser callback type </p>
1150 <p>With a parser callback function, the result of parsing a JSON text can be influenced. When passed to <a class="el" href="classnlohmann_1_1basic__json.html#a59c8a7fee8883e55b4317dfd6cab4912">parse</a>(std::istream&amp;, const parser_callback_t) or <a class="el" href="classnlohmann_1_1basic__json.html#afa4d3c57e6fda1fce97025d155f5642f">parse(const CharT, const parser_callback_t)</a>, it is called on certain events (passed as <a class="el" href="classnlohmann_1_1basic__json.html#a284abb29079a3ece0b67d67da11da441">parse_event_t</a> via parameter <em>event</em>) with a set recursion depth <em>depth</em> and context JSON value <em>parsed</em>. The return value of the callback function is a boolean indicating whether the element that emitted the callback shall be kept or not.</p>
1151 <p>We distinguish six scenarios (determined by the event type) in which the callback function can be called. The following table describes the values of the parameters <em>depth</em>, <em>event</em>, and <em>parsed</em>.</p>
1152 <table class="doxtable">
1153 <tr>
1154 <th>parameter <em>event</em> </th><th>description </th><th>parameter <em>depth</em> </th><th>parameter <em>parsed</em>  </th></tr>
1155 <tr>
1156 <td><a class="el" href="classnlohmann_1_1basic__json.html#a284abb29079a3ece0b67d67da11da441ae73f17027cb0acbb537f29d0a6944b26" title="the parser read { and started to process a JSON object ">parse_event_t::object_start</a> </td><td>the parser read <code>{</code> and started to process a JSON object </td><td>depth of the parent of the JSON object </td><td>a JSON value with type discarded </td></tr>
1157 <tr>
1158 <td><a class="el" href="classnlohmann_1_1basic__json.html#a284abb29079a3ece0b67d67da11da441a3c6e0b8a9c15224a8228b9a98ca1531d" title="the parser read a key of a value in an object ">parse_event_t::key</a> </td><td>the parser read a key of a value in an object </td><td>depth of the currently parsed JSON object </td><td>a JSON string containing the key </td></tr>
1159 <tr>
1160 <td><a class="el" href="classnlohmann_1_1basic__json.html#a284abb29079a3ece0b67d67da11da441af63e2a2468a37aa4f394fcc3bcb8249c" title="the parser read } and finished processing a JSON object ">parse_event_t::object_end</a> </td><td>the parser read <code>}</code> and finished processing a JSON object </td><td>depth of the parent of the JSON object </td><td>the parsed JSON object </td></tr>
1161 <tr>
1162 <td><a class="el" href="classnlohmann_1_1basic__json.html#a284abb29079a3ece0b67d67da11da441aa4388a3d92419edbb1c6efd4d52461f3" title="the parser read [ and started to process a JSON array ">parse_event_t::array_start</a> </td><td>the parser read <code>[</code> and started to process a JSON array </td><td>depth of the parent of the JSON array </td><td>a JSON value with type discarded </td></tr>
1163 <tr>
1164 <td><a class="el" href="classnlohmann_1_1basic__json.html#a284abb29079a3ece0b67d67da11da441a49642fb732aa2e112188fba1f9d3ef7f" title="the parser read ] and finished processing a JSON array ">parse_event_t::array_end</a> </td><td>the parser read <code>]</code> and finished processing a JSON array </td><td>depth of the parent of the JSON array </td><td>the parsed JSON array </td></tr>
1165 <tr>
1166 <td><a class="el" href="classnlohmann_1_1basic__json.html#a284abb29079a3ece0b67d67da11da441a2063c1608d6e0baf80249c42e2be5804" title="the parser finished reading a JSON value ">parse_event_t::value</a> </td><td>the parser finished reading a JSON value </td><td>depth of the value </td><td>the parsed JSON value </td></tr>
1167 </table>
1168 <div class="image">
1169 <img src="callback_events.png" alt="callback_events.png"/>
1170 <div class="caption">
1171 Example when certain parse events are triggered</div></div>
1172 <p> Discarding a value (i.e., returning <code>false</code>) has different effects depending on the context in which function was called:</p>
1173 <ul>
1174 <li>Discarded values in structured types are skipped. That is, the parser will behave as if the discarded value was never read.</li>
1175 <li>In case a value outside a structured type is skipped, it is replaced with <code>null</code>. This case happens if the top-level element is skipped.</li>
1176 </ul>
1177 <dl class="params"><dt>Parameters</dt><dd>
1178   <table class="params">
1179     <tr><td class="paramdir">[in]</td><td class="paramname">depth</td><td>the depth of the recursion during parsing</td></tr>
1180     <tr><td class="paramdir">[in]</td><td class="paramname">event</td><td>an event of type parse_event_t indicating the context in the callback function has been called</td></tr>
1181     <tr><td class="paramdir">[in,out]</td><td class="paramname">parsed</td><td>the current intermediate parse result; note that writing to this value has no effect for <a class="el" href="classnlohmann_1_1basic__json.html#a284abb29079a3ece0b67d67da11da441a3c6e0b8a9c15224a8228b9a98ca1531d" title="the parser read a key of a value in an object ">parse_event_t::key</a> events</td></tr>
1182   </table>
1183   </dd>
1184 </dl>
1185 <dl class="section return"><dt>Returns</dt><dd>Whether the JSON value which called the function during parsing should be kept (<code>true</code>) or not (<code>false</code>). In the latter case, it is either skipped completely or replaced by an empty discarded object.</dd></dl>
1186 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#ad19ad3fa5d9a806c5018faa3cd0ed85c">parse(std::istream&amp;, parser_callback_t)</a> or <a class="el" href="classnlohmann_1_1basic__json.html#afa4d3c57e6fda1fce97025d155f5642f">parse(const CharT, const parser_callback_t)</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> examples</dd></dl>
1187 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
1188
1189 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01854">1854</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
1190
1191 </div>
1192 </div>
1193 <a id="a1e2c3fce980b34a87b95f41000e849cc"></a>
1194 <h2 class="memtitle"><span class="permalink"><a href="#a1e2c3fce980b34a87b95f41000e849cc">&#9670;&nbsp;</a></span>pointer</h2>
1195
1196 <div class="memitem">
1197 <div class="memproto">
1198       <table class="memname">
1199         <tr>
1200           <td class="memname">using <a class="el" href="classnlohmann_1_1basic__json.html#a1e2c3fce980b34a87b95f41000e849cc">pointer</a> =  typename std::allocator_traits&lt;<a class="el" href="classnlohmann_1_1basic__json.html#ac2ba7cdee02c8dca32097093847cef4a">allocator_type</a>&gt;::<a class="el" href="classnlohmann_1_1basic__json.html#a1e2c3fce980b34a87b95f41000e849cc">pointer</a></td>
1201         </tr>
1202       </table>
1203 </div><div class="memdoc">
1204
1205 <p>the type of an element pointer </p>
1206
1207 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01060">1060</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
1208
1209 </div>
1210 </div>
1211 <a id="a74202cdd96628bc49a756e5fc87d22de"></a>
1212 <h2 class="memtitle"><span class="permalink"><a href="#a74202cdd96628bc49a756e5fc87d22de">&#9670;&nbsp;</a></span>reference</h2>
1213
1214 <div class="memitem">
1215 <div class="memproto">
1216       <table class="memname">
1217         <tr>
1218           <td class="memname">using <a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a> =  <a class="el" href="classnlohmann_1_1basic__json.html#a6266b89788d56d4601b357b9bf3b06d5">value_type</a>&amp;</td>
1219         </tr>
1220       </table>
1221 </div><div class="memdoc">
1222
1223 <p>the type of an element reference </p>
1224
1225 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01047">1047</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
1226
1227 </div>
1228 </div>
1229 <a id="a44b6b974744b30149559c9dce91b92ec"></a>
1230 <h2 class="memtitle"><span class="permalink"><a href="#a44b6b974744b30149559c9dce91b92ec">&#9670;&nbsp;</a></span>reverse_iterator</h2>
1231
1232 <div class="memitem">
1233 <div class="memproto">
1234       <table class="memname">
1235         <tr>
1236           <td class="memname">using <a class="el" href="classnlohmann_1_1basic__json.html#a44b6b974744b30149559c9dce91b92ec">reverse_iterator</a> =  <a class="el" href="classnlohmann_1_1basic__json_1_1json__reverse__iterator.html">json_reverse_iterator</a>&lt;typename <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">basic_json::iterator</a>&gt;</td>
1237         </tr>
1238       </table>
1239 </div><div class="memdoc">
1240
1241 <p>a reverse iterator for a <a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a> container </p>
1242
1243 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01069">1069</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
1244
1245 </div>
1246 </div>
1247 <a id="af38ce1af42d538f410180c265518d4f0"></a>
1248 <h2 class="memtitle"><span class="permalink"><a href="#af38ce1af42d538f410180c265518d4f0">&#9670;&nbsp;</a></span>size_type</h2>
1249
1250 <div class="memitem">
1251 <div class="memproto">
1252       <table class="memname">
1253         <tr>
1254           <td class="memname">using <a class="el" href="classnlohmann_1_1basic__json.html#af38ce1af42d538f410180c265518d4f0">size_type</a> =  std::size_t</td>
1255         </tr>
1256       </table>
1257 </div><div class="memdoc">
1258
1259 <p>a type to represent container sizes </p>
1260
1261 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01054">1054</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
1262
1263 </div>
1264 </div>
1265 <a id="aeacc0aa4079b56866238b8845928c2b7"></a>
1266 <h2 class="memtitle"><span class="permalink"><a href="#aeacc0aa4079b56866238b8845928c2b7">&#9670;&nbsp;</a></span>string_t</h2>
1267
1268 <div class="memitem">
1269 <div class="memproto">
1270       <table class="memname">
1271         <tr>
1272           <td class="memname">using <a class="el" href="classnlohmann_1_1basic__json.html#aeacc0aa4079b56866238b8845928c2b7">string_t</a> =  StringType</td>
1273         </tr>
1274       </table>
1275 </div><div class="memdoc">
1276
1277 <p>a type for a string </p>
1278 <p><a href="http://rfc7159.net/rfc7159">RFC 7159</a> describes JSON strings as follows: </p><blockquote class="doxtable">
1279 <p>A string is a sequence of zero or more Unicode characters. </p>
1280 </blockquote>
1281 <p>To store objects in C++, a type is defined by the template parameter described below. Unicode values are split by the JSON class into byte-sized characters during deserialization.</p>
1282 <dl class="tparams"><dt>Template Parameters</dt><dd>
1283   <table class="tparams">
1284     <tr><td class="paramname">StringType</td><td>the container to store strings (e.g., <code>std::string</code>). Note this container is used for keys/names in objects, see <a class="el" href="classnlohmann_1_1basic__json.html#a143db8a40359a56372e21a8feea66454">object_t</a>.</td></tr>
1285   </table>
1286   </dd>
1287 </dl>
1288 <h4>Default type</h4>
1289 <p>With the default values for <em>StringType</em> (<code>std::string</code>), the default value for <em>string_t</em> is:</p>
1290 <div class="fragment"><div class="line">std::string</div></div><!-- fragment --><h4>Encoding</h4>
1291 <p>Strings are stored in UTF-8 encoding. Therefore, functions like <code>std::string::size()</code> or <code>std::string::length()</code> return the number of bytes in the string rather than the number of characters or glyphs.</p>
1292 <h4>String comparison</h4>
1293 <p><a href="http://rfc7159.net/rfc7159">RFC 7159</a> states: </p><blockquote class="doxtable">
1294 <p>Software implementations are typically required to test names of object members for equality. Implementations that transform the textual representation into sequences of Unicode code units and then perform the comparison numerically, code unit by code unit, are interoperable in the sense that implementations will agree in all cases on equality or inequality of two strings. For example, implementations that compare strings with escaped characters unconverted may incorrectly find that <code>"a\\b"</code> and <code>"a\u005Cb"</code> are not equal. </p>
1295 </blockquote>
1296 <p>This implementation is interoperable as it does compare strings code unit by code unit.</p>
1297 <h4>Storage</h4>
1298 <p>String values are stored as pointers in a <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> type. That is, for any access to string values, a pointer of type <code>string_t*</code> must be dereferenced.</p>
1299 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
1300
1301 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01358">1358</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
1302
1303 </div>
1304 </div>
1305 <a id="ace569a7a0433ec013c33c927453cb727"></a>
1306 <h2 class="memtitle"><span class="permalink"><a href="#ace569a7a0433ec013c33c927453cb727">&#9670;&nbsp;</a></span>value_t</h2>
1307
1308 <div class="memitem">
1309 <div class="memproto">
1310       <table class="memname">
1311         <tr>
1312           <td class="memname">using <a class="el" href="namespacenlohmann_1_1detail.html#aedb3045c82a17d48de0f030229adbffe">value_t</a> =  <a class="el" href="namespacenlohmann_1_1detail.html#aedb3045c82a17d48de0f030229adbffe">detail::value_t</a></td>
1313         </tr>
1314       </table>
1315 </div><div class="memdoc">
1316
1317 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01026">1026</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
1318
1319 </div>
1320 </div>
1321 <a id="a6266b89788d56d4601b357b9bf3b06d5"></a>
1322 <h2 class="memtitle"><span class="permalink"><a href="#a6266b89788d56d4601b357b9bf3b06d5">&#9670;&nbsp;</a></span>value_type</h2>
1323
1324 <div class="memitem">
1325 <div class="memproto">
1326       <table class="memname">
1327         <tr>
1328           <td class="memname">using <a class="el" href="classnlohmann_1_1basic__json.html#a6266b89788d56d4601b357b9bf3b06d5">value_type</a> =  <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a></td>
1329         </tr>
1330       </table>
1331 </div><div class="memdoc">
1332
1333 <p>the type of elements in a <a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a> container </p>
1334
1335 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01044">1044</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
1336
1337 </div>
1338 </div>
1339 <h2 class="groupheader">Member Enumeration Documentation</h2>
1340 <a id="a284abb29079a3ece0b67d67da11da441"></a>
1341 <h2 class="memtitle"><span class="permalink"><a href="#a284abb29079a3ece0b67d67da11da441">&#9670;&nbsp;</a></span>parse_event_t</h2>
1342
1343 <div class="memitem">
1344 <div class="memproto">
1345 <table class="mlabels">
1346   <tr>
1347   <td class="mlabels-left">
1348       <table class="memname">
1349         <tr>
1350           <td class="memname">enum <a class="el" href="classnlohmann_1_1basic__json.html#a284abb29079a3ece0b67d67da11da441">parse_event_t</a> : uint8_t</td>
1351         </tr>
1352       </table>
1353   </td>
1354   <td class="mlabels-right">
1355 <span class="mlabels"><span class="mlabel">strong</span></span>  </td>
1356   </tr>
1357 </table>
1358 </div><div class="memdoc">
1359
1360 <p>JSON callback events. </p>
1361 <p>This enumeration lists the parser events that can trigger calling a callback function of type <a class="el" href="classnlohmann_1_1basic__json.html#a8bcd7fb59f7978ccd8942605357fc28a">parser_callback_t</a> during parsing.</p>
1362 <div class="image">
1363 <img src="callback_events.png" alt="callback_events.png"/>
1364 <div class="caption">
1365 Example when certain parse events are triggered</div></div>
1366  <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
1367 <table class="fieldtable">
1368 <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a284abb29079a3ece0b67d67da11da441ae73f17027cb0acbb537f29d0a6944b26"></a>object_start&#160;</td><td class="fielddoc"><p>the parser read <code>{</code> and started to process a JSON object </p>
1369 </td></tr>
1370 <tr><td class="fieldname"><a id="a284abb29079a3ece0b67d67da11da441af63e2a2468a37aa4f394fcc3bcb8249c"></a>object_end&#160;</td><td class="fielddoc"><p>the parser read <code>}</code> and finished processing a JSON object </p>
1371 </td></tr>
1372 <tr><td class="fieldname"><a id="a284abb29079a3ece0b67d67da11da441aa4388a3d92419edbb1c6efd4d52461f3"></a>array_start&#160;</td><td class="fielddoc"><p>the parser read <code>[</code> and started to process a JSON array </p>
1373 </td></tr>
1374 <tr><td class="fieldname"><a id="a284abb29079a3ece0b67d67da11da441a49642fb732aa2e112188fba1f9d3ef7f"></a>array_end&#160;</td><td class="fielddoc"><p>the parser read <code>]</code> and finished processing a JSON array </p>
1375 </td></tr>
1376 <tr><td class="fieldname"><a id="a284abb29079a3ece0b67d67da11da441a3c6e0b8a9c15224a8228b9a98ca1531d"></a>key&#160;</td><td class="fielddoc"><p>the parser read a key of a value in an object </p>
1377 </td></tr>
1378 <tr><td class="fieldname"><a id="a284abb29079a3ece0b67d67da11da441a2063c1608d6e0baf80249c42e2be5804"></a>value&#160;</td><td class="fielddoc"><p>the parser finished reading a JSON value </p>
1379 </td></tr>
1380 </table>
1381
1382 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01784">1784</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
1383
1384 </div>
1385 </div>
1386 <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
1387 <a id="af2ec44358263a76e8289454bd0514f69"></a>
1388 <h2 class="memtitle"><span class="permalink"><a href="#af2ec44358263a76e8289454bd0514f69">&#9670;&nbsp;</a></span>basic_json() <span class="overload">[1/9]</span></h2>
1389
1390 <div class="memitem">
1391 <div class="memproto">
1392 <table class="mlabels">
1393   <tr>
1394   <td class="mlabels-left">
1395       <table class="memname">
1396         <tr>
1397           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> </td>
1398           <td>(</td>
1399           <td class="paramtype">const <a class="el" href="namespacenlohmann_1_1detail.html#aedb3045c82a17d48de0f030229adbffe">value_t</a>&#160;</td>
1400           <td class="paramname"><em>value_type</em></td><td>)</td>
1401           <td></td>
1402         </tr>
1403       </table>
1404   </td>
1405   <td class="mlabels-right">
1406 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1407   </tr>
1408 </table>
1409 </div><div class="memdoc">
1410
1411 <p>create an empty value with a given type </p>
1412 <p>Create an empty JSON value with a given type. The value will be default initialized with an empty value which depends on the type:</p>
1413 <table class="doxtable">
1414 <tr>
1415 <th>Value type </th><th>initial value  </th></tr>
1416 <tr>
1417 <td>null </td><td><code>null</code> </td></tr>
1418 <tr>
1419 <td>boolean </td><td><code>false</code> </td></tr>
1420 <tr>
1421 <td>string </td><td><code>""</code> </td></tr>
1422 <tr>
1423 <td>number </td><td><code>0</code> </td></tr>
1424 <tr>
1425 <td>object </td><td><code>{}</code> </td></tr>
1426 <tr>
1427 <td>array </td><td><code>[]</code> </td></tr>
1428 </table>
1429 <dl class="params"><dt>Parameters</dt><dd>
1430   <table class="params">
1431     <tr><td class="paramdir">[in]</td><td class="paramname">value_type</td><td>the type of the value to create</td></tr>
1432   </table>
1433   </dd>
1434 </dl>
1435 <p>Constant.</p>
1436 <dl class="exception"><dt>Exceptions</dt><dd>
1437   <table class="exception">
1438     <tr><td class="paramname">std::bad_alloc</td><td>if allocation for object, array, or string value fails</td></tr>
1439   </table>
1440   </dd>
1441 </dl>
1442 <p>{The following code shows the constructor for different <a class="el" href="classnlohmann_1_1basic__json.html#ace569a7a0433ec013c33c927453cb727">value_t</a> values,basic_json__value_t}</p>
1443 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
1444
1445 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01893">1893</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
1446
1447 </div>
1448 </div>
1449 <a id="a87c8001776394acd236550ac497556b3"></a>
1450 <h2 class="memtitle"><span class="permalink"><a href="#a87c8001776394acd236550ac497556b3">&#9670;&nbsp;</a></span>basic_json() <span class="overload">[2/9]</span></h2>
1451
1452 <div class="memitem">
1453 <div class="memproto">
1454 <table class="mlabels">
1455   <tr>
1456   <td class="mlabels-left">
1457       <table class="memname">
1458         <tr>
1459           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> </td>
1460           <td>(</td>
1461           <td class="paramtype">std::nullptr_t&#160;</td>
1462           <td class="paramname"> = <code>nullptr</code></td><td>)</td>
1463           <td></td>
1464         </tr>
1465       </table>
1466   </td>
1467   <td class="mlabels-right">
1468 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
1469   </tr>
1470 </table>
1471 </div><div class="memdoc">
1472
1473 <p>create a null object </p>
1474 <p>Create a <code>null</code> JSON value. It either takes a null pointer as parameter (explicitly creating <code>null</code>) or no parameter (implicitly creating <code>null</code>). The passed null pointer itself is not read &ndash; it is only used to choose the right constructor.</p>
1475 <p>Constant.</p>
1476 <p>No-throw guarantee: this constructor never throws exceptions.</p>
1477 <p>{The following code shows the constructor with and without a null pointer parameter.,basic_json__nullptr_t}</p>
1478 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
1479
1480 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01917">1917</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
1481
1482 </div>
1483 </div>
1484 <a id="a12cfdf59e8552b8604c71585e6dd32bc"></a>
1485 <h2 class="memtitle"><span class="permalink"><a href="#a12cfdf59e8552b8604c71585e6dd32bc">&#9670;&nbsp;</a></span>basic_json() <span class="overload">[3/9]</span></h2>
1486
1487 <div class="memitem">
1488 <div class="memproto">
1489 <table class="mlabels">
1490   <tr>
1491   <td class="mlabels-left">
1492       <table class="memname">
1493         <tr>
1494           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> </td>
1495           <td>(</td>
1496           <td class="paramtype">CompatibleType &amp;&amp;&#160;</td>
1497           <td class="paramname"><em>val</em></td><td>)</td>
1498           <td></td>
1499         </tr>
1500       </table>
1501   </td>
1502   <td class="mlabels-right">
1503 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
1504   </tr>
1505 </table>
1506 </div><div class="memdoc">
1507
1508 <p>create a JSON value </p>
1509 <p>This is a "catch all" constructor for all compatible JSON types; that is, types for which a <code><a class="el" href="namespacenlohmann_1_1detail.html#a6fa2f784014bfc0b62d7a35d51e676c9">to_json()</a></code> method exsits. The constructor forwards the parameter <em>val</em> to that method (to <code>json_serializer&lt;U&gt;::to_json</code> method with <code>U = uncvref_t&lt;CompatibleType&gt;</code>, to be exact).</p>
1510 <p>Template type <em>CompatibleType</em> includes, but is not limited to, the following types:</p><ul>
1511 <li><b>arrays</b>: <a class="el" href="classnlohmann_1_1basic__json.html#a289ffe7b795d293d233d03cfc60bcd15">array_t</a> and all kinds of compatible containers such as <code>std::vector</code>, <code>std::deque</code>, <code>std::list</code>, <code>std::forward_list</code>, <code>std::array</code>, <code>std::set</code>, <code>std::unordered_set</code>, <code>std::multiset</code>, and <code>unordered_multiset</code> with a <code>value_type</code> from which a <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> value can be constructed.</li>
1512 <li><b>objects</b>: <a class="el" href="classnlohmann_1_1basic__json.html#a143db8a40359a56372e21a8feea66454">object_t</a> and all kinds of compatible associative containers such as <code>std::map</code>, <code>std::unordered_map</code>, <code>std::multimap</code>, and <code>std::unordered_multimap</code> with a <code>key_type</code> compatible to <a class="el" href="classnlohmann_1_1basic__json.html#aeacc0aa4079b56866238b8845928c2b7">string_t</a> and a <code>value_type</code> from which a <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> value can be constructed.</li>
1513 <li><b>strings</b>: <a class="el" href="classnlohmann_1_1basic__json.html#aeacc0aa4079b56866238b8845928c2b7">string_t</a>, string literals, and all compatible string containers can be used.</li>
1514 <li><b>numbers</b>: <a class="el" href="classnlohmann_1_1basic__json.html#a4bd9b6d54deaadefc43b5c536062b792">number_integer_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a915185d4413599516b85993e6baaca73">number_unsigned_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#aa43a00a590f6ce46ee8ced69513ee4ef">number_float_t</a>, and all convertible number types such as <code>int</code>, <code>size_t</code>, <code>int64_t</code>, <code>float</code> or <code>double</code> can be used.</li>
1515 <li><b>boolean</b>: <a class="el" href="classnlohmann_1_1basic__json.html#a8fc151a08d12d6ca47c54458703e573f">boolean_t</a> / <code>bool</code> can be used.</li>
1516 </ul>
1517 <p>See the examples below.</p>
1518 <dl class="tparams"><dt>Template Parameters</dt><dd>
1519   <table class="tparams">
1520     <tr><td class="paramname">CompatibleType</td><td>a type such that:<ul>
1521 <li><em>CompatibleType</em> is not derived from <code>std::istream</code>,</li>
1522 <li><em>CompatibleType</em> is not <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> (to avoid hijacking copy/move constructors),</li>
1523 <li><em>CompatibleType</em> is not a <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> nested type (e.g., <a class="el" href="classnlohmann_1_1basic__json_1_1json__pointer.html">json_pointer</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">iterator</a>, etc ...)</li>
1524 <li><a class="el" href="classnlohmann_1_1basic__json.html#a0529ada731a19a6860d72dd7ca888271">json_serializer&lt;U&gt;</a> has a <code>to_json(basic_json_t&amp;, CompatibleType&amp;&amp;)</code> method</li>
1525 </ul>
1526 </td></tr>
1527     <tr><td class="paramname">U</td><td>= <code>uncvref_t&lt;CompatibleType&gt;</code></td></tr>
1528   </table>
1529   </dd>
1530 </dl>
1531 <dl class="params"><dt>Parameters</dt><dd>
1532   <table class="params">
1533     <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>the value to be forwarded</td></tr>
1534   </table>
1535   </dd>
1536 </dl>
1537 <p>Usually linear in the size of the passed <em>val</em>, also depending on the implementation of the called <code><a class="el" href="namespacenlohmann_1_1detail.html#a6fa2f784014bfc0b62d7a35d51e676c9">to_json()</a></code> method.</p>
1538 <dl class="exception"><dt>Exceptions</dt><dd>
1539   <table class="exception">
1540     <tr><td class="paramname">what</td><td><code>json_serializer&lt;U&gt;<a class="el" href="namespacenlohmann_1_1detail.html#a6fa2f784014bfc0b62d7a35d51e676c9">to_json()</a></code> throws</td></tr>
1541   </table>
1542   </dd>
1543 </dl>
1544 <p>{The following code shows the constructor with several compatible types.,basic_json__CompatibleType}</p>
1545 <dl class="section since"><dt>Since</dt><dd>version 2.1.0 </dd></dl>
1546
1547 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01983">1983</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
1548 <div class="dynheader">
1549 Here is the call graph for this function:</div>
1550 <div class="dyncontent">
1551 <div class="center"><img src="classnlohmann_1_1basic__json_a12cfdf59e8552b8604c71585e6dd32bc_cgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_a12cfdf59e8552b8604c71585e6dd32bc_cgraph" alt=""/></div>
1552 <map name="classnlohmann_1_1basic__json_a12cfdf59e8552b8604c71585e6dd32bc_cgraph" id="classnlohmann_1_1basic__json_a12cfdf59e8552b8604c71585e6dd32bc_cgraph">
1553 <area shape="rect" id="node2" href="namespacenlohmann_1_1detail.html#a6fa2f784014bfc0b62d7a35d51e676c9" title="nlohmann::detail::to_json" alt="" coords="137,5,304,32"/>
1554 </map>
1555 </div>
1556
1557 </div>
1558 </div>
1559 <a id="a0ed1b6bedb9c7915b6e4bdca58d9921d"></a>
1560 <h2 class="memtitle"><span class="permalink"><a href="#a0ed1b6bedb9c7915b6e4bdca58d9921d">&#9670;&nbsp;</a></span>basic_json() <span class="overload">[4/9]</span></h2>
1561
1562 <div class="memitem">
1563 <div class="memproto">
1564 <table class="mlabels">
1565   <tr>
1566   <td class="mlabels-left">
1567       <table class="memname">
1568         <tr>
1569           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> </td>
1570           <td>(</td>
1571           <td class="paramtype">std::initializer_list&lt; <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; &gt;&#160;</td>
1572           <td class="paramname"><em>init</em>, </td>
1573         </tr>
1574         <tr>
1575           <td class="paramkey"></td>
1576           <td></td>
1577           <td class="paramtype">bool&#160;</td>
1578           <td class="paramname"><em>type_deduction</em> = <code>true</code>, </td>
1579         </tr>
1580         <tr>
1581           <td class="paramkey"></td>
1582           <td></td>
1583           <td class="paramtype"><a class="el" href="namespacenlohmann_1_1detail.html#aedb3045c82a17d48de0f030229adbffe">value_t</a>&#160;</td>
1584           <td class="paramname"><em>manual_type</em> = <code><a class="el" href="namespacenlohmann_1_1detail.html#aedb3045c82a17d48de0f030229adbffeaf1f713c9e000f5d3f280adbd124df4f5">value_t::array</a></code>&#160;</td>
1585         </tr>
1586         <tr>
1587           <td></td>
1588           <td>)</td>
1589           <td></td><td></td>
1590         </tr>
1591       </table>
1592   </td>
1593   <td class="mlabels-right">
1594 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1595   </tr>
1596 </table>
1597 </div><div class="memdoc">
1598
1599 <p>create a container (array or object) from an initializer list </p>
1600 <p>Creates a JSON value of type array or object from the passed initializer list <em>init</em>. In case <em>type_deduction</em> is <code>true</code> (default), the type of the JSON value to be created is deducted from the initializer list <em>init</em> according to the following rules:</p>
1601 <ol type="1">
1602 <li>If the list is empty, an empty JSON object value <code>{}</code> is created.</li>
1603 <li>If the list consists of pairs whose first element is a string, a JSON object value is created where the first elements of the pairs are treated as keys and the second elements are as values.</li>
1604 <li>In all other cases, an array is created.</li>
1605 </ol>
1606 <p>The rules aim to create the best fit between a C++ initializer list and JSON values. The rationale is as follows:</p>
1607 <ol type="1">
1608 <li>The empty initializer list is written as <code>{}</code> which is exactly an empty JSON object.</li>
1609 <li>C++ has now way of describing mapped types other than to list a list of pairs. As JSON requires that keys must be of type string, rule 2 is the weakest constraint one can pose on initializer lists to interpret them as an object.</li>
1610 <li>In all other cases, the initializer list could not be interpreted as JSON object type, so interpreting it as JSON array type is safe.</li>
1611 </ol>
1612 <p>With the rules described above, the following JSON values cannot be expressed by an initializer list:</p>
1613 <ul>
1614 <li>the empty array (<code>[]</code>): use <a class="el" href="classnlohmann_1_1basic__json.html#a16bfbc9e705582cdf7e88affced6ca51">array(std::initializer_list&lt;basic_json&gt;)</a> with an empty initializer list in this case</li>
1615 <li>arrays whose elements satisfy rule 2: use <a class="el" href="classnlohmann_1_1basic__json.html#a16bfbc9e705582cdf7e88affced6ca51">array(std::initializer_list&lt;basic_json&gt;)</a> with the same initializer list in this case</li>
1616 </ul>
1617 <dl class="section note"><dt>Note</dt><dd>When used without parentheses around an empty initializer list, <a class="el" href="classnlohmann_1_1basic__json.html#af2ec44358263a76e8289454bd0514f69">basic_json()</a> is called instead of this function, yielding the JSON null value.</dd></dl>
1618 <dl class="params"><dt>Parameters</dt><dd>
1619   <table class="params">
1620     <tr><td class="paramdir">[in]</td><td class="paramname">init</td><td>initializer list with JSON values</td></tr>
1621     <tr><td class="paramdir">[in]</td><td class="paramname">type_deduction</td><td>internal parameter; when set to <code>true</code>, the type of the JSON value is deducted from the initializer list <em>init</em>; when set to <code>false</code>, the type provided via <em>manual_type</em> is forced. This mode is used by the functions <a class="el" href="classnlohmann_1_1basic__json.html#a16bfbc9e705582cdf7e88affced6ca51">array(std::initializer_list&lt;basic_json&gt;)</a> and <a class="el" href="classnlohmann_1_1basic__json.html#a6955fcba671f39d7d04164ef034aada8">object(std::initializer_list&lt;basic_json&gt;)</a>.</td></tr>
1622     <tr><td class="paramdir">[in]</td><td class="paramname">manual_type</td><td>internal parameter; when <em>type_deduction</em> is set to <code>false</code>, the created JSON value will use the provided type (only <a class="el" href="namespacenlohmann_1_1detail.html#aedb3045c82a17d48de0f030229adbffeaf1f713c9e000f5d3f280adbd124df4f5">value_t::array</a> and <a class="el" href="namespacenlohmann_1_1detail.html#aedb3045c82a17d48de0f030229adbffeaa8cfde6331bd59eb2ac96f8911c4b666">value_t::object</a> are valid); when <em>type_deduction</em> is set to <code>true</code>, this parameter has no effect</td></tr>
1623   </table>
1624   </dd>
1625 </dl>
1626 <dl class="exception"><dt>Exceptions</dt><dd>
1627   <table class="exception">
1628     <tr><td class="paramname">std::domain_error</td><td>if <em>type_deduction</em> is <code>false</code>, <em>manual_type</em> is <code><a class="el" href="namespacenlohmann_1_1detail.html#aedb3045c82a17d48de0f030229adbffeaa8cfde6331bd59eb2ac96f8911c4b666" title="object (unordered set of name/value pairs) ">value_t::object</a></code>, but <em>init</em> contains an element which is not a pair whose first element is a string; example: <code>"cannot create object from
1629 initializer list"</code></td></tr>
1630   </table>
1631   </dd>
1632 </dl>
1633 <p>Linear in the size of the initializer list <em>init</em>.</p>
1634 <p>{The example below shows how JSON values are created from initializer lists.,basic_json__list_init_t}</p>
1635 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a16bfbc9e705582cdf7e88affced6ca51">array(std::initializer_list&lt;basic_json&gt;)</a> &ndash; create a JSON <a class="el" href="classnlohmann_1_1basic__json.html#a16bfbc9e705582cdf7e88affced6ca51" title="explicitly create an array from an initializer list ">array</a> <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> from an initializer list </dd>
1636 <dd>
1637 <a class="el" href="classnlohmann_1_1basic__json.html#a6955fcba671f39d7d04164ef034aada8">object(std::initializer_list&lt;basic_json&gt;)</a> &ndash; create a JSON <a class="el" href="classnlohmann_1_1basic__json.html#a6955fcba671f39d7d04164ef034aada8" title="explicitly create an object from an initializer list ">object</a> <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> from an initializer list</dd></dl>
1638 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
1639
1640 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l02059">2059</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
1641
1642 </div>
1643 </div>
1644 <a id="a87b55a17c55bfd7d77f7e8ee05a13211"></a>
1645 <h2 class="memtitle"><span class="permalink"><a href="#a87b55a17c55bfd7d77f7e8ee05a13211">&#9670;&nbsp;</a></span>basic_json() <span class="overload">[5/9]</span></h2>
1646
1647 <div class="memitem">
1648 <div class="memproto">
1649 <table class="mlabels">
1650   <tr>
1651   <td class="mlabels-left">
1652       <table class="memname">
1653         <tr>
1654           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> </td>
1655           <td>(</td>
1656           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#af38ce1af42d538f410180c265518d4f0">size_type</a>&#160;</td>
1657           <td class="paramname"><em>cnt</em>, </td>
1658         </tr>
1659         <tr>
1660           <td class="paramkey"></td>
1661           <td></td>
1662           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; &amp;&#160;</td>
1663           <td class="paramname"><em>val</em>&#160;</td>
1664         </tr>
1665         <tr>
1666           <td></td>
1667           <td>)</td>
1668           <td></td><td></td>
1669         </tr>
1670       </table>
1671   </td>
1672   <td class="mlabels-right">
1673 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1674   </tr>
1675 </table>
1676 </div><div class="memdoc">
1677
1678 <p>construct an array with count copies of given value </p>
1679 <p>Constructs a JSON array value by creating <em>cnt</em> copies of a passed value. In case <em>cnt</em> is <code>0</code>, an empty array is created. As postcondition, <code>std::distance(<a class="el" href="classnlohmann_1_1basic__json.html#a979556eb331ec35eb33472a90a160f99" title="returns an iterator to the first element ">begin()</a>,<a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end()</a>) == cnt</code> holds.</p>
1680 <dl class="params"><dt>Parameters</dt><dd>
1681   <table class="params">
1682     <tr><td class="paramdir">[in]</td><td class="paramname">cnt</td><td>the number of JSON copies of <em>val</em> to create </td></tr>
1683     <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>the JSON value to copy</td></tr>
1684   </table>
1685   </dd>
1686 </dl>
1687 <p>Linear in <em>cnt</em>.</p>
1688 <p>{The following code shows examples for the <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>(size_type\, const <a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a>&amp;) constructor.,basic_json__size_type_basic_json}</p>
1689 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
1690
1691 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l02206">2206</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
1692
1693 </div>
1694 </div>
1695 <a id="a0d91af4d13eb01626697367f92991b19"></a>
1696 <h2 class="memtitle"><span class="permalink"><a href="#a0d91af4d13eb01626697367f92991b19">&#9670;&nbsp;</a></span>basic_json() <span class="overload">[6/9]</span></h2>
1697
1698 <div class="memitem">
1699 <div class="memproto">
1700 <table class="mlabels">
1701   <tr>
1702   <td class="mlabels-left">
1703       <table class="memname">
1704         <tr>
1705           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> </td>
1706           <td>(</td>
1707           <td class="paramtype">InputIT&#160;</td>
1708           <td class="paramname"><em>first</em>, </td>
1709         </tr>
1710         <tr>
1711           <td class="paramkey"></td>
1712           <td></td>
1713           <td class="paramtype">InputIT&#160;</td>
1714           <td class="paramname"><em>last</em>&#160;</td>
1715         </tr>
1716         <tr>
1717           <td></td>
1718           <td>)</td>
1719           <td></td><td></td>
1720         </tr>
1721       </table>
1722   </td>
1723   <td class="mlabels-right">
1724 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1725   </tr>
1726 </table>
1727 </div><div class="memdoc">
1728
1729 <p>construct a JSON container given an iterator range </p>
1730 <p>Constructs the JSON value with the contents of the range <code>[first, last)</code>. The semantics depends on the different types a JSON value can have:</p><ul>
1731 <li>In case of primitive types (number, boolean, or string), <em>first</em> must be <code><a class="el" href="classnlohmann_1_1basic__json.html#a979556eb331ec35eb33472a90a160f99" title="returns an iterator to the first element ">begin()</a></code> and <em>last</em> must be <code><a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end()</a></code>. In this case, the value is copied. Otherwise, std::out_of_range is thrown.</li>
1732 <li>In case of structured types (array, object), the constructor behaves as similar versions for <code>std::vector</code>.</li>
1733 <li>In case of a null type, std::domain_error is thrown.</li>
1734 </ul>
1735 <dl class="tparams"><dt>Template Parameters</dt><dd>
1736   <table class="tparams">
1737     <tr><td class="paramname">InputIT</td><td>an input iterator type (<a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">iterator</a> or <a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a>)</td></tr>
1738   </table>
1739   </dd>
1740 </dl>
1741 <dl class="params"><dt>Parameters</dt><dd>
1742   <table class="params">
1743     <tr><td class="paramdir">[in]</td><td class="paramname">first</td><td>begin of the range to copy from (included) </td></tr>
1744     <tr><td class="paramdir">[in]</td><td class="paramname">last</td><td>end of the range to copy from (excluded)</td></tr>
1745   </table>
1746   </dd>
1747 </dl>
1748 <dl class="section pre"><dt>Precondition</dt><dd>Iterators <em>first</em> and <em>last</em> must be initialized. <b>This precondition is enforced with an assertion.</b></dd></dl>
1749 <dl class="exception"><dt>Exceptions</dt><dd>
1750   <table class="exception">
1751     <tr><td class="paramname">std::domain_error</td><td>if iterators are not compatible; that is, do not belong to the same JSON value; example: <code>"iterators are not compatible"</code> </td></tr>
1752     <tr><td class="paramname">std::out_of_range</td><td>if iterators are for a primitive type (number, boolean, or string) where an out of range error can be detected easily; example: <code>"iterators out of range"</code> </td></tr>
1753     <tr><td class="paramname">std::bad_alloc</td><td>if allocation for object, array, or string fails </td></tr>
1754     <tr><td class="paramname">std::domain_error</td><td>if called with a null value; example: <code>"cannot
1755 use construct with iterators from null"</code></td></tr>
1756   </table>
1757   </dd>
1758 </dl>
1759 <p>Linear in distance between <em>first</em> and <em>last</em>.</p>
1760 <p>{The example below shows several ways to create JSON values by specifying a subrange with iterators.,basic_json__InputIt_InputIt}</p>
1761 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
1762
1763 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l02253">2253</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
1764
1765 </div>
1766 </div>
1767 <a id="a8ba521ef10c3a04a086c19526c3cdc64"></a>
1768 <h2 class="memtitle"><span class="permalink"><a href="#a8ba521ef10c3a04a086c19526c3cdc64">&#9670;&nbsp;</a></span>basic_json() <span class="overload">[7/9]</span></h2>
1769
1770 <div class="memitem">
1771 <div class="memproto">
1772 <table class="mlabels">
1773   <tr>
1774   <td class="mlabels-left">
1775       <table class="memname">
1776         <tr>
1777           <td class="memname"><a class="el" href="json_8hpp.html#a584fd8f49cd7f4ecf5baba15b5b53cdd">JSON_DEPRECATED</a> <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> </td>
1778           <td>(</td>
1779           <td class="paramtype">std::istream &amp;&#160;</td>
1780           <td class="paramname"><em>i</em>, </td>
1781         </tr>
1782         <tr>
1783           <td class="paramkey"></td>
1784           <td></td>
1785           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json.html#a8bcd7fb59f7978ccd8942605357fc28a">parser_callback_t</a>&#160;</td>
1786           <td class="paramname"><em>cb</em> = <code>nullptr</code>&#160;</td>
1787         </tr>
1788         <tr>
1789           <td></td>
1790           <td>)</td>
1791           <td></td><td></td>
1792         </tr>
1793       </table>
1794   </td>
1795   <td class="mlabels-right">
1796 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span>  </td>
1797   </tr>
1798 </table>
1799 </div><div class="memdoc">
1800
1801 <p>construct a JSON value given an input stream </p>
1802 <dl class="params"><dt>Parameters</dt><dd>
1803   <table class="params">
1804     <tr><td class="paramdir">[in,out]</td><td class="paramname">i</td><td>stream to read a serialized JSON value from </td></tr>
1805     <tr><td class="paramdir">[in]</td><td class="paramname">cb</td><td>a parser callback function of type <a class="el" href="classnlohmann_1_1basic__json.html#a8bcd7fb59f7978ccd8942605357fc28a">parser_callback_t</a> which is used to control the deserialization by filtering unwanted values (optional)</td></tr>
1806   </table>
1807   </dd>
1808 </dl>
1809 <p>Linear in the length of the input. The parser is a predictive LL(1) parser. The complexity can be higher if the parser callback function <em>cb</em> has a super-linear complexity.</p>
1810 <dl class="section note"><dt>Note</dt><dd>A UTF-8 byte order mark is silently ignored.</dd></dl>
1811 <dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>This constructor is deprecated and will be removed in version 3.0.0 to unify the interface of the library. Deserialization will be done by stream operators or by calling one of the <code>parse</code> functions, e.g. <a class="el" href="classnlohmann_1_1basic__json.html#ad19ad3fa5d9a806c5018faa3cd0ed85c">parse(std::istream&amp;, const parser_callback_t)</a>. That is, calls like <code>json j(i);</code> for an input stream <em>i</em> need to be replaced by <code>json j = json::parse(i);</code>. See the example below.</dd></dl>
1812 <p>{The example below demonstrates constructing a JSON value from a <code>std::stringstream</code> with and without callback function.,basic_json__istream}</p>
1813 <dl class="section since"><dt>Since</dt><dd>version 2.0.0, deprecated in version 2.0.3, to be removed in version 3.0.0 </dd></dl>
1814
1815 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l02373">2373</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
1816
1817 </div>
1818 </div>
1819 <a id="a9a119fd02c79c9acab75c1cc6a8e9dea"></a>
1820 <h2 class="memtitle"><span class="permalink"><a href="#a9a119fd02c79c9acab75c1cc6a8e9dea">&#9670;&nbsp;</a></span>basic_json() <span class="overload">[8/9]</span></h2>
1821
1822 <div class="memitem">
1823 <div class="memproto">
1824 <table class="mlabels">
1825   <tr>
1826   <td class="mlabels-left">
1827       <table class="memname">
1828         <tr>
1829           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> </td>
1830           <td>(</td>
1831           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; &amp;&#160;</td>
1832           <td class="paramname"><em>other</em></td><td>)</td>
1833           <td></td>
1834         </tr>
1835       </table>
1836   </td>
1837   <td class="mlabels-right">
1838 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1839   </tr>
1840 </table>
1841 </div><div class="memdoc">
1842
1843 <p>copy constructor </p>
1844 <p>Creates a copy of a given JSON value.</p>
1845 <dl class="params"><dt>Parameters</dt><dd>
1846   <table class="params">
1847     <tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>the JSON value to copy</td></tr>
1848   </table>
1849   </dd>
1850 </dl>
1851 <p>Linear in the size of <em>other</em>.</p>
1852 <p>This function helps <code><a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a></code> satisfying the <a href="http://en.cppreference.com/w/cpp/concept/Container">Container</a> requirements:</p><ul>
1853 <li>The complexity is linear.</li>
1854 <li>As postcondition, it holds: <code>other == basic_json(other)</code>.</li>
1855 </ul>
1856 <dl class="exception"><dt>Exceptions</dt><dd>
1857   <table class="exception">
1858     <tr><td class="paramname">std::bad_alloc</td><td>if allocation for object, array, or string fails.</td></tr>
1859   </table>
1860   </dd>
1861 </dl>
1862 <p>{The following code shows an example for the copy constructor.,basic_json__basic_json}</p>
1863 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
1864
1865 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l02405">2405</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
1866
1867 </div>
1868 </div>
1869 <a id="a9288df424f61d19905ae6f3d8152225a"></a>
1870 <h2 class="memtitle"><span class="permalink"><a href="#a9288df424f61d19905ae6f3d8152225a">&#9670;&nbsp;</a></span>basic_json() <span class="overload">[9/9]</span></h2>
1871
1872 <div class="memitem">
1873 <div class="memproto">
1874 <table class="mlabels">
1875   <tr>
1876   <td class="mlabels-left">
1877       <table class="memname">
1878         <tr>
1879           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> </td>
1880           <td>(</td>
1881           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; &amp;&amp;&#160;</td>
1882           <td class="paramname"><em>other</em></td><td>)</td>
1883           <td></td>
1884         </tr>
1885       </table>
1886   </td>
1887   <td class="mlabels-right">
1888 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
1889   </tr>
1890 </table>
1891 </div><div class="memdoc">
1892
1893 <p>move constructor </p>
1894 <p>Move constructor. Constructs a JSON value with the contents of the given value <em>other</em> using move semantics. It "steals" the resources from <em>other</em> and leaves it as JSON null value.</p>
1895 <dl class="params"><dt>Parameters</dt><dd>
1896   <table class="params">
1897     <tr><td class="paramdir">[in,out]</td><td class="paramname">other</td><td>value to move to this object</td></tr>
1898   </table>
1899   </dd>
1900 </dl>
1901 <dl class="section post"><dt>Postcondition</dt><dd><em>other</em> is a JSON null value</dd></dl>
1902 <p>Constant.</p>
1903 <p>{The code below shows the move constructor explicitly called via std::move.,basic_json__moveconstructor}</p>
1904 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
1905
1906 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l02482">2482</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
1907
1908 </div>
1909 </div>
1910 <a id="a5d09c330bdb8627ef5ed12a5ff38b542"></a>
1911 <h2 class="memtitle"><span class="permalink"><a href="#a5d09c330bdb8627ef5ed12a5ff38b542">&#9670;&nbsp;</a></span>~basic_json()</h2>
1912
1913 <div class="memitem">
1914 <div class="memproto">
1915 <table class="mlabels">
1916   <tr>
1917   <td class="mlabels-left">
1918       <table class="memname">
1919         <tr>
1920           <td class="memname">~<a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> </td>
1921           <td>(</td>
1922           <td class="paramname"></td><td>)</td>
1923           <td></td>
1924         </tr>
1925       </table>
1926   </td>
1927   <td class="mlabels-right">
1928 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1929   </tr>
1930 </table>
1931 </div><div class="memdoc">
1932
1933 <p>destructor </p>
1934 <p>Destroys the JSON value and frees all allocated memory.</p>
1935 <p>Linear.</p>
1936 <p>This function helps <code><a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a></code> satisfying the <a href="http://en.cppreference.com/w/cpp/concept/Container">Container</a> requirements:</p><ul>
1937 <li>The complexity is linear.</li>
1938 <li>All stored elements are destroyed and all memory is freed.</li>
1939 </ul>
1940 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
1941
1942 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l02552">2552</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
1943
1944 </div>
1945 </div>
1946 <h2 class="groupheader">Member Function Documentation</h2>
1947 <a id="a16bfbc9e705582cdf7e88affced6ca51"></a>
1948 <h2 class="memtitle"><span class="permalink"><a href="#a16bfbc9e705582cdf7e88affced6ca51">&#9670;&nbsp;</a></span>array()</h2>
1949
1950 <div class="memitem">
1951 <div class="memproto">
1952 <table class="mlabels">
1953   <tr>
1954   <td class="mlabels-left">
1955       <table class="memname">
1956         <tr>
1957           <td class="memname">static <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> array </td>
1958           <td>(</td>
1959           <td class="paramtype">std::initializer_list&lt; <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; &gt;&#160;</td>
1960           <td class="paramname"><em>init</em> = <code>std::initializer_list&lt;<a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt;&#160;ObjectType,&#160;ArrayType,&#160;StringType,&#160;BooleanType,&#160;NumberIntegerType,&#160;NumberUnsignedType,&#160;NumberFloatType,&#160;AllocatorType,&#160;JSONSerializer&#160;&gt;&gt;()</code></td><td>)</td>
1961           <td></td>
1962         </tr>
1963       </table>
1964   </td>
1965   <td class="mlabels-right">
1966 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1967   </tr>
1968 </table>
1969 </div><div class="memdoc">
1970
1971 <p>explicitly create an array from an initializer list </p>
1972 <p>Creates a JSON array value from a given initializer list. That is, given a list of values <code>a, b, c</code>, creates the JSON value <code>[a, b, c]</code>. If the initializer list is empty, the empty array <code>[]</code> is created.</p>
1973 <dl class="section note"><dt>Note</dt><dd>This function is only needed to express two edge cases that cannot be realized with the initializer list constructor (<a class="el" href="classnlohmann_1_1basic__json.html#a0ed1b6bedb9c7915b6e4bdca58d9921d">basic_json(std::initializer_list&lt;basic_json&gt;, bool, value_t)</a>). These cases are:<ol type="1">
1974 <li>creating an array whose elements are all pairs whose first element is a string &ndash; in this case, the initializer list constructor would create an object, taking the first elements as keys</li>
1975 <li>creating an empty array &ndash; passing the empty initializer list to the initializer list constructor yields an empty object</li>
1976 </ol>
1977 </dd></dl>
1978 <dl class="params"><dt>Parameters</dt><dd>
1979   <table class="params">
1980     <tr><td class="paramdir">[in]</td><td class="paramname">init</td><td>initializer list with JSON values to create an array from (optional)</td></tr>
1981   </table>
1982   </dd>
1983 </dl>
1984 <dl class="section return"><dt>Returns</dt><dd>JSON array value</dd></dl>
1985 <p>Linear in the size of <em>init</em>.</p>
1986 <p>{The following code shows an example for the <code>array</code> function.,array}</p>
1987 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a0ed1b6bedb9c7915b6e4bdca58d9921d">basic_json(std::initializer_list&lt;basic_json&gt;, bool, value_t)</a> &ndash; create a JSON <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> from an initializer list </dd>
1988 <dd>
1989 <a class="el" href="classnlohmann_1_1basic__json.html#a6955fcba671f39d7d04164ef034aada8">object(std::initializer_list&lt;basic_json&gt;)</a> &ndash; create a JSON <a class="el" href="classnlohmann_1_1basic__json.html#a6955fcba671f39d7d04164ef034aada8" title="explicitly create an object from an initializer list ">object</a> <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> from an initializer list</dd></dl>
1990 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
1991
1992 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l02142">2142</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
1993 <div class="dynheader">
1994 Here is the caller graph for this function:</div>
1995 <div class="dyncontent">
1996 <div class="center"><img src="classnlohmann_1_1basic__json_a16bfbc9e705582cdf7e88affced6ca51_icgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_a16bfbc9e705582cdf7e88affced6ca51_icgraph" alt=""/></div>
1997 <map name="classnlohmann_1_1basic__json_a16bfbc9e705582cdf7e88affced6ca51_icgraph" id="classnlohmann_1_1basic__json_a16bfbc9e705582cdf7e88affced6ca51_icgraph">
1998 <area shape="rect" id="node2" href="classnlohmann_1_1basic__json.html#a890ecb965cd00d2cae1f76c0602f350a" title="access specified array element " alt="" coords="104,5,181,32"/>
1999 </map>
2000 </div>
2001
2002 </div>
2003 </div>
2004 <a id="a3d5717f39bfe485057850f116fb2ed12"></a>
2005 <h2 class="memtitle"><span class="permalink"><a href="#a3d5717f39bfe485057850f116fb2ed12">&#9670;&nbsp;</a></span>at() <span class="overload">[1/6]</span></h2>
2006
2007 <div class="memitem">
2008 <div class="memproto">
2009 <table class="mlabels">
2010   <tr>
2011   <td class="mlabels-left">
2012       <table class="memname">
2013         <tr>
2014           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a> at </td>
2015           <td>(</td>
2016           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#af38ce1af42d538f410180c265518d4f0">size_type</a>&#160;</td>
2017           <td class="paramname"><em>idx</em></td><td>)</td>
2018           <td></td>
2019         </tr>
2020       </table>
2021   </td>
2022   <td class="mlabels-right">
2023 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2024   </tr>
2025 </table>
2026 </div><div class="memdoc">
2027
2028 <p>access specified array element with bounds checking </p>
2029 <p>Returns a reference to the element at specified location <em>idx</em>, with bounds checking.</p>
2030 <dl class="params"><dt>Parameters</dt><dd>
2031   <table class="params">
2032     <tr><td class="paramdir">[in]</td><td class="paramname">idx</td><td>index of the element to access</td></tr>
2033   </table>
2034   </dd>
2035 </dl>
2036 <dl class="section return"><dt>Returns</dt><dd>reference to the element at index <em>idx</em> </dd></dl>
2037 <dl class="exception"><dt>Exceptions</dt><dd>
2038   <table class="exception">
2039     <tr><td class="paramname">std::domain_error</td><td>if the JSON value is not an array; example: <code>"cannot use at() with string"</code> </td></tr>
2040     <tr><td class="paramname">std::out_of_range</td><td>if the index <em>idx</em> is out of range of the array; that is, <code>idx &gt;= <a class="el" href="classnlohmann_1_1basic__json.html#a0801762a3fe36fe32dca5f16e515478d" title="returns the number of elements ">size()</a></code>; example: <code>"array index 7 is out of range"</code></td></tr>
2041   </table>
2042   </dd>
2043 </dl>
2044 <p>Constant.</p>
2045 <p>{The example below shows how array elements can be read and written using <code><a class="el" href="classnlohmann_1_1basic__json.html#a3d5717f39bfe485057850f116fb2ed12" title="access specified array element with bounds checking ">at()</a></code>.,at__size_type}</p>
2046 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
2047
2048 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l03508">3508</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
2049 <div class="dynheader">
2050 Here is the caller graph for this function:</div>
2051 <div class="dyncontent">
2052 <div class="center"><img src="classnlohmann_1_1basic__json_a3d5717f39bfe485057850f116fb2ed12_icgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_a3d5717f39bfe485057850f116fb2ed12_icgraph" alt=""/></div>
2053 <map name="classnlohmann_1_1basic__json_a3d5717f39bfe485057850f116fb2ed12_icgraph" id="classnlohmann_1_1basic__json_a3d5717f39bfe485057850f116fb2ed12_icgraph">
2054 <area shape="rect" id="node2" href="classnlohmann_1_1basic__json.html#a614dd03ce3e99e79c52bedcf55945645" title="applies a JSON patch " alt="" coords="92,5,147,32"/>
2055 </map>
2056 </div>
2057
2058 </div>
2059 </div>
2060 <a id="af67a114d84325900759c8aeb6b6ad916"></a>
2061 <h2 class="memtitle"><span class="permalink"><a href="#af67a114d84325900759c8aeb6b6ad916">&#9670;&nbsp;</a></span>at() <span class="overload">[2/6]</span></h2>
2062
2063 <div class="memitem">
2064 <div class="memproto">
2065 <table class="mlabels">
2066   <tr>
2067   <td class="mlabels-left">
2068       <table class="memname">
2069         <tr>
2070           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> at </td>
2071           <td>(</td>
2072           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#af38ce1af42d538f410180c265518d4f0">size_type</a>&#160;</td>
2073           <td class="paramname"><em>idx</em></td><td>)</td>
2074           <td> const</td>
2075         </tr>
2076       </table>
2077   </td>
2078   <td class="mlabels-right">
2079 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2080   </tr>
2081 </table>
2082 </div><div class="memdoc">
2083
2084 <p>access specified array element with bounds checking </p>
2085 <p>Returns a const reference to the element at specified location <em>idx</em>, with bounds checking.</p>
2086 <dl class="params"><dt>Parameters</dt><dd>
2087   <table class="params">
2088     <tr><td class="paramdir">[in]</td><td class="paramname">idx</td><td>index of the element to access</td></tr>
2089   </table>
2090   </dd>
2091 </dl>
2092 <dl class="section return"><dt>Returns</dt><dd>const reference to the element at index <em>idx</em> </dd></dl>
2093 <dl class="exception"><dt>Exceptions</dt><dd>
2094   <table class="exception">
2095     <tr><td class="paramname">std::domain_error</td><td>if the JSON value is not an array; example: <code>"cannot use at() with string"</code> </td></tr>
2096     <tr><td class="paramname">std::out_of_range</td><td>if the index <em>idx</em> is out of range of the array; that is, <code>idx &gt;= <a class="el" href="classnlohmann_1_1basic__json.html#a0801762a3fe36fe32dca5f16e515478d" title="returns the number of elements ">size()</a></code>; example: <code>"array index 7 is out of range"</code></td></tr>
2097   </table>
2098   </dd>
2099 </dl>
2100 <p>Constant.</p>
2101 <p>{The example below shows how array elements can be read using <code><a class="el" href="classnlohmann_1_1basic__json.html#a3d5717f39bfe485057850f116fb2ed12" title="access specified array element with bounds checking ">at()</a></code>.,at__size_type_const}</p>
2102 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
2103
2104 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l03551">3551</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
2105
2106 </div>
2107 </div>
2108 <a id="a18c0c62edce2742d5ab24d1979c3ef00"></a>
2109 <h2 class="memtitle"><span class="permalink"><a href="#a18c0c62edce2742d5ab24d1979c3ef00">&#9670;&nbsp;</a></span>at() <span class="overload">[3/6]</span></h2>
2110
2111 <div class="memitem">
2112 <div class="memproto">
2113 <table class="mlabels">
2114   <tr>
2115   <td class="mlabels-left">
2116       <table class="memname">
2117         <tr>
2118           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a> at </td>
2119           <td>(</td>
2120           <td class="paramtype">const typename object_t::key_type &amp;&#160;</td>
2121           <td class="paramname"><em>key</em></td><td>)</td>
2122           <td></td>
2123         </tr>
2124       </table>
2125   </td>
2126   <td class="mlabels-right">
2127 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2128   </tr>
2129 </table>
2130 </div><div class="memdoc">
2131
2132 <p>access specified object element with bounds checking </p>
2133 <p>Returns a reference to the element at with specified key <em>key</em>, with bounds checking.</p>
2134 <dl class="params"><dt>Parameters</dt><dd>
2135   <table class="params">
2136     <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>key of the element to access</td></tr>
2137   </table>
2138   </dd>
2139 </dl>
2140 <dl class="section return"><dt>Returns</dt><dd>reference to the element at key <em>key</em> </dd></dl>
2141 <dl class="exception"><dt>Exceptions</dt><dd>
2142   <table class="exception">
2143     <tr><td class="paramname">std::domain_error</td><td>if the JSON value is not an object; example: <code>"cannot use at() with boolean"</code> </td></tr>
2144     <tr><td class="paramname">std::out_of_range</td><td>if the key <em>key</em> is is not stored in the object; that is, <code>find(key) == <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end()</a></code>; example: <code>"key "the fast" not found"</code></td></tr>
2145   </table>
2146   </dd>
2147 </dl>
2148 <p>Logarithmic in the size of the container.</p>
2149 <p>{The example below shows how object elements can be read and written using <code><a class="el" href="classnlohmann_1_1basic__json.html#a3d5717f39bfe485057850f116fb2ed12" title="access specified array element with bounds checking ">at()</a></code>.,at__object_t_key_type}</p>
2150 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a27efc3966d94d080bb36fa3595c15df5">operator[](const typename object_t::key_type&amp;)</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> unchecked access by <a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de" title="the type of an element reference ">reference</a> </dd>
2151 <dd>
2152 <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f">value()</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> access by <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> with a default <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a></dd></dl>
2153 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
2154
2155 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l03598">3598</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
2156
2157 </div>
2158 </div>
2159 <a id="a4f54990041741beea9083540c8ea25c7"></a>
2160 <h2 class="memtitle"><span class="permalink"><a href="#a4f54990041741beea9083540c8ea25c7">&#9670;&nbsp;</a></span>at() <span class="overload">[4/6]</span></h2>
2161
2162 <div class="memitem">
2163 <div class="memproto">
2164 <table class="mlabels">
2165   <tr>
2166   <td class="mlabels-left">
2167       <table class="memname">
2168         <tr>
2169           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> at </td>
2170           <td>(</td>
2171           <td class="paramtype">const typename object_t::key_type &amp;&#160;</td>
2172           <td class="paramname"><em>key</em></td><td>)</td>
2173           <td> const</td>
2174         </tr>
2175       </table>
2176   </td>
2177   <td class="mlabels-right">
2178 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2179   </tr>
2180 </table>
2181 </div><div class="memdoc">
2182
2183 <p>access specified object element with bounds checking </p>
2184 <p>Returns a const reference to the element at with specified key <em>key</em>, with bounds checking.</p>
2185 <dl class="params"><dt>Parameters</dt><dd>
2186   <table class="params">
2187     <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>key of the element to access</td></tr>
2188   </table>
2189   </dd>
2190 </dl>
2191 <dl class="section return"><dt>Returns</dt><dd>const reference to the element at key <em>key</em> </dd></dl>
2192 <dl class="exception"><dt>Exceptions</dt><dd>
2193   <table class="exception">
2194     <tr><td class="paramname">std::domain_error</td><td>if the JSON value is not an object; example: <code>"cannot use at() with boolean"</code> </td></tr>
2195     <tr><td class="paramname">std::out_of_range</td><td>if the key <em>key</em> is is not stored in the object; that is, <code>find(key) == <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end()</a></code>; example: <code>"key "the fast" not found"</code></td></tr>
2196   </table>
2197   </dd>
2198 </dl>
2199 <p>Logarithmic in the size of the container.</p>
2200 <p>{The example below shows how object elements can be read using <code><a class="el" href="classnlohmann_1_1basic__json.html#a3d5717f39bfe485057850f116fb2ed12" title="access specified array element with bounds checking ">at()</a></code>.,at__object_t_key_type_const}</p>
2201 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a27efc3966d94d080bb36fa3595c15df5">operator[](const typename object_t::key_type&amp;)</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> unchecked access by <a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de" title="the type of an element reference ">reference</a> </dd>
2202 <dd>
2203 <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f">value()</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> access by <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> with a default <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a></dd></dl>
2204 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
2205
2206 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l03645">3645</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
2207
2208 </div>
2209 </div>
2210 <a id="a4d402bba79c6c22a6399472f5ffa748e"></a>
2211 <h2 class="memtitle"><span class="permalink"><a href="#a4d402bba79c6c22a6399472f5ffa748e">&#9670;&nbsp;</a></span>at() <span class="overload">[5/6]</span></h2>
2212
2213 <div class="memitem">
2214 <div class="memproto">
2215 <table class="mlabels">
2216   <tr>
2217   <td class="mlabels-left">
2218       <table class="memname">
2219         <tr>
2220           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a> at </td>
2221           <td>(</td>
2222           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json_1_1json__pointer.html">json_pointer</a> &amp;&#160;</td>
2223           <td class="paramname"><em>ptr</em></td><td>)</td>
2224           <td></td>
2225         </tr>
2226       </table>
2227   </td>
2228   <td class="mlabels-right">
2229 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2230   </tr>
2231 </table>
2232 </div><div class="memdoc">
2233
2234 <p>access specified element via JSON Pointer </p>
2235 <p>Returns a reference to the element at with specified JSON pointer <em>ptr</em>, with bounds checking.</p>
2236 <dl class="params"><dt>Parameters</dt><dd>
2237   <table class="params">
2238     <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>JSON pointer to the desired element</td></tr>
2239   </table>
2240   </dd>
2241 </dl>
2242 <dl class="section return"><dt>Returns</dt><dd>reference to the element pointed to by <em>ptr</em> </dd></dl>
2243 <p>Constant.</p>
2244 <dl class="exception"><dt>Exceptions</dt><dd>
2245   <table class="exception">
2246     <tr><td class="paramname">std::out_of_range</td><td>if the JSON pointer can not be resolved </td></tr>
2247     <tr><td class="paramname">std::domain_error</td><td>if an array index begins with '0' </td></tr>
2248     <tr><td class="paramname">std::invalid_argument</td><td>if an array index was not a number</td></tr>
2249   </table>
2250   </dd>
2251 </dl>
2252 <p>{The behavior is shown in the example.,at_json_pointer}</p>
2253 <dl class="section since"><dt>Since</dt><dd>version 2.0.0 </dd></dl>
2254
2255 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l12313">12313</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
2256
2257 </div>
2258 </div>
2259 <a id="a64916a31807a0cf9c5dbb16d228a4d5a"></a>
2260 <h2 class="memtitle"><span class="permalink"><a href="#a64916a31807a0cf9c5dbb16d228a4d5a">&#9670;&nbsp;</a></span>at() <span class="overload">[6/6]</span></h2>
2261
2262 <div class="memitem">
2263 <div class="memproto">
2264 <table class="mlabels">
2265   <tr>
2266   <td class="mlabels-left">
2267       <table class="memname">
2268         <tr>
2269           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> at </td>
2270           <td>(</td>
2271           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json_1_1json__pointer.html">json_pointer</a> &amp;&#160;</td>
2272           <td class="paramname"><em>ptr</em></td><td>)</td>
2273           <td> const</td>
2274         </tr>
2275       </table>
2276   </td>
2277   <td class="mlabels-right">
2278 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2279   </tr>
2280 </table>
2281 </div><div class="memdoc">
2282
2283 <p>access specified element via JSON Pointer </p>
2284 <p>Returns a const reference to the element at with specified JSON pointer <em>ptr</em>, with bounds checking.</p>
2285 <dl class="params"><dt>Parameters</dt><dd>
2286   <table class="params">
2287     <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>JSON pointer to the desired element</td></tr>
2288   </table>
2289   </dd>
2290 </dl>
2291 <dl class="section return"><dt>Returns</dt><dd>reference to the element pointed to by <em>ptr</em> </dd></dl>
2292 <p>Constant.</p>
2293 <dl class="exception"><dt>Exceptions</dt><dd>
2294   <table class="exception">
2295     <tr><td class="paramname">std::out_of_range</td><td>if the JSON pointer can not be resolved </td></tr>
2296     <tr><td class="paramname">std::domain_error</td><td>if an array index begins with '0' </td></tr>
2297     <tr><td class="paramname">std::invalid_argument</td><td>if an array index was not a number</td></tr>
2298   </table>
2299   </dd>
2300 </dl>
2301 <p>{The behavior is shown in the example.,at_json_pointer_const}</p>
2302 <dl class="section since"><dt>Since</dt><dd>version 2.0.0 </dd></dl>
2303
2304 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l12338">12338</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
2305
2306 </div>
2307 </div>
2308 <a id="af71e6c1eccbc12e9339c00a86a981a43"></a>
2309 <h2 class="memtitle"><span class="permalink"><a href="#af71e6c1eccbc12e9339c00a86a981a43">&#9670;&nbsp;</a></span>back() <span class="overload">[1/2]</span></h2>
2310
2311 <div class="memitem">
2312 <div class="memproto">
2313 <table class="mlabels">
2314   <tr>
2315   <td class="mlabels-left">
2316       <table class="memname">
2317         <tr>
2318           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a> back </td>
2319           <td>(</td>
2320           <td class="paramname"></td><td>)</td>
2321           <td></td>
2322         </tr>
2323       </table>
2324   </td>
2325   <td class="mlabels-right">
2326 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2327   </tr>
2328 </table>
2329 </div><div class="memdoc">
2330
2331 <p>access the last element </p>
2332 <p>Returns a reference to the last element in the container. For a JSON container <code>c</code>, the expression <code>c.back()</code> is equivalent to </p><div class="fragment"><div class="line"><span class="keyword">auto</span> tmp = c.end();</div><div class="line">--tmp;</div><div class="line"><span class="keywordflow">return</span> *tmp;</div></div><!-- fragment --><dl class="section return"><dt>Returns</dt><dd>In case of a structured type (array or object), a reference to the last element is returned. In case of number, string, or boolean values, a reference to the value is returned.</dd></dl>
2333 <p>Constant.</p>
2334 <dl class="section pre"><dt>Precondition</dt><dd>The JSON value must not be <code>null</code> (would throw <code>std::out_of_range</code>) or an empty array or object (undefined behavior, <b>guarded by assertions</b>). </dd></dl>
2335 <dl class="section post"><dt>Postcondition</dt><dd>The JSON value remains unchanged.</dd></dl>
2336 <dl class="exception"><dt>Exceptions</dt><dd>
2337   <table class="exception">
2338     <tr><td class="paramname">std::out_of_range</td><td>when called on <code>null</code> value.</td></tr>
2339   </table>
2340   </dd>
2341 </dl>
2342 <p>{The following code shows an example for <code><a class="el" href="classnlohmann_1_1basic__json.html#af71e6c1eccbc12e9339c00a86a981a43" title="access the last element ">back()</a></code>.,back}</p>
2343 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a6a48363b4355f6f5b441637774f79a59">front()</a> &ndash; access the first element</dd></dl>
2344 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
2345
2346 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04212">4212</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
2347
2348 </div>
2349 </div>
2350 <a id="a61772c77ad2abfbb296912e7281e154c"></a>
2351 <h2 class="memtitle"><span class="permalink"><a href="#a61772c77ad2abfbb296912e7281e154c">&#9670;&nbsp;</a></span>back() <span class="overload">[2/2]</span></h2>
2352
2353 <div class="memitem">
2354 <div class="memproto">
2355 <table class="mlabels">
2356   <tr>
2357   <td class="mlabels-left">
2358       <table class="memname">
2359         <tr>
2360           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> back </td>
2361           <td>(</td>
2362           <td class="paramname"></td><td>)</td>
2363           <td> const</td>
2364         </tr>
2365       </table>
2366   </td>
2367   <td class="mlabels-right">
2368 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2369   </tr>
2370 </table>
2371 </div><div class="memdoc">
2372
2373 <p>access the last element </p>
2374 <p>Returns a reference to the last element in the container. For a JSON container <code>c</code>, the expression <code>c.back()</code> is equivalent to </p><div class="fragment"><div class="line"><span class="keyword">auto</span> tmp = c.end();</div><div class="line">--tmp;</div><div class="line"><span class="keywordflow">return</span> *tmp;</div></div><!-- fragment --><dl class="section return"><dt>Returns</dt><dd>In case of a structured type (array or object), a reference to the last element is returned. In case of number, string, or boolean values, a reference to the value is returned.</dd></dl>
2375 <p>Constant.</p>
2376 <dl class="section pre"><dt>Precondition</dt><dd>The JSON value must not be <code>null</code> (would throw <code>std::out_of_range</code>) or an empty array or object (undefined behavior, <b>guarded by assertions</b>). </dd></dl>
2377 <dl class="section post"><dt>Postcondition</dt><dd>The JSON value remains unchanged.</dd></dl>
2378 <dl class="exception"><dt>Exceptions</dt><dd>
2379   <table class="exception">
2380     <tr><td class="paramname">std::out_of_range</td><td>when called on <code>null</code> value.</td></tr>
2381   </table>
2382   </dd>
2383 </dl>
2384 <p>{The following code shows an example for <code><a class="el" href="classnlohmann_1_1basic__json.html#af71e6c1eccbc12e9339c00a86a981a43" title="access the last element ">back()</a></code>.,back}</p>
2385 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a6a48363b4355f6f5b441637774f79a59">front()</a> &ndash; access the first element</dd></dl>
2386 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
2387
2388 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04222">4222</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
2389
2390 </div>
2391 </div>
2392 <a id="a979556eb331ec35eb33472a90a160f99"></a>
2393 <h2 class="memtitle"><span class="permalink"><a href="#a979556eb331ec35eb33472a90a160f99">&#9670;&nbsp;</a></span>begin() <span class="overload">[1/2]</span></h2>
2394
2395 <div class="memitem">
2396 <div class="memproto">
2397 <table class="mlabels">
2398   <tr>
2399   <td class="mlabels-left">
2400       <table class="memname">
2401         <tr>
2402           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">iterator</a> begin </td>
2403           <td>(</td>
2404           <td class="paramname"></td><td>)</td>
2405           <td></td>
2406         </tr>
2407       </table>
2408   </td>
2409   <td class="mlabels-right">
2410 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
2411   </tr>
2412 </table>
2413 </div><div class="memdoc">
2414
2415 <p>returns an iterator to the first element </p>
2416 <p>Returns an iterator to the first element.</p>
2417 <div class="image">
2418 <object type="image/svg+xml" data="range-begin-end.svg">range-begin-end.svg</object>
2419 <div class="caption">
2420 Illustration from cppreference.com</div></div>
2421  <dl class="section return"><dt>Returns</dt><dd>iterator to the first element</dd></dl>
2422 <p>Constant.</p>
2423 <p>This function helps <code><a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a></code> satisfying the <a href="http://en.cppreference.com/w/cpp/concept/Container">Container</a> requirements:</p><ul>
2424 <li>The complexity is constant.</li>
2425 </ul>
2426 <p>{The following code shows an example for <code><a class="el" href="classnlohmann_1_1basic__json.html#a979556eb331ec35eb33472a90a160f99" title="returns an iterator to the first element ">begin()</a></code>.,begin}</p>
2427 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#abeb76f7f3414f270020e6f467586bd93">cbegin()</a> &ndash; returns a const <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the beginning </dd>
2428 <dd>
2429 <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b">end()</a> &ndash; returns an <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end</a> </dd>
2430 <dd>
2431 <a class="el" href="classnlohmann_1_1basic__json.html#a9859a454bb6f50c654e280274d6a9d13">cend()</a> &ndash; returns a const <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end</a></dd></dl>
2432 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
2433
2434 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04647">4647</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
2435 <div class="dynheader">
2436 Here is the caller graph for this function:</div>
2437 <div class="dyncontent">
2438 <div class="center"><img src="classnlohmann_1_1basic__json_a979556eb331ec35eb33472a90a160f99_icgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_a979556eb331ec35eb33472a90a160f99_icgraph" alt=""/></div>
2439 <map name="classnlohmann_1_1basic__json_a979556eb331ec35eb33472a90a160f99_icgraph" id="classnlohmann_1_1basic__json_a979556eb331ec35eb33472a90a160f99_icgraph">
2440 <area shape="rect" id="node2" href="classnlohmann_1_1basic__json.html#a614dd03ce3e99e79c52bedcf55945645" title="applies a JSON patch " alt="" coords="107,5,161,32"/>
2441 <area shape="rect" id="node3" href="classnlohmann_1_1basic__json.html#a2fb1e92221746ff32c5f5c8ff1e7a7f7" title="creates a diff as a JSON patch " alt="" coords="114,56,154,83"/>
2442 </map>
2443 </div>
2444
2445 </div>
2446 </div>
2447 <a id="a1ca1fc2c9fc3e169d5d0decfd1e54221"></a>
2448 <h2 class="memtitle"><span class="permalink"><a href="#a1ca1fc2c9fc3e169d5d0decfd1e54221">&#9670;&nbsp;</a></span>begin() <span class="overload">[2/2]</span></h2>
2449
2450 <div class="memitem">
2451 <div class="memproto">
2452 <table class="mlabels">
2453   <tr>
2454   <td class="mlabels-left">
2455       <table class="memname">
2456         <tr>
2457           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a> begin </td>
2458           <td>(</td>
2459           <td class="paramname"></td><td>)</td>
2460           <td> const</td>
2461         </tr>
2462       </table>
2463   </td>
2464   <td class="mlabels-right">
2465 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
2466   </tr>
2467 </table>
2468 </div><div class="memdoc">
2469
2470 <p>returns a const iterator to the first element </p>
2471 <p>Returns a const iterator to the first element.</p>
2472 <div class="image">
2473 <object type="image/svg+xml" data="range-begin-end.svg">range-begin-end.svg</object>
2474 <div class="caption">
2475 Illustration from cppreference.com</div></div>
2476  <dl class="section return"><dt>Returns</dt><dd>const iterator to the first element</dd></dl>
2477 <p>Constant.</p>
2478 <p>This function helps <code><a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a></code> satisfying the <a href="http://en.cppreference.com/w/cpp/concept/Container">Container</a> requirements:</p><ul>
2479 <li>The complexity is constant.</li>
2480 <li>Has the semantics of <code>const_cast&lt;const <a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a>&amp;&gt;(*this).<a class="el" href="classnlohmann_1_1basic__json.html#a979556eb331ec35eb33472a90a160f99" title="returns an iterator to the first element ">begin()</a></code>.</li>
2481 </ul>
2482 <p>{The following code shows an example for <code><a class="el" href="classnlohmann_1_1basic__json.html#abeb76f7f3414f270020e6f467586bd93" title="returns a const iterator to the first element ">cbegin()</a></code>.,cbegin}</p>
2483 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a979556eb331ec35eb33472a90a160f99">begin()</a> &ndash; returns an <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the beginning </dd>
2484 <dd>
2485 <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b">end()</a> &ndash; returns an <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end</a> </dd>
2486 <dd>
2487 <a class="el" href="classnlohmann_1_1basic__json.html#a9859a454bb6f50c654e280274d6a9d13">cend()</a> &ndash; returns a const <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end</a></dd></dl>
2488 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
2489
2490 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04657">4657</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
2491
2492 </div>
2493 </div>
2494 <a id="abeb76f7f3414f270020e6f467586bd93"></a>
2495 <h2 class="memtitle"><span class="permalink"><a href="#abeb76f7f3414f270020e6f467586bd93">&#9670;&nbsp;</a></span>cbegin()</h2>
2496
2497 <div class="memitem">
2498 <div class="memproto">
2499 <table class="mlabels">
2500   <tr>
2501   <td class="mlabels-left">
2502       <table class="memname">
2503         <tr>
2504           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a> cbegin </td>
2505           <td>(</td>
2506           <td class="paramname"></td><td>)</td>
2507           <td> const</td>
2508         </tr>
2509       </table>
2510   </td>
2511   <td class="mlabels-right">
2512 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
2513   </tr>
2514 </table>
2515 </div><div class="memdoc">
2516
2517 <p>returns a const iterator to the first element </p>
2518 <p>Returns a const iterator to the first element.</p>
2519 <div class="image">
2520 <object type="image/svg+xml" data="range-begin-end.svg">range-begin-end.svg</object>
2521 <div class="caption">
2522 Illustration from cppreference.com</div></div>
2523  <dl class="section return"><dt>Returns</dt><dd>const iterator to the first element</dd></dl>
2524 <p>Constant.</p>
2525 <p>This function helps <code><a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a></code> satisfying the <a href="http://en.cppreference.com/w/cpp/concept/Container">Container</a> requirements:</p><ul>
2526 <li>The complexity is constant.</li>
2527 <li>Has the semantics of <code>const_cast&lt;const <a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a>&amp;&gt;(*this).<a class="el" href="classnlohmann_1_1basic__json.html#a979556eb331ec35eb33472a90a160f99" title="returns an iterator to the first element ">begin()</a></code>.</li>
2528 </ul>
2529 <p>{The following code shows an example for <code><a class="el" href="classnlohmann_1_1basic__json.html#abeb76f7f3414f270020e6f467586bd93" title="returns a const iterator to the first element ">cbegin()</a></code>.,cbegin}</p>
2530 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a979556eb331ec35eb33472a90a160f99">begin()</a> &ndash; returns an <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the beginning </dd>
2531 <dd>
2532 <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b">end()</a> &ndash; returns an <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end</a> </dd>
2533 <dd>
2534 <a class="el" href="classnlohmann_1_1basic__json.html#a9859a454bb6f50c654e280274d6a9d13">cend()</a> &ndash; returns a const <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end</a></dd></dl>
2535 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
2536
2537 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04687">4687</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
2538
2539 </div>
2540 </div>
2541 <a id="a9859a454bb6f50c654e280274d6a9d13"></a>
2542 <h2 class="memtitle"><span class="permalink"><a href="#a9859a454bb6f50c654e280274d6a9d13">&#9670;&nbsp;</a></span>cend()</h2>
2543
2544 <div class="memitem">
2545 <div class="memproto">
2546 <table class="mlabels">
2547   <tr>
2548   <td class="mlabels-left">
2549       <table class="memname">
2550         <tr>
2551           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a> cend </td>
2552           <td>(</td>
2553           <td class="paramname"></td><td>)</td>
2554           <td> const</td>
2555         </tr>
2556       </table>
2557   </td>
2558   <td class="mlabels-right">
2559 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
2560   </tr>
2561 </table>
2562 </div><div class="memdoc">
2563
2564 <p>returns a const iterator to one past the last element </p>
2565 <p>Returns a const iterator to one past the last element.</p>
2566 <div class="image">
2567 <object type="image/svg+xml" data="range-begin-end.svg">range-begin-end.svg</object>
2568 <div class="caption">
2569 Illustration from cppreference.com</div></div>
2570  <dl class="section return"><dt>Returns</dt><dd>const iterator one past the last element</dd></dl>
2571 <p>Constant.</p>
2572 <p>This function helps <code><a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a></code> satisfying the <a href="http://en.cppreference.com/w/cpp/concept/Container">Container</a> requirements:</p><ul>
2573 <li>The complexity is constant.</li>
2574 <li>Has the semantics of <code>const_cast&lt;const <a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a>&amp;&gt;(*this).<a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end()</a></code>.</li>
2575 </ul>
2576 <p>{The following code shows an example for <code><a class="el" href="classnlohmann_1_1basic__json.html#a9859a454bb6f50c654e280274d6a9d13" title="returns a const iterator to one past the last element ">cend()</a></code>.,cend}</p>
2577 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b">end()</a> &ndash; returns an <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end</a> </dd>
2578 <dd>
2579 <a class="el" href="classnlohmann_1_1basic__json.html#a979556eb331ec35eb33472a90a160f99">begin()</a> &ndash; returns an <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the beginning </dd>
2580 <dd>
2581 <a class="el" href="classnlohmann_1_1basic__json.html#abeb76f7f3414f270020e6f467586bd93">cbegin()</a> &ndash; returns a const <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the beginning</dd></dl>
2582 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
2583
2584 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04758">4758</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
2585
2586 </div>
2587 </div>
2588 <a id="a03bfacfaaba9195e4498375659f43531"></a>
2589 <h2 class="memtitle"><span class="permalink"><a href="#a03bfacfaaba9195e4498375659f43531">&#9670;&nbsp;</a></span>clear()</h2>
2590
2591 <div class="memitem">
2592 <div class="memproto">
2593 <table class="mlabels">
2594   <tr>
2595   <td class="mlabels-left">
2596       <table class="memname">
2597         <tr>
2598           <td class="memname">void clear </td>
2599           <td>(</td>
2600           <td class="paramname"></td><td>)</td>
2601           <td></td>
2602         </tr>
2603       </table>
2604   </td>
2605   <td class="mlabels-right">
2606 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
2607   </tr>
2608 </table>
2609 </div><div class="memdoc">
2610
2611 <p>clears the contents </p>
2612 <p>Clears the content of a JSON value and resets it to the default value as if <a class="el" href="classnlohmann_1_1basic__json.html#af2ec44358263a76e8289454bd0514f69">basic_json(value_t)</a> would have been called:</p>
2613 <table class="doxtable">
2614 <tr>
2615 <th>Value type </th><th>initial value  </th></tr>
2616 <tr>
2617 <td>null </td><td><code>null</code> </td></tr>
2618 <tr>
2619 <td>boolean </td><td><code>false</code> </td></tr>
2620 <tr>
2621 <td>string </td><td><code>""</code> </td></tr>
2622 <tr>
2623 <td>number </td><td><code>0</code> </td></tr>
2624 <tr>
2625 <td>object </td><td><code>{}</code> </td></tr>
2626 <tr>
2627 <td>array </td><td><code>[]</code> </td></tr>
2628 </table>
2629 <p>Linear in the size of the JSON value.</p>
2630 <p>{The example below shows the effect of <code><a class="el" href="classnlohmann_1_1basic__json.html#a03bfacfaaba9195e4498375659f43531" title="clears the contents ">clear()</a></code> to different JSON types.,clear}</p>
2631 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
2632
2633 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05162">5162</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
2634
2635 </div>
2636 </div>
2637 <a id="a7e5aaef6e00508e105d713b512c4affa"></a>
2638 <h2 class="memtitle"><span class="permalink"><a href="#a7e5aaef6e00508e105d713b512c4affa">&#9670;&nbsp;</a></span>count()</h2>
2639
2640 <div class="memitem">
2641 <div class="memproto">
2642 <table class="mlabels">
2643   <tr>
2644   <td class="mlabels-left">
2645       <table class="memname">
2646         <tr>
2647           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#af38ce1af42d538f410180c265518d4f0">size_type</a> count </td>
2648           <td>(</td>
2649           <td class="paramtype">typename object_t::key_type&#160;</td>
2650           <td class="paramname"><em>key</em></td><td>)</td>
2651           <td> const</td>
2652         </tr>
2653       </table>
2654   </td>
2655   <td class="mlabels-right">
2656 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2657   </tr>
2658 </table>
2659 </div><div class="memdoc">
2660
2661 <p>returns the number of occurrences of a key in a JSON object </p>
2662 <p>Returns the number of elements with key <em>key</em>. If ObjectType is the default <code>std::map</code> type, the return value will always be <code>0</code> (<em>key</em> was not found) or <code>1</code> (<em>key</em> was found).</p>
2663 <dl class="section note"><dt>Note</dt><dd>This method always returns <code>0</code> when executed on a JSON type that is not an object.</dd></dl>
2664 <dl class="params"><dt>Parameters</dt><dd>
2665   <table class="params">
2666     <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>key value of the element to count</td></tr>
2667   </table>
2668   </dd>
2669 </dl>
2670 <dl class="section return"><dt>Returns</dt><dd>Number of elements with key <em>key</em>. If the JSON value is not an object, the return value will be <code>0</code>.</dd></dl>
2671 <p>Logarithmic in the size of the JSON object.</p>
2672 <p>{The example shows how <code><a class="el" href="classnlohmann_1_1basic__json.html#a7e5aaef6e00508e105d713b512c4affa" title="returns the number of occurrences of a key in a JSON object ">count()</a></code> is used.,count}</p>
2673 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
2674
2675 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04607">4607</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
2676
2677 </div>
2678 </div>
2679 <a id="abd227f43fec65b1bfeb96751b5eea9c4"></a>
2680 <h2 class="memtitle"><span class="permalink"><a href="#abd227f43fec65b1bfeb96751b5eea9c4">&#9670;&nbsp;</a></span>crbegin()</h2>
2681
2682 <div class="memitem">
2683 <div class="memproto">
2684 <table class="mlabels">
2685   <tr>
2686   <td class="mlabels-left">
2687       <table class="memname">
2688         <tr>
2689           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a80e93f4899e95d7ba9f80df4c423b9d5">const_reverse_iterator</a> crbegin </td>
2690           <td>(</td>
2691           <td class="paramname"></td><td>)</td>
2692           <td> const</td>
2693         </tr>
2694       </table>
2695   </td>
2696   <td class="mlabels-right">
2697 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
2698   </tr>
2699 </table>
2700 </div><div class="memdoc">
2701
2702 <p>returns a const reverse iterator to the last element </p>
2703 <p>Returns a const iterator to the reverse-beginning; that is, the last element.</p>
2704 <div class="image">
2705 <object type="image/svg+xml" data="range-rbegin-rend.svg">range-rbegin-rend.svg</object>
2706 <div class="caption">
2707 Illustration from cppreference.com</div></div>
2708 <p>  Constant.</p>
2709 <p>This function helps <code><a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a></code> satisfying the <a href="http://en.cppreference.com/w/cpp/concept/ReversibleContainer">ReversibleContainer</a> requirements:</p><ul>
2710 <li>The complexity is constant.</li>
2711 <li>Has the semantics of <code>const_cast&lt;const <a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a>&amp;&gt;(*this).<a class="el" href="classnlohmann_1_1basic__json.html#ac7cd69c57ab7c76ac6eb26c474a43053" title="returns an iterator to the reverse-beginning ">rbegin()</a></code>.</li>
2712 </ul>
2713 <p>{The following code shows an example for <code><a class="el" href="classnlohmann_1_1basic__json.html#abd227f43fec65b1bfeb96751b5eea9c4" title="returns a const reverse iterator to the last element ">crbegin()</a></code>.,crbegin}</p>
2714 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#ac7cd69c57ab7c76ac6eb26c474a43053">rbegin()</a> &ndash; returns a reverse <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the beginning </dd>
2715 <dd>
2716 <a class="el" href="classnlohmann_1_1basic__json.html#ad4e3dd675f301e0b86183699a2db7d79">rend()</a> &ndash; returns a reverse <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end</a> </dd>
2717 <dd>
2718 <a class="el" href="classnlohmann_1_1basic__json.html#acbe115c4709d004c9899ef5855f96288">crend()</a> &ndash; returns a const reverse <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end</a></dd></dl>
2719 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
2720
2721 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04862">4862</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
2722
2723 </div>
2724 </div>
2725 <a id="acbe115c4709d004c9899ef5855f96288"></a>
2726 <h2 class="memtitle"><span class="permalink"><a href="#acbe115c4709d004c9899ef5855f96288">&#9670;&nbsp;</a></span>crend()</h2>
2727
2728 <div class="memitem">
2729 <div class="memproto">
2730 <table class="mlabels">
2731   <tr>
2732   <td class="mlabels-left">
2733       <table class="memname">
2734         <tr>
2735           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a80e93f4899e95d7ba9f80df4c423b9d5">const_reverse_iterator</a> crend </td>
2736           <td>(</td>
2737           <td class="paramname"></td><td>)</td>
2738           <td> const</td>
2739         </tr>
2740       </table>
2741   </td>
2742   <td class="mlabels-right">
2743 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
2744   </tr>
2745 </table>
2746 </div><div class="memdoc">
2747
2748 <p>returns a const reverse iterator to one before the first </p>
2749 <p>Returns a const reverse iterator to the reverse-end; that is, one before the first element.</p>
2750 <div class="image">
2751 <object type="image/svg+xml" data="range-rbegin-rend.svg">range-rbegin-rend.svg</object>
2752 <div class="caption">
2753 Illustration from cppreference.com</div></div>
2754 <p>  Constant.</p>
2755 <p>This function helps <code><a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a></code> satisfying the <a href="http://en.cppreference.com/w/cpp/concept/ReversibleContainer">ReversibleContainer</a> requirements:</p><ul>
2756 <li>The complexity is constant.</li>
2757 <li>Has the semantics of <code>const_cast&lt;const <a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a>&amp;&gt;(*this).<a class="el" href="classnlohmann_1_1basic__json.html#ad4e3dd675f301e0b86183699a2db7d79" title="returns an iterator to the reverse-end ">rend()</a></code>.</li>
2758 </ul>
2759 <p>{The following code shows an example for <code><a class="el" href="classnlohmann_1_1basic__json.html#acbe115c4709d004c9899ef5855f96288" title="returns a const reverse iterator to one before the first ">crend()</a></code>.,crend}</p>
2760 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#ad4e3dd675f301e0b86183699a2db7d79">rend()</a> &ndash; returns a reverse <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end</a> </dd>
2761 <dd>
2762 <a class="el" href="classnlohmann_1_1basic__json.html#ac7cd69c57ab7c76ac6eb26c474a43053">rbegin()</a> &ndash; returns a reverse <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the beginning </dd>
2763 <dd>
2764 <a class="el" href="classnlohmann_1_1basic__json.html#abd227f43fec65b1bfeb96751b5eea9c4">crbegin()</a> &ndash; returns a const reverse <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the beginning</dd></dl>
2765 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
2766
2767 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04891">4891</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
2768
2769 </div>
2770 </div>
2771 <a id="a2fb1e92221746ff32c5f5c8ff1e7a7f7"></a>
2772 <h2 class="memtitle"><span class="permalink"><a href="#a2fb1e92221746ff32c5f5c8ff1e7a7f7">&#9670;&nbsp;</a></span>diff()</h2>
2773
2774 <div class="memitem">
2775 <div class="memproto">
2776 <table class="mlabels">
2777   <tr>
2778   <td class="mlabels-left">
2779       <table class="memname">
2780         <tr>
2781           <td class="memname">static <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> diff </td>
2782           <td>(</td>
2783           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; &amp;&#160;</td>
2784           <td class="paramname"><em>source</em>, </td>
2785         </tr>
2786         <tr>
2787           <td class="paramkey"></td>
2788           <td></td>
2789           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; &amp;&#160;</td>
2790           <td class="paramname"><em>target</em>, </td>
2791         </tr>
2792         <tr>
2793           <td class="paramkey"></td>
2794           <td></td>
2795           <td class="paramtype">const std::string &amp;&#160;</td>
2796           <td class="paramname"><em>path</em> = <code>&quot;&quot;</code>&#160;</td>
2797         </tr>
2798         <tr>
2799           <td></td>
2800           <td>)</td>
2801           <td></td><td></td>
2802         </tr>
2803       </table>
2804   </td>
2805   <td class="mlabels-right">
2806 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
2807   </tr>
2808 </table>
2809 </div><div class="memdoc">
2810
2811 <p>creates a diff as a JSON patch </p>
2812 <p>Creates a <a href="http://jsonpatch.com">JSON Patch</a> so that value <em>source</em> can be changed into the value <em>target</em> by calling <a class="el" href="classnlohmann_1_1basic__json.html#a614dd03ce3e99e79c52bedcf55945645">patch</a> function.</p>
2813 <dl class="section invariant"><dt>Invariant</dt><dd>For two JSON values <em>source</em> and <em>target</em>, the following code yields always <code>true</code>: <div class="fragment"><div class="line">source.patch(<a class="code" href="classnlohmann_1_1basic__json.html#a2fb1e92221746ff32c5f5c8ff1e7a7f7">diff</a>(source, target)) == target;</div></div><!-- fragment --></dd></dl>
2814 <dl class="section note"><dt>Note</dt><dd>Currently, only <code>remove</code>, <code>add</code>, and <code>replace</code> operations are generated.</dd></dl>
2815 <dl class="params"><dt>Parameters</dt><dd>
2816   <table class="params">
2817     <tr><td class="paramdir">[in]</td><td class="paramname">source</td><td>JSON value to compare from </td></tr>
2818     <tr><td class="paramdir">[in]</td><td class="paramname">target</td><td>JSON value to compare against </td></tr>
2819     <tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>helper value to create JSON pointers</td></tr>
2820   </table>
2821   </dd>
2822 </dl>
2823 <dl class="section return"><dt>Returns</dt><dd>a JSON patch to convert the <em>source</em> to <em>target</em> </dd></dl>
2824 <p>Linear in the lengths of <em>source</em> and <em>target</em>.</p>
2825 <p>{The following code shows how a JSON patch is created as a diff for two JSON values.,diff}</p>
2826 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a614dd03ce3e99e79c52bedcf55945645">patch</a> &ndash; apply a JSON <a class="el" href="classnlohmann_1_1basic__json.html#a614dd03ce3e99e79c52bedcf55945645" title="applies a JSON patch ">patch</a></dd>
2827 <dd>
2828 <a href="https://tools.ietf.org/html/rfc6902">RFC 6902 (JSON Patch)</a></dd></dl>
2829 <dl class="section since"><dt>Since</dt><dd>version 2.0.0 </dd></dl>
2830
2831 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l12742">12742</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
2832 <div class="dynheader">
2833 Here is the call graph for this function:</div>
2834 <div class="dyncontent">
2835 <div class="center"><img src="classnlohmann_1_1basic__json_a2fb1e92221746ff32c5f5c8ff1e7a7f7_cgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_a2fb1e92221746ff32c5f5c8ff1e7a7f7_cgraph" alt=""/></div>
2836 <map name="classnlohmann_1_1basic__json_a2fb1e92221746ff32c5f5c8ff1e7a7f7_cgraph" id="classnlohmann_1_1basic__json_a2fb1e92221746ff32c5f5c8ff1e7a7f7_cgraph">
2837 <area shape="rect" id="node2" href="classnlohmann_1_1basic__json.html#adb8999aa40f92f1a176d8b43dc0ab25b" title="return the type of the JSON value (explicit) " alt="" coords="113,5,159,32"/>
2838 <area shape="rect" id="node3" href="classnlohmann_1_1basic__json.html#aaf38acbc4aaada0a40549bc606f99c4f" title="add an object to an array " alt="" coords="93,56,179,83"/>
2839 <area shape="rect" id="node4" href="classnlohmann_1_1basic__json.html#a0801762a3fe36fe32dca5f16e515478d" title="returns the number of elements " alt="" coords="113,107,159,133"/>
2840 <area shape="rect" id="node5" href="classnlohmann_1_1basic__json.html#a61546bf37d98e9b0d098220009e8376d" title="inserts element " alt="" coords="109,157,163,184"/>
2841 <area shape="rect" id="node6" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element " alt="" coords="115,208,157,235"/>
2842 <area shape="rect" id="node7" href="classnlohmann_1_1basic__json.html#a979556eb331ec35eb33472a90a160f99" title="returns an iterator to the first element " alt="" coords="109,259,163,285"/>
2843 <area shape="rect" id="node8" href="classnlohmann_1_1basic__json.html#a4cf2116be00a99de7addd2c32d71f99d" title="find an element in a JSON object " alt="" coords="115,309,157,336"/>
2844 </map>
2845 </div>
2846
2847 </div>
2848 </div>
2849 <a id="a42de62d3e7b710d0279ac373a22c63eb"></a>
2850 <h2 class="memtitle"><span class="permalink"><a href="#a42de62d3e7b710d0279ac373a22c63eb">&#9670;&nbsp;</a></span>dump()</h2>
2851
2852 <div class="memitem">
2853 <div class="memproto">
2854 <table class="mlabels">
2855   <tr>
2856   <td class="mlabels-left">
2857       <table class="memname">
2858         <tr>
2859           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#aeacc0aa4079b56866238b8845928c2b7">string_t</a> dump </td>
2860           <td>(</td>
2861           <td class="paramtype">const int&#160;</td>
2862           <td class="paramname"><em>indent</em> = <code>-1</code></td><td>)</td>
2863           <td> const</td>
2864         </tr>
2865       </table>
2866   </td>
2867   <td class="mlabels-right">
2868 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2869   </tr>
2870 </table>
2871 </div><div class="memdoc">
2872
2873 <p>serialization </p>
2874 <p>Serialization function for JSON values. The function tries to mimic Python's <code>json.dumps()</code> function, and currently supports its <em>indent</em> parameter.</p>
2875 <dl class="params"><dt>Parameters</dt><dd>
2876   <table class="params">
2877     <tr><td class="paramdir">[in]</td><td class="paramname">indent</td><td>If indent is nonnegative, then array elements and object members will be pretty-printed with that indent level. An indent level of <code>0</code> will only insert newlines. <code>-1</code> (the default) selects the most compact representation.</td></tr>
2878   </table>
2879   </dd>
2880 </dl>
2881 <dl class="section return"><dt>Returns</dt><dd>string containing the serialization of the JSON value</dd></dl>
2882 <p>Linear.</p>
2883 <p>{The following example shows the effect of different <em>indent</em> parameters to the result of the serialization.,dump}</p>
2884 <dl class="section see"><dt>See also</dt><dd><a href="https://docs.python.org/2/library/json.html#json.dump">https://docs.python.org/2/library/json.html#json.dump</a></dd></dl>
2885 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
2886
2887 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l02624">2624</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
2888 <div class="dynheader">
2889 Here is the caller graph for this function:</div>
2890 <div class="dyncontent">
2891 <div class="center"><img src="classnlohmann_1_1basic__json_a42de62d3e7b710d0279ac373a22c63eb_icgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_a42de62d3e7b710d0279ac373a22c63eb_icgraph" alt=""/></div>
2892 <map name="classnlohmann_1_1basic__json_a42de62d3e7b710d0279ac373a22c63eb_icgraph" id="classnlohmann_1_1basic__json_a42de62d3e7b710d0279ac373a22c63eb_icgraph">
2893 <area shape="rect" id="node2" href="structstd_1_1hash_3_01nlohmann_1_1json_01_4.html#ac575ca25c0e836661bdb284b102a6aaf" title="return a hash value for a JSON object " alt="" coords="108,5,252,47"/>
2894 </map>
2895 </div>
2896
2897 </div>
2898 </div>
2899 <a id="a3266031b8b423571de004ddf5bcddd24"></a>
2900 <h2 class="memtitle"><span class="permalink"><a href="#a3266031b8b423571de004ddf5bcddd24">&#9670;&nbsp;</a></span>emplace()</h2>
2901
2902 <div class="memitem">
2903 <div class="memproto">
2904 <table class="mlabels">
2905   <tr>
2906   <td class="mlabels-left">
2907       <table class="memname">
2908         <tr>
2909           <td class="memname">std::pair&lt;<a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">iterator</a>, bool&gt; emplace </td>
2910           <td>(</td>
2911           <td class="paramtype">Args &amp;&amp;...&#160;</td>
2912           <td class="paramname"><em>args</em></td><td>)</td>
2913           <td></td>
2914         </tr>
2915       </table>
2916   </td>
2917   <td class="mlabels-right">
2918 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2919   </tr>
2920 </table>
2921 </div><div class="memdoc">
2922
2923 <p>add an object to an object if key does not exist </p>
2924 <p>Inserts a new element into a JSON object constructed in-place with the given <em>args</em> if there is no element with the key in the container. If the function is called on a JSON null value, an empty object is created before appending the value created from <em>args</em>.</p>
2925 <dl class="params"><dt>Parameters</dt><dd>
2926   <table class="params">
2927     <tr><td class="paramdir">[in]</td><td class="paramname">args</td><td>arguments to forward to a constructor of <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> </td></tr>
2928   </table>
2929   </dd>
2930 </dl>
2931 <dl class="tparams"><dt>Template Parameters</dt><dd>
2932   <table class="tparams">
2933     <tr><td class="paramname">Args</td><td>compatible types to create a <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> object</td></tr>
2934   </table>
2935   </dd>
2936 </dl>
2937 <dl class="section return"><dt>Returns</dt><dd>a pair consisting of an iterator to the inserted element, or the already-existing element if no insertion happened, and a bool denoting whether the insertion took place.</dd></dl>
2938 <dl class="exception"><dt>Exceptions</dt><dd>
2939   <table class="exception">
2940     <tr><td class="paramname">std::domain_error</td><td>when called on a type other than JSON object or null; example: <code>"cannot use emplace() with number"</code></td></tr>
2941   </table>
2942   </dd>
2943 </dl>
2944 <p>Logarithmic in the size of the container, O(log(<code><a class="el" href="classnlohmann_1_1basic__json.html#a0801762a3fe36fe32dca5f16e515478d" title="returns the number of elements ">size()</a></code>)).</p>
2945 <p>{The example shows how <code><a class="el" href="classnlohmann_1_1basic__json.html#a3266031b8b423571de004ddf5bcddd24" title="add an object to an object if key does not exist ">emplace()</a></code> can be used to add elements to a JSON object. Note how the <code>null</code> value was silently converted to a JSON object. Further note how no value is added if there was already one value stored with the same key.,emplace}</p>
2946 <dl class="section since"><dt>Since</dt><dd>version 2.0.8 </dd></dl>
2947
2948 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05469">5469</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
2949
2950 </div>
2951 </div>
2952 <a id="ac294eba73765b9a72a7399d64e8ecd9a"></a>
2953 <h2 class="memtitle"><span class="permalink"><a href="#ac294eba73765b9a72a7399d64e8ecd9a">&#9670;&nbsp;</a></span>emplace_back()</h2>
2954
2955 <div class="memitem">
2956 <div class="memproto">
2957 <table class="mlabels">
2958   <tr>
2959   <td class="mlabels-left">
2960       <table class="memname">
2961         <tr>
2962           <td class="memname">void emplace_back </td>
2963           <td>(</td>
2964           <td class="paramtype">Args &amp;&amp;...&#160;</td>
2965           <td class="paramname"><em>args</em></td><td>)</td>
2966           <td></td>
2967         </tr>
2968       </table>
2969   </td>
2970   <td class="mlabels-right">
2971 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2972   </tr>
2973 </table>
2974 </div><div class="memdoc">
2975
2976 <p>add an object to an array </p>
2977 <p>Creates a JSON value from the passed parameters <em>args</em> to the end of the JSON value. If the function is called on a JSON null value, an empty array is created before appending the value created from <em>args</em>.</p>
2978 <dl class="params"><dt>Parameters</dt><dd>
2979   <table class="params">
2980     <tr><td class="paramdir">[in]</td><td class="paramname">args</td><td>arguments to forward to a constructor of <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> </td></tr>
2981   </table>
2982   </dd>
2983 </dl>
2984 <dl class="tparams"><dt>Template Parameters</dt><dd>
2985   <table class="tparams">
2986     <tr><td class="paramname">Args</td><td>compatible types to create a <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> object</td></tr>
2987   </table>
2988   </dd>
2989 </dl>
2990 <dl class="exception"><dt>Exceptions</dt><dd>
2991   <table class="exception">
2992     <tr><td class="paramname">std::domain_error</td><td>when called on a type other than JSON array or null; example: <code>"cannot use emplace_back() with number"</code></td></tr>
2993   </table>
2994   </dd>
2995 </dl>
2996 <p>Amortized constant.</p>
2997 <p>{The example shows how <code><a class="el" href="classnlohmann_1_1basic__json.html#aaf38acbc4aaada0a40549bc606f99c4f" title="add an object to an array ">push_back()</a></code> can be used to add elements to a JSON array. Note how the <code>null</code> value was silently converted to a JSON array.,emplace_back}</p>
2998 <dl class="section since"><dt>Since</dt><dd>version 2.0.8 </dd></dl>
2999
3000 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05421">5421</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
3001
3002 </div>
3003 </div>
3004 <a id="a3f6fc5de06a318920d84f3c3742db07f"></a>
3005 <h2 class="memtitle"><span class="permalink"><a href="#a3f6fc5de06a318920d84f3c3742db07f">&#9670;&nbsp;</a></span>empty()</h2>
3006
3007 <div class="memitem">
3008 <div class="memproto">
3009 <table class="mlabels">
3010   <tr>
3011   <td class="mlabels-left">
3012       <table class="memname">
3013         <tr>
3014           <td class="memname">bool empty </td>
3015           <td>(</td>
3016           <td class="paramname"></td><td>)</td>
3017           <td> const</td>
3018         </tr>
3019       </table>
3020   </td>
3021   <td class="mlabels-right">
3022 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
3023   </tr>
3024 </table>
3025 </div><div class="memdoc">
3026
3027 <p>checks whether the container is empty </p>
3028 <p>Checks if a JSON value has no elements.</p>
3029 <dl class="section return"><dt>Returns</dt><dd>The return value depends on the different types and is defined as follows: <table class="doxtable">
3030 <tr>
3031 <th>Value type </th><th>return value  </th></tr>
3032 <tr>
3033 <td>null </td><td><code>true</code> </td></tr>
3034 <tr>
3035 <td>boolean </td><td><code>false</code> </td></tr>
3036 <tr>
3037 <td>string </td><td><code>false</code> </td></tr>
3038 <tr>
3039 <td>number </td><td><code>false</code> </td></tr>
3040 <tr>
3041 <td>object </td><td>result of function <code>object_t::empty()</code> </td></tr>
3042 <tr>
3043 <td>array </td><td>result of function <code>array_t::empty()</code> </td></tr>
3044 </table>
3045 </dd></dl>
3046 <dl class="section note"><dt>Note</dt><dd>This function does not return whether a string stored as JSON value is empty - it returns whether the JSON container itself is empty which is false in the case of a string.</dd></dl>
3047 <p>Constant, as long as <a class="el" href="classnlohmann_1_1basic__json.html#a289ffe7b795d293d233d03cfc60bcd15">array_t</a> and <a class="el" href="classnlohmann_1_1basic__json.html#a143db8a40359a56372e21a8feea66454">object_t</a> satisfy the Container concept; that is, their <code><a class="el" href="classnlohmann_1_1basic__json.html#a3f6fc5de06a318920d84f3c3742db07f" title="checks whether the container is empty ">empty()</a></code> functions have constant complexity.</p>
3048 <p>This function helps <code><a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a></code> satisfying the <a href="http://en.cppreference.com/w/cpp/concept/Container">Container</a> requirements:</p><ul>
3049 <li>The complexity is constant.</li>
3050 <li>Has the semantics of <code><a class="el" href="classnlohmann_1_1basic__json.html#a979556eb331ec35eb33472a90a160f99" title="returns an iterator to the first element ">begin()</a> == <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end()</a></code>.</li>
3051 </ul>
3052 <p>{The following code uses <code><a class="el" href="classnlohmann_1_1basic__json.html#a3f6fc5de06a318920d84f3c3742db07f" title="checks whether the container is empty ">empty()</a></code> to check if a JSON object contains any elements.,empty}</p>
3053 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a0801762a3fe36fe32dca5f16e515478d">size()</a> &ndash; returns the number of elements</dd></dl>
3054 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
3055
3056 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04972">4972</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
3057
3058 </div>
3059 </div>
3060 <a id="afc5380afa64b233d0df01a147616974b"></a>
3061 <h2 class="memtitle"><span class="permalink"><a href="#afc5380afa64b233d0df01a147616974b">&#9670;&nbsp;</a></span>end() <span class="overload">[1/2]</span></h2>
3062
3063 <div class="memitem">
3064 <div class="memproto">
3065 <table class="mlabels">
3066   <tr>
3067   <td class="mlabels-left">
3068       <table class="memname">
3069         <tr>
3070           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">iterator</a> end </td>
3071           <td>(</td>
3072           <td class="paramname"></td><td>)</td>
3073           <td></td>
3074         </tr>
3075       </table>
3076   </td>
3077   <td class="mlabels-right">
3078 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
3079   </tr>
3080 </table>
3081 </div><div class="memdoc">
3082
3083 <p>returns an iterator to one past the last element </p>
3084 <p>Returns an iterator to one past the last element.</p>
3085 <div class="image">
3086 <object type="image/svg+xml" data="range-begin-end.svg">range-begin-end.svg</object>
3087 <div class="caption">
3088 Illustration from cppreference.com</div></div>
3089  <dl class="section return"><dt>Returns</dt><dd>iterator one past the last element</dd></dl>
3090 <p>Constant.</p>
3091 <p>This function helps <code><a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a></code> satisfying the <a href="http://en.cppreference.com/w/cpp/concept/Container">Container</a> requirements:</p><ul>
3092 <li>The complexity is constant.</li>
3093 </ul>
3094 <p>{The following code shows an example for <code><a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end()</a></code>.,end}</p>
3095 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a9859a454bb6f50c654e280274d6a9d13">cend()</a> &ndash; returns a const <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end</a> </dd>
3096 <dd>
3097 <a class="el" href="classnlohmann_1_1basic__json.html#a979556eb331ec35eb33472a90a160f99">begin()</a> &ndash; returns an <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the beginning </dd>
3098 <dd>
3099 <a class="el" href="classnlohmann_1_1basic__json.html#abeb76f7f3414f270020e6f467586bd93">cbegin()</a> &ndash; returns a const <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the beginning</dd></dl>
3100 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
3101
3102 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04718">4718</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
3103 <div class="dynheader">
3104 Here is the caller graph for this function:</div>
3105 <div class="dyncontent">
3106 <div class="center"><img src="classnlohmann_1_1basic__json_afc5380afa64b233d0df01a147616974b_icgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_afc5380afa64b233d0df01a147616974b_icgraph" alt=""/></div>
3107 <map name="classnlohmann_1_1basic__json_afc5380afa64b233d0df01a147616974b_icgraph" id="classnlohmann_1_1basic__json_afc5380afa64b233d0df01a147616974b_icgraph">
3108 <area shape="rect" id="node2" href="classnlohmann_1_1basic__json.html#a614dd03ce3e99e79c52bedcf55945645" title="applies a JSON patch " alt="" coords="96,5,151,32"/>
3109 <area shape="rect" id="node3" href="classnlohmann_1_1basic__json.html#a2fb1e92221746ff32c5f5c8ff1e7a7f7" title="creates a diff as a JSON patch " alt="" coords="103,56,143,83"/>
3110 </map>
3111 </div>
3112
3113 </div>
3114 </div>
3115 <a id="a5b9b57293fae9b18b26349ac0b3fdcd3"></a>
3116 <h2 class="memtitle"><span class="permalink"><a href="#a5b9b57293fae9b18b26349ac0b3fdcd3">&#9670;&nbsp;</a></span>end() <span class="overload">[2/2]</span></h2>
3117
3118 <div class="memitem">
3119 <div class="memproto">
3120 <table class="mlabels">
3121   <tr>
3122   <td class="mlabels-left">
3123       <table class="memname">
3124         <tr>
3125           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a> end </td>
3126           <td>(</td>
3127           <td class="paramname"></td><td>)</td>
3128           <td> const</td>
3129         </tr>
3130       </table>
3131   </td>
3132   <td class="mlabels-right">
3133 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
3134   </tr>
3135 </table>
3136 </div><div class="memdoc">
3137
3138 <p>returns a const iterator to one past the last element </p>
3139 <p>Returns a const iterator to one past the last element.</p>
3140 <div class="image">
3141 <object type="image/svg+xml" data="range-begin-end.svg">range-begin-end.svg</object>
3142 <div class="caption">
3143 Illustration from cppreference.com</div></div>
3144  <dl class="section return"><dt>Returns</dt><dd>const iterator one past the last element</dd></dl>
3145 <p>Constant.</p>
3146 <p>This function helps <code><a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a></code> satisfying the <a href="http://en.cppreference.com/w/cpp/concept/Container">Container</a> requirements:</p><ul>
3147 <li>The complexity is constant.</li>
3148 <li>Has the semantics of <code>const_cast&lt;const <a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a>&amp;&gt;(*this).<a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end()</a></code>.</li>
3149 </ul>
3150 <p>{The following code shows an example for <code><a class="el" href="classnlohmann_1_1basic__json.html#a9859a454bb6f50c654e280274d6a9d13" title="returns a const iterator to one past the last element ">cend()</a></code>.,cend}</p>
3151 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b">end()</a> &ndash; returns an <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end</a> </dd>
3152 <dd>
3153 <a class="el" href="classnlohmann_1_1basic__json.html#a979556eb331ec35eb33472a90a160f99">begin()</a> &ndash; returns an <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the beginning </dd>
3154 <dd>
3155 <a class="el" href="classnlohmann_1_1basic__json.html#abeb76f7f3414f270020e6f467586bd93">cbegin()</a> &ndash; returns a const <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the beginning</dd></dl>
3156 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
3157
3158 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04728">4728</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
3159
3160 </div>
3161 </div>
3162 <a id="a05a2d4678b130a13b4bcbc62f4318d72"></a>
3163 <h2 class="memtitle"><span class="permalink"><a href="#a05a2d4678b130a13b4bcbc62f4318d72">&#9670;&nbsp;</a></span>erase() <span class="overload">[1/4]</span></h2>
3164
3165 <div class="memitem">
3166 <div class="memproto">
3167 <table class="mlabels">
3168   <tr>
3169   <td class="mlabels-left">
3170       <table class="memname">
3171         <tr>
3172           <td class="memname">IteratorType erase </td>
3173           <td>(</td>
3174           <td class="paramtype">IteratorType&#160;</td>
3175           <td class="paramname"><em>pos</em></td><td>)</td>
3176           <td></td>
3177         </tr>
3178       </table>
3179   </td>
3180   <td class="mlabels-right">
3181 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
3182   </tr>
3183 </table>
3184 </div><div class="memdoc">
3185
3186 <p>remove element given an iterator </p>
3187 <p>Removes the element specified by iterator <em>pos</em>. The iterator <em>pos</em> must be valid and dereferenceable. Thus the <code><a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end()</a></code> iterator (which is valid, but is not dereferenceable) cannot be used as a value for <em>pos</em>.</p>
3188 <p>If called on a primitive type other than <code>null</code>, the resulting JSON value will be <code>null</code>.</p>
3189 <dl class="params"><dt>Parameters</dt><dd>
3190   <table class="params">
3191     <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>iterator to the element to remove </td></tr>
3192   </table>
3193   </dd>
3194 </dl>
3195 <dl class="section return"><dt>Returns</dt><dd>Iterator following the last removed element. If the iterator <em>pos</em> refers to the last element, the <code><a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end()</a></code> iterator is returned.</dd></dl>
3196 <dl class="tparams"><dt>Template Parameters</dt><dd>
3197   <table class="tparams">
3198     <tr><td class="paramname">IteratorType</td><td>an <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">iterator</a> or <a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a></td></tr>
3199   </table>
3200   </dd>
3201 </dl>
3202 <dl class="section post"><dt>Postcondition</dt><dd>Invalidates iterators and references at or after the point of the erase, including the <code><a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end()</a></code> iterator.</dd></dl>
3203 <dl class="exception"><dt>Exceptions</dt><dd>
3204   <table class="exception">
3205     <tr><td class="paramname">std::domain_error</td><td>if called on a <code>null</code> value; example: <code>"cannot
3206 use erase() with null"</code> </td></tr>
3207     <tr><td class="paramname">std::domain_error</td><td>if called on an iterator which does not belong to the current JSON value; example: <code>"iterator does not fit current value"</code> </td></tr>
3208     <tr><td class="paramname">std::out_of_range</td><td>if called on a primitive type with invalid iterator (i.e., any iterator which is not <code><a class="el" href="classnlohmann_1_1basic__json.html#a979556eb331ec35eb33472a90a160f99" title="returns an iterator to the first element ">begin()</a></code>); example: <code>"iterator
3209 out of range"</code></td></tr>
3210   </table>
3211   </dd>
3212 </dl>
3213 <p>The complexity depends on the type:</p><ul>
3214 <li>objects: amortized constant</li>
3215 <li>arrays: linear in distance between <em>pos</em> and the end of the container</li>
3216 <li>strings: linear in the length of the string</li>
3217 <li>other types: constant</li>
3218 </ul>
3219 <p>{The example shows the result of <code><a class="el" href="classnlohmann_1_1basic__json.html#a05a2d4678b130a13b4bcbc62f4318d72" title="remove element given an iterator ">erase()</a></code> for different JSON types.,erase__IteratorType}</p>
3220 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#ae6435ba8565966a32cbaa5f3b7a9429f">erase(IteratorType, IteratorType)</a> &ndash; removes the elements in the given range </dd>
3221 <dd>
3222 <a class="el" href="classnlohmann_1_1basic__json.html#a506aa484ea4e1a2cee6b9f77c33b7979">erase(const typename object_t::key_type&amp;)</a> &ndash; removes the element from an <a class="el" href="classnlohmann_1_1basic__json.html#a6955fcba671f39d7d04164ef034aada8" title="explicitly create an object from an initializer list ">object</a> <a class="el" href="classnlohmann_1_1basic__json.html#a3d5717f39bfe485057850f116fb2ed12" title="access specified array element with bounds checking ">at</a> the given key </dd>
3223 <dd>
3224 <a class="el" href="classnlohmann_1_1basic__json.html#a2dd65c471eadf1651db73f3c1f155bfd">erase(const size_type)</a> &ndash; removes the element from an <a class="el" href="classnlohmann_1_1basic__json.html#a16bfbc9e705582cdf7e88affced6ca51" title="explicitly create an array from an initializer list ">array</a> <a class="el" href="classnlohmann_1_1basic__json.html#a3d5717f39bfe485057850f116fb2ed12" title="access specified array element with bounds checking ">at</a> the given index</dd></dl>
3225 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
3226
3227 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04278">4278</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
3228 <div class="dynheader">
3229 Here is the caller graph for this function:</div>
3230 <div class="dyncontent">
3231 <div class="center"><img src="classnlohmann_1_1basic__json_a05a2d4678b130a13b4bcbc62f4318d72_icgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_a05a2d4678b130a13b4bcbc62f4318d72_icgraph" alt=""/></div>
3232 <map name="classnlohmann_1_1basic__json_a05a2d4678b130a13b4bcbc62f4318d72_icgraph" id="classnlohmann_1_1basic__json_a05a2d4678b130a13b4bcbc62f4318d72_icgraph">
3233 <area shape="rect" id="node2" href="classnlohmann_1_1basic__json.html#a614dd03ce3e99e79c52bedcf55945645" title="applies a JSON patch " alt="" coords="108,5,163,32"/>
3234 </map>
3235 </div>
3236
3237 </div>
3238 </div>
3239 <a id="ae6435ba8565966a32cbaa5f3b7a9429f"></a>
3240 <h2 class="memtitle"><span class="permalink"><a href="#ae6435ba8565966a32cbaa5f3b7a9429f">&#9670;&nbsp;</a></span>erase() <span class="overload">[2/4]</span></h2>
3241
3242 <div class="memitem">
3243 <div class="memproto">
3244 <table class="mlabels">
3245   <tr>
3246   <td class="mlabels-left">
3247       <table class="memname">
3248         <tr>
3249           <td class="memname">IteratorType erase </td>
3250           <td>(</td>
3251           <td class="paramtype">IteratorType&#160;</td>
3252           <td class="paramname"><em>first</em>, </td>
3253         </tr>
3254         <tr>
3255           <td class="paramkey"></td>
3256           <td></td>
3257           <td class="paramtype">IteratorType&#160;</td>
3258           <td class="paramname"><em>last</em>&#160;</td>
3259         </tr>
3260         <tr>
3261           <td></td>
3262           <td>)</td>
3263           <td></td><td></td>
3264         </tr>
3265       </table>
3266   </td>
3267   <td class="mlabels-right">
3268 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
3269   </tr>
3270 </table>
3271 </div><div class="memdoc">
3272
3273 <p>remove elements given an iterator range </p>
3274 <p>Removes the element specified by the range <code>[first; last)</code>. The iterator <em>first</em> does not need to be dereferenceable if <code>first == last</code>: erasing an empty range is a no-op.</p>
3275 <p>If called on a primitive type other than <code>null</code>, the resulting JSON value will be <code>null</code>.</p>
3276 <dl class="params"><dt>Parameters</dt><dd>
3277   <table class="params">
3278     <tr><td class="paramdir">[in]</td><td class="paramname">first</td><td>iterator to the beginning of the range to remove </td></tr>
3279     <tr><td class="paramdir">[in]</td><td class="paramname">last</td><td>iterator past the end of the range to remove </td></tr>
3280   </table>
3281   </dd>
3282 </dl>
3283 <dl class="section return"><dt>Returns</dt><dd>Iterator following the last removed element. If the iterator <em>second</em> refers to the last element, the <code><a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end()</a></code> iterator is returned.</dd></dl>
3284 <dl class="tparams"><dt>Template Parameters</dt><dd>
3285   <table class="tparams">
3286     <tr><td class="paramname">IteratorType</td><td>an <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">iterator</a> or <a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a></td></tr>
3287   </table>
3288   </dd>
3289 </dl>
3290 <dl class="section post"><dt>Postcondition</dt><dd>Invalidates iterators and references at or after the point of the erase, including the <code><a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end()</a></code> iterator.</dd></dl>
3291 <dl class="exception"><dt>Exceptions</dt><dd>
3292   <table class="exception">
3293     <tr><td class="paramname">std::domain_error</td><td>if called on a <code>null</code> value; example: <code>"cannot
3294 use erase() with null"</code> </td></tr>
3295     <tr><td class="paramname">std::domain_error</td><td>if called on iterators which does not belong to the current JSON value; example: <code>"iterators do not fit current value"</code> </td></tr>
3296     <tr><td class="paramname">std::out_of_range</td><td>if called on a primitive type with invalid iterators (i.e., if <code>first != <a class="el" href="classnlohmann_1_1basic__json.html#a979556eb331ec35eb33472a90a160f99" title="returns an iterator to the first element ">begin()</a></code> and <code>last != <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end()</a></code>); example: <code>"iterators out of range"</code></td></tr>
3297   </table>
3298   </dd>
3299 </dl>
3300 <p>The complexity depends on the type:</p><ul>
3301 <li>objects: <code>log(size()) + std::distance(first, last)</code></li>
3302 <li>arrays: linear in the distance between <em>first</em> and <em>last</em>, plus linear in the distance between <em>last</em> and end of the container</li>
3303 <li>strings: linear in the length of the string</li>
3304 <li>other types: constant</li>
3305 </ul>
3306 <p>{The example shows the result of <code><a class="el" href="classnlohmann_1_1basic__json.html#a05a2d4678b130a13b4bcbc62f4318d72" title="remove element given an iterator ">erase()</a></code> for different JSON types.,erase__IteratorType_IteratorType}</p>
3307 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a05a2d4678b130a13b4bcbc62f4318d72">erase(IteratorType)</a> &ndash; removes the element <a class="el" href="classnlohmann_1_1basic__json.html#a3d5717f39bfe485057850f116fb2ed12" title="access specified array element with bounds checking ">at</a> a given position </dd>
3308 <dd>
3309 <a class="el" href="classnlohmann_1_1basic__json.html#a506aa484ea4e1a2cee6b9f77c33b7979">erase(const typename object_t::key_type&amp;)</a> &ndash; removes the element from an <a class="el" href="classnlohmann_1_1basic__json.html#a6955fcba671f39d7d04164ef034aada8" title="explicitly create an object from an initializer list ">object</a> <a class="el" href="classnlohmann_1_1basic__json.html#a3d5717f39bfe485057850f116fb2ed12" title="access specified array element with bounds checking ">at</a> the given key </dd>
3310 <dd>
3311 <a class="el" href="classnlohmann_1_1basic__json.html#a2dd65c471eadf1651db73f3c1f155bfd">erase(const size_type)</a> &ndash; removes the element from an <a class="el" href="classnlohmann_1_1basic__json.html#a16bfbc9e705582cdf7e88affced6ca51" title="explicitly create an array from an initializer list ">array</a> <a class="el" href="classnlohmann_1_1basic__json.html#a3d5717f39bfe485057850f116fb2ed12" title="access specified array element with bounds checking ">at</a> the given index</dd></dl>
3312 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
3313
3314 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04385">4385</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
3315
3316 </div>
3317 </div>
3318 <a id="a506aa484ea4e1a2cee6b9f77c33b7979"></a>
3319 <h2 class="memtitle"><span class="permalink"><a href="#a506aa484ea4e1a2cee6b9f77c33b7979">&#9670;&nbsp;</a></span>erase() <span class="overload">[3/4]</span></h2>
3320
3321 <div class="memitem">
3322 <div class="memproto">
3323 <table class="mlabels">
3324   <tr>
3325   <td class="mlabels-left">
3326       <table class="memname">
3327         <tr>
3328           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#af38ce1af42d538f410180c265518d4f0">size_type</a> erase </td>
3329           <td>(</td>
3330           <td class="paramtype">const typename object_t::key_type &amp;&#160;</td>
3331           <td class="paramname"><em>key</em></td><td>)</td>
3332           <td></td>
3333         </tr>
3334       </table>
3335   </td>
3336   <td class="mlabels-right">
3337 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
3338   </tr>
3339 </table>
3340 </div><div class="memdoc">
3341
3342 <p>remove element from a JSON object given a key </p>
3343 <p>Removes elements from a JSON object with the key value <em>key</em>.</p>
3344 <dl class="params"><dt>Parameters</dt><dd>
3345   <table class="params">
3346     <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>value of the elements to remove</td></tr>
3347   </table>
3348   </dd>
3349 </dl>
3350 <dl class="section return"><dt>Returns</dt><dd>Number of elements removed. If <em>ObjectType</em> is the default <code>std::map</code> type, the return value will always be <code>0</code> (<em>key</em> was not found) or <code>1</code> (<em>key</em> was found).</dd></dl>
3351 <dl class="section post"><dt>Postcondition</dt><dd>References and iterators to the erased elements are invalidated. Other references and iterators are not affected.</dd></dl>
3352 <dl class="exception"><dt>Exceptions</dt><dd>
3353   <table class="exception">
3354     <tr><td class="paramname">std::domain_error</td><td>when called on a type other than JSON object; example: <code>"cannot use erase() with null"</code></td></tr>
3355   </table>
3356   </dd>
3357 </dl>
3358 <p><code>log(size()) + count(key)</code></p>
3359 <p>{The example shows the effect of <code><a class="el" href="classnlohmann_1_1basic__json.html#a05a2d4678b130a13b4bcbc62f4318d72" title="remove element given an iterator ">erase()</a></code>.,erase__key_type}</p>
3360 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a05a2d4678b130a13b4bcbc62f4318d72">erase(IteratorType)</a> &ndash; removes the element <a class="el" href="classnlohmann_1_1basic__json.html#a3d5717f39bfe485057850f116fb2ed12" title="access specified array element with bounds checking ">at</a> a given position </dd>
3361 <dd>
3362 <a class="el" href="classnlohmann_1_1basic__json.html#ae6435ba8565966a32cbaa5f3b7a9429f">erase(IteratorType, IteratorType)</a> &ndash; removes the elements in the given range </dd>
3363 <dd>
3364 <a class="el" href="classnlohmann_1_1basic__json.html#a2dd65c471eadf1651db73f3c1f155bfd">erase(const size_type)</a> &ndash; removes the element from an <a class="el" href="classnlohmann_1_1basic__json.html#a16bfbc9e705582cdf7e88affced6ca51" title="explicitly create an array from an initializer list ">array</a> <a class="el" href="classnlohmann_1_1basic__json.html#a3d5717f39bfe485057850f116fb2ed12" title="access specified array element with bounds checking ">at</a> the given index</dd></dl>
3365 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
3366
3367 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04473">4473</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
3368
3369 </div>
3370 </div>
3371 <a id="a2dd65c471eadf1651db73f3c1f155bfd"></a>
3372 <h2 class="memtitle"><span class="permalink"><a href="#a2dd65c471eadf1651db73f3c1f155bfd">&#9670;&nbsp;</a></span>erase() <span class="overload">[4/4]</span></h2>
3373
3374 <div class="memitem">
3375 <div class="memproto">
3376 <table class="mlabels">
3377   <tr>
3378   <td class="mlabels-left">
3379       <table class="memname">
3380         <tr>
3381           <td class="memname">void erase </td>
3382           <td>(</td>
3383           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json.html#af38ce1af42d538f410180c265518d4f0">size_type</a>&#160;</td>
3384           <td class="paramname"><em>idx</em></td><td>)</td>
3385           <td></td>
3386         </tr>
3387       </table>
3388   </td>
3389   <td class="mlabels-right">
3390 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
3391   </tr>
3392 </table>
3393 </div><div class="memdoc">
3394
3395 <p>remove element from a JSON array given an index </p>
3396 <p>Removes element from a JSON array at the index <em>idx</em>.</p>
3397 <dl class="params"><dt>Parameters</dt><dd>
3398   <table class="params">
3399     <tr><td class="paramdir">[in]</td><td class="paramname">idx</td><td>index of the element to remove</td></tr>
3400   </table>
3401   </dd>
3402 </dl>
3403 <dl class="exception"><dt>Exceptions</dt><dd>
3404   <table class="exception">
3405     <tr><td class="paramname">std::domain_error</td><td>when called on a type other than JSON array; example: <code>"cannot use erase() with null"</code> </td></tr>
3406     <tr><td class="paramname">std::out_of_range</td><td>when <code>idx &gt;= <a class="el" href="classnlohmann_1_1basic__json.html#a0801762a3fe36fe32dca5f16e515478d" title="returns the number of elements ">size()</a></code>; example: <code>"array index 17
3407 is out of range"</code></td></tr>
3408   </table>
3409   </dd>
3410 </dl>
3411 <p>Linear in distance between <em>idx</em> and the end of the container.</p>
3412 <p>{The example shows the effect of <code><a class="el" href="classnlohmann_1_1basic__json.html#a05a2d4678b130a13b4bcbc62f4318d72" title="remove element given an iterator ">erase()</a></code>.,erase__size_type}</p>
3413 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a05a2d4678b130a13b4bcbc62f4318d72">erase(IteratorType)</a> &ndash; removes the element <a class="el" href="classnlohmann_1_1basic__json.html#a3d5717f39bfe485057850f116fb2ed12" title="access specified array element with bounds checking ">at</a> a given position </dd>
3414 <dd>
3415 <a class="el" href="classnlohmann_1_1basic__json.html#ae6435ba8565966a32cbaa5f3b7a9429f">erase(IteratorType, IteratorType)</a> &ndash; removes the elements in the given range </dd>
3416 <dd>
3417 <a class="el" href="classnlohmann_1_1basic__json.html#a506aa484ea4e1a2cee6b9f77c33b7979">erase(const typename object_t::key_type&amp;)</a> &ndash; removes the element from an <a class="el" href="classnlohmann_1_1basic__json.html#a6955fcba671f39d7d04164ef034aada8" title="explicitly create an object from an initializer list ">object</a> <a class="el" href="classnlohmann_1_1basic__json.html#a3d5717f39bfe485057850f116fb2ed12" title="access specified array element with bounds checking ">at</a> the given key</dd></dl>
3418 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
3419
3420 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04508">4508</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
3421
3422 </div>
3423 </div>
3424 <a id="a4cf2116be00a99de7addd2c32d71f99d"></a>
3425 <h2 class="memtitle"><span class="permalink"><a href="#a4cf2116be00a99de7addd2c32d71f99d">&#9670;&nbsp;</a></span>find() <span class="overload">[1/2]</span></h2>
3426
3427 <div class="memitem">
3428 <div class="memproto">
3429 <table class="mlabels">
3430   <tr>
3431   <td class="mlabels-left">
3432       <table class="memname">
3433         <tr>
3434           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">iterator</a> find </td>
3435           <td>(</td>
3436           <td class="paramtype">typename object_t::key_type&#160;</td>
3437           <td class="paramname"><em>key</em></td><td>)</td>
3438           <td></td>
3439         </tr>
3440       </table>
3441   </td>
3442   <td class="mlabels-right">
3443 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
3444   </tr>
3445 </table>
3446 </div><div class="memdoc">
3447
3448 <p>find an element in a JSON object </p>
3449 <p>Finds an element in a JSON object with key equivalent to <em>key</em>. If the element is not found or the JSON value is not an object, <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end()</a> is returned.</p>
3450 <dl class="section note"><dt>Note</dt><dd>This method always returns <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b">end()</a> when executed on a JSON type that is not an object.</dd></dl>
3451 <dl class="params"><dt>Parameters</dt><dd>
3452   <table class="params">
3453     <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>key value of the element to search for</td></tr>
3454   </table>
3455   </dd>
3456 </dl>
3457 <dl class="section return"><dt>Returns</dt><dd>Iterator to an element with key equivalent to <em>key</em>. If no such element is found or the JSON value is not an object, past-the-end (see <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b">end()</a>) iterator is returned.</dd></dl>
3458 <p>Logarithmic in the size of the JSON object.</p>
3459 <p>{The example shows how <code><a class="el" href="classnlohmann_1_1basic__json.html#a4cf2116be00a99de7addd2c32d71f99d" title="find an element in a JSON object ">find()</a></code> is used.,find__key_type}</p>
3460 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
3461
3462 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04558">4558</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
3463 <div class="dynheader">
3464 Here is the caller graph for this function:</div>
3465 <div class="dyncontent">
3466 <div class="center"><img src="classnlohmann_1_1basic__json_a4cf2116be00a99de7addd2c32d71f99d_icgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_a4cf2116be00a99de7addd2c32d71f99d_icgraph" alt=""/></div>
3467 <map name="classnlohmann_1_1basic__json_a4cf2116be00a99de7addd2c32d71f99d_icgraph" id="classnlohmann_1_1basic__json_a4cf2116be00a99de7addd2c32d71f99d_icgraph">
3468 <area shape="rect" id="node2" href="classnlohmann_1_1basic__json.html#a21e205d45fed194dec979bc1ea5388ac" title="read&#45;only access specified object element " alt="" coords="96,5,173,32"/>
3469 <area shape="rect" id="node3" href="classnlohmann_1_1basic__json.html#a614dd03ce3e99e79c52bedcf55945645" title="applies a JSON patch " alt="" coords="107,56,162,83"/>
3470 <area shape="rect" id="node4" href="classnlohmann_1_1basic__json.html#a2fb1e92221746ff32c5f5c8ff1e7a7f7" title="creates a diff as a JSON patch " alt="" coords="115,107,155,133"/>
3471 </map>
3472 </div>
3473
3474 </div>
3475 </div>
3476 <a id="a22458ba24125dc0fe0d363864dddc889"></a>
3477 <h2 class="memtitle"><span class="permalink"><a href="#a22458ba24125dc0fe0d363864dddc889">&#9670;&nbsp;</a></span>find() <span class="overload">[2/2]</span></h2>
3478
3479 <div class="memitem">
3480 <div class="memproto">
3481 <table class="mlabels">
3482   <tr>
3483   <td class="mlabels-left">
3484       <table class="memname">
3485         <tr>
3486           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a> find </td>
3487           <td>(</td>
3488           <td class="paramtype">typename object_t::key_type&#160;</td>
3489           <td class="paramname"><em>key</em></td><td>)</td>
3490           <td> const</td>
3491         </tr>
3492       </table>
3493   </td>
3494   <td class="mlabels-right">
3495 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
3496   </tr>
3497 </table>
3498 </div><div class="memdoc">
3499
3500 <p>find an element in a JSON object </p>
3501 <p>find an element in a JSON object Finds an element in a JSON object with key equivalent to <em>key</em>. If the element is not found or the JSON value is not an object, <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end()</a> is returned.</p>
3502 <dl class="section note"><dt>Note</dt><dd>This method always returns <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b">end()</a> when executed on a JSON type that is not an object.</dd></dl>
3503 <dl class="params"><dt>Parameters</dt><dd>
3504   <table class="params">
3505     <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>key value of the element to search for</td></tr>
3506   </table>
3507   </dd>
3508 </dl>
3509 <dl class="section return"><dt>Returns</dt><dd>Iterator to an element with key equivalent to <em>key</em>. If no such element is found or the JSON value is not an object, past-the-end (see <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b">end()</a>) iterator is returned.</dd></dl>
3510 <p>Logarithmic in the size of the JSON object.</p>
3511 <p>{The example shows how <code><a class="el" href="classnlohmann_1_1basic__json.html#a4cf2116be00a99de7addd2c32d71f99d" title="find an element in a JSON object ">find()</a></code> is used.,find__key_type}</p>
3512 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
3513
3514 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04574">4574</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
3515
3516 </div>
3517 </div>
3518 <a id="a6a19297e3c35ea1836a330681443e241"></a>
3519 <h2 class="memtitle"><span class="permalink"><a href="#a6a19297e3c35ea1836a330681443e241">&#9670;&nbsp;</a></span>flatten()</h2>
3520
3521 <div class="memitem">
3522 <div class="memproto">
3523 <table class="mlabels">
3524   <tr>
3525   <td class="mlabels-left">
3526       <table class="memname">
3527         <tr>
3528           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> flatten </td>
3529           <td>(</td>
3530           <td class="paramname"></td><td>)</td>
3531           <td> const</td>
3532         </tr>
3533       </table>
3534   </td>
3535   <td class="mlabels-right">
3536 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
3537   </tr>
3538 </table>
3539 </div><div class="memdoc">
3540
3541 <p>return flattened JSON value </p>
3542 <p>The function creates a JSON object whose keys are JSON pointers (see <a href="https://tools.ietf.org/html/rfc6901">RFC 6901</a>) and whose values are all primitive. The original JSON value can be restored using the <a class="el" href="classnlohmann_1_1basic__json.html#a8d2f715c23be7e55ca35697e88fe6672">unflatten()</a> function.</p>
3543 <dl class="section return"><dt>Returns</dt><dd>an object that maps JSON pointers to primitive values</dd></dl>
3544 <dl class="section note"><dt>Note</dt><dd>Empty objects and arrays are flattened to <code>null</code> and will not be reconstructed correctly by the <a class="el" href="classnlohmann_1_1basic__json.html#a8d2f715c23be7e55ca35697e88fe6672">unflatten()</a> function.</dd></dl>
3545 <p>Linear in the size the JSON value.</p>
3546 <p>{The following code shows how a JSON object is flattened to an object whose keys consist of JSON pointers.,flatten}</p>
3547 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a8d2f715c23be7e55ca35697e88fe6672">unflatten()</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> the reverse function</dd></dl>
3548 <dl class="section since"><dt>Since</dt><dd>version 2.0.0 </dd></dl>
3549
3550 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l12365">12365</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
3551
3552 </div>
3553 </div>
3554 <a id="adc1943642176bb9091891f24bbb67416"></a>
3555 <h2 class="memtitle"><span class="permalink"><a href="#adc1943642176bb9091891f24bbb67416">&#9670;&nbsp;</a></span>from_cbor()</h2>
3556
3557 <div class="memitem">
3558 <div class="memproto">
3559 <table class="mlabels">
3560   <tr>
3561   <td class="mlabels-left">
3562       <table class="memname">
3563         <tr>
3564           <td class="memname">static <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> from_cbor </td>
3565           <td>(</td>
3566           <td class="paramtype">const std::vector&lt; uint8_t &gt; &amp;&#160;</td>
3567           <td class="paramname"><em>v</em>, </td>
3568         </tr>
3569         <tr>
3570           <td class="paramkey"></td>
3571           <td></td>
3572           <td class="paramtype">const size_t&#160;</td>
3573           <td class="paramname"><em>start_index</em> = <code>0</code>&#160;</td>
3574         </tr>
3575         <tr>
3576           <td></td>
3577           <td>)</td>
3578           <td></td><td></td>
3579         </tr>
3580       </table>
3581   </td>
3582   <td class="mlabels-right">
3583 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
3584   </tr>
3585 </table>
3586 </div><div class="memdoc">
3587
3588 <p>create a JSON value from a byte vector in CBOR format </p>
3589 <p>Deserializes a given byte vector <em>v</em> to a JSON value using the CBOR (Concise Binary Object Representation) serialization format.</p>
3590 <dl class="params"><dt>Parameters</dt><dd>
3591   <table class="params">
3592     <tr><td class="paramdir">[in]</td><td class="paramname">v</td><td>a byte vector in CBOR format </td></tr>
3593     <tr><td class="paramdir">[in]</td><td class="paramname">start_index</td><td>the index to start reading from <em>v</em> (0 by default) </td></tr>
3594   </table>
3595   </dd>
3596 </dl>
3597 <dl class="section return"><dt>Returns</dt><dd>deserialized JSON value</dd></dl>
3598 <dl class="exception"><dt>Exceptions</dt><dd>
3599   <table class="exception">
3600     <tr><td class="paramname">std::invalid_argument</td><td>if unsupported features from CBOR were used in the given vector <em>v</em> or if the input is not valid MessagePack </td></tr>
3601     <tr><td class="paramname">std::out_of_range</td><td>if the given vector ends prematurely</td></tr>
3602   </table>
3603   </dd>
3604 </dl>
3605 <p>Linear in the size of the byte vector <em>v</em>.</p>
3606 <p>{The example shows the deserialization of a byte vector in CBOR format to a JSON value.,from_cbor}</p>
3607 <dl class="section see"><dt>See also</dt><dd><a href="http://cbor.io">http://cbor.io</a> </dd>
3608 <dd>
3609 <a class="el" href="classnlohmann_1_1basic__json.html#a7c65575e95a173952806dbf6cb43db9d">to_cbor(const basic_json&amp;)</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> the analogous serialization </dd>
3610 <dd>
3611 <a class="el" href="classnlohmann_1_1basic__json.html#ae9e03e9dcfd9897c8c9b03a53cf02d30">from_msgpack(const std::vector&lt;uint8_t&gt;&amp;, const size_t)</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> the related MessagePack format</dd></dl>
3612 <dl class="section since"><dt>Since</dt><dd>version 2.0.9, parameter <em>start_index</em> since 2.1.1 </dd></dl>
3613
3614 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l08014">8014</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
3615
3616 </div>
3617 </div>
3618 <a id="ae9e03e9dcfd9897c8c9b03a53cf02d30"></a>
3619 <h2 class="memtitle"><span class="permalink"><a href="#ae9e03e9dcfd9897c8c9b03a53cf02d30">&#9670;&nbsp;</a></span>from_msgpack()</h2>
3620
3621 <div class="memitem">
3622 <div class="memproto">
3623 <table class="mlabels">
3624   <tr>
3625   <td class="mlabels-left">
3626       <table class="memname">
3627         <tr>
3628           <td class="memname">static <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> from_msgpack </td>
3629           <td>(</td>
3630           <td class="paramtype">const std::vector&lt; uint8_t &gt; &amp;&#160;</td>
3631           <td class="paramname"><em>v</em>, </td>
3632         </tr>
3633         <tr>
3634           <td class="paramkey"></td>
3635           <td></td>
3636           <td class="paramtype">const size_t&#160;</td>
3637           <td class="paramname"><em>start_index</em> = <code>0</code>&#160;</td>
3638         </tr>
3639         <tr>
3640           <td></td>
3641           <td>)</td>
3642           <td></td><td></td>
3643         </tr>
3644       </table>
3645   </td>
3646   <td class="mlabels-right">
3647 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
3648   </tr>
3649 </table>
3650 </div><div class="memdoc">
3651
3652 <p>create a JSON value from a byte vector in MessagePack format </p>
3653 <p>Deserializes a given byte vector <em>v</em> to a JSON value using the MessagePack serialization format.</p>
3654 <dl class="params"><dt>Parameters</dt><dd>
3655   <table class="params">
3656     <tr><td class="paramdir">[in]</td><td class="paramname">v</td><td>a byte vector in MessagePack format </td></tr>
3657     <tr><td class="paramdir">[in]</td><td class="paramname">start_index</td><td>the index to start reading from <em>v</em> (0 by default) </td></tr>
3658   </table>
3659   </dd>
3660 </dl>
3661 <dl class="section return"><dt>Returns</dt><dd>deserialized JSON value</dd></dl>
3662 <dl class="exception"><dt>Exceptions</dt><dd>
3663   <table class="exception">
3664     <tr><td class="paramname">std::invalid_argument</td><td>if unsupported features from MessagePack were used in the given vector <em>v</em> or if the input is not valid MessagePack </td></tr>
3665     <tr><td class="paramname">std::out_of_range</td><td>if the given vector ends prematurely</td></tr>
3666   </table>
3667   </dd>
3668 </dl>
3669 <p>Linear in the size of the byte vector <em>v</em>.</p>
3670 <p>{The example shows the deserialization of a byte vector in MessagePack format to a JSON value.,from_msgpack}</p>
3671 <dl class="section see"><dt>See also</dt><dd><a href="http://msgpack.org">http://msgpack.org</a> </dd>
3672 <dd>
3673 <a class="el" href="classnlohmann_1_1basic__json.html#aefc0b96a623a236cf9cc27f44c7e997e">to_msgpack(const basic_json&amp;)</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> the analogous serialization </dd>
3674 <dd>
3675 <a class="el" href="classnlohmann_1_1basic__json.html#adc1943642176bb9091891f24bbb67416">from_cbor(const std::vector&lt;uint8_t&gt;&amp;, const size_t)</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> the related CBOR format</dd></dl>
3676 <dl class="section since"><dt>Since</dt><dd>version 2.0.9, parameter <em>start_index</em> since 2.1.1 </dd></dl>
3677
3678 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l07951">7951</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
3679
3680 </div>
3681 </div>
3682 <a id="a6a48363b4355f6f5b441637774f79a59"></a>
3683 <h2 class="memtitle"><span class="permalink"><a href="#a6a48363b4355f6f5b441637774f79a59">&#9670;&nbsp;</a></span>front() <span class="overload">[1/2]</span></h2>
3684
3685 <div class="memitem">
3686 <div class="memproto">
3687 <table class="mlabels">
3688   <tr>
3689   <td class="mlabels-left">
3690       <table class="memname">
3691         <tr>
3692           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a> front </td>
3693           <td>(</td>
3694           <td class="paramname"></td><td>)</td>
3695           <td></td>
3696         </tr>
3697       </table>
3698   </td>
3699   <td class="mlabels-right">
3700 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
3701   </tr>
3702 </table>
3703 </div><div class="memdoc">
3704
3705 <p>access the first element </p>
3706 <p>Returns a reference to the first element in the container. For a JSON container <code>c</code>, the expression <code>c.front()</code> is equivalent to <code>*c.<a class="el" href="classnlohmann_1_1basic__json.html#a979556eb331ec35eb33472a90a160f99" title="returns an iterator to the first element ">begin()</a></code>.</p>
3707 <dl class="section return"><dt>Returns</dt><dd>In case of a structured type (array or object), a reference to the first element is returned. In case of number, string, or boolean values, a reference to the value is returned.</dd></dl>
3708 <p>Constant.</p>
3709 <dl class="section pre"><dt>Precondition</dt><dd>The JSON value must not be <code>null</code> (would throw <code>std::out_of_range</code>) or an empty array or object (undefined behavior, <b>guarded by assertions</b>). </dd></dl>
3710 <dl class="section post"><dt>Postcondition</dt><dd>The JSON value remains unchanged.</dd></dl>
3711 <dl class="exception"><dt>Exceptions</dt><dd>
3712   <table class="exception">
3713     <tr><td class="paramname">std::out_of_range</td><td>when called on <code>null</code> value</td></tr>
3714   </table>
3715   </dd>
3716 </dl>
3717 <p>{The following code shows an example for <code><a class="el" href="classnlohmann_1_1basic__json.html#a6a48363b4355f6f5b441637774f79a59" title="access the first element ">front()</a></code>.,front}</p>
3718 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#af71e6c1eccbc12e9339c00a86a981a43">back()</a> &ndash; access the last element</dd></dl>
3719 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
3720
3721 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04169">4169</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
3722
3723 </div>
3724 </div>
3725 <a id="a0ae6b4f9719202f7ddb334c16fb03d80"></a>
3726 <h2 class="memtitle"><span class="permalink"><a href="#a0ae6b4f9719202f7ddb334c16fb03d80">&#9670;&nbsp;</a></span>front() <span class="overload">[2/2]</span></h2>
3727
3728 <div class="memitem">
3729 <div class="memproto">
3730 <table class="mlabels">
3731   <tr>
3732   <td class="mlabels-left">
3733       <table class="memname">
3734         <tr>
3735           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> front </td>
3736           <td>(</td>
3737           <td class="paramname"></td><td>)</td>
3738           <td> const</td>
3739         </tr>
3740       </table>
3741   </td>
3742   <td class="mlabels-right">
3743 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
3744   </tr>
3745 </table>
3746 </div><div class="memdoc">
3747
3748 <p>access the first element </p>
3749 <p>Returns a reference to the first element in the container. For a JSON container <code>c</code>, the expression <code>c.front()</code> is equivalent to <code>*c.<a class="el" href="classnlohmann_1_1basic__json.html#a979556eb331ec35eb33472a90a160f99" title="returns an iterator to the first element ">begin()</a></code>.</p>
3750 <dl class="section return"><dt>Returns</dt><dd>In case of a structured type (array or object), a reference to the first element is returned. In case of number, string, or boolean values, a reference to the value is returned.</dd></dl>
3751 <p>Constant.</p>
3752 <dl class="section pre"><dt>Precondition</dt><dd>The JSON value must not be <code>null</code> (would throw <code>std::out_of_range</code>) or an empty array or object (undefined behavior, <b>guarded by assertions</b>). </dd></dl>
3753 <dl class="section post"><dt>Postcondition</dt><dd>The JSON value remains unchanged.</dd></dl>
3754 <dl class="exception"><dt>Exceptions</dt><dd>
3755   <table class="exception">
3756     <tr><td class="paramname">std::out_of_range</td><td>when called on <code>null</code> value</td></tr>
3757   </table>
3758   </dd>
3759 </dl>
3760 <p>{The following code shows an example for <code><a class="el" href="classnlohmann_1_1basic__json.html#a6a48363b4355f6f5b441637774f79a59" title="access the first element ">front()</a></code>.,front}</p>
3761 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#af71e6c1eccbc12e9339c00a86a981a43">back()</a> &ndash; access the last element</dd></dl>
3762 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
3763
3764 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04177">4177</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
3765
3766 </div>
3767 </div>
3768 <a id="ac0019ee44c3e6a11491b841b589391ad"></a>
3769 <h2 class="memtitle"><span class="permalink"><a href="#ac0019ee44c3e6a11491b841b589391ad">&#9670;&nbsp;</a></span>get() <span class="overload">[1/5]</span></h2>
3770
3771 <div class="memitem">
3772 <div class="memproto">
3773 <table class="mlabels">
3774   <tr>
3775   <td class="mlabels-left">
3776       <table class="memname">
3777         <tr>
3778           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> get </td>
3779           <td>(</td>
3780           <td class="paramname"></td><td>)</td>
3781           <td> const</td>
3782         </tr>
3783       </table>
3784   </td>
3785   <td class="mlabels-right">
3786 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
3787   </tr>
3788 </table>
3789 </div><div class="memdoc">
3790
3791 <p>get special-case overload </p>
3792 <p>This overloads avoids a lot of template boilerplate, it can be seen as the identity method</p>
3793 <dl class="tparams"><dt>Template Parameters</dt><dd>
3794   <table class="tparams">
3795     <tr><td class="paramname">BasicJsonType</td><td>== <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a></td></tr>
3796   </table>
3797   </dd>
3798 </dl>
3799 <dl class="section return"><dt>Returns</dt><dd>a copy of *this</dd></dl>
3800 <p>Constant.</p>
3801 <dl class="section since"><dt>Since</dt><dd>version 2.1.0 </dd></dl>
3802
3803 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l03150">3150</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
3804
3805 </div>
3806 </div>
3807 <a id="a49c729573c3c831d7138c976755d10fd"></a>
3808 <h2 class="memtitle"><span class="permalink"><a href="#a49c729573c3c831d7138c976755d10fd">&#9670;&nbsp;</a></span>get() <span class="overload">[2/5]</span></h2>
3809
3810 <div class="memitem">
3811 <div class="memproto">
3812 <table class="mlabels">
3813   <tr>
3814   <td class="mlabels-left">
3815       <table class="memname">
3816         <tr>
3817           <td class="memname">ValueType get </td>
3818           <td>(</td>
3819           <td class="paramname"></td><td>)</td>
3820           <td> const</td>
3821         </tr>
3822       </table>
3823   </td>
3824   <td class="mlabels-right">
3825 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
3826   </tr>
3827 </table>
3828 </div><div class="memdoc">
3829
3830 <p>get a value (explicit) </p>
3831 <p>Explicit type conversion between the JSON value and a compatible value which is <a href="http://en.cppreference.com/w/cpp/concept/CopyConstructible">CopyConstructible</a> and <a href="http://en.cppreference.com/w/cpp/concept/DefaultConstructible">DefaultConstructible</a>. The value is converted by calling the <a class="el" href="classnlohmann_1_1basic__json.html#a0529ada731a19a6860d72dd7ca888271">json_serializer&lt;ValueType&gt;</a> <code><a class="el" href="namespacenlohmann_1_1detail.html#a839b0ab50d2c9bce669068f56bc41202">from_json()</a></code> method.</p>
3832 <p>The function is equivalent to executing </p><div class="fragment"><div class="line">ValueType ret;</div><div class="line"><a class="code" href="namespacenlohmann_1_1detail.html#a58117f225f43d03e3a0a4a6f3d77c9d9">JSONSerializer&lt;ValueType&gt;::from_json</a>(*<span class="keyword">this</span>, ret);</div><div class="line"><span class="keywordflow">return</span> ret;</div></div><!-- fragment --><p>This overloads is chosen if:</p><ul>
3833 <li><em>ValueType</em> is not <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>,</li>
3834 <li><a class="el" href="classnlohmann_1_1basic__json.html#a0529ada731a19a6860d72dd7ca888271">json_serializer&lt;ValueType&gt;</a> has a <code><a class="el" href="namespacenlohmann_1_1detail.html#a839b0ab50d2c9bce669068f56bc41202">from_json()</a></code> method of the form <code>void from_json(const @ref <a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a>&amp;, ValueType&amp;)</code>, and</li>
3835 <li><a class="el" href="classnlohmann_1_1basic__json.html#a0529ada731a19a6860d72dd7ca888271">json_serializer&lt;ValueType&gt;</a> does not have a <code><a class="el" href="namespacenlohmann_1_1detail.html#a839b0ab50d2c9bce669068f56bc41202">from_json()</a></code> method of the form <code>ValueType from_json(const @ref <a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a>&amp;)</code></li>
3836 </ul>
3837 <dl class="tparams"><dt>Template Parameters</dt><dd>
3838   <table class="tparams">
3839     <tr><td class="paramname">ValueTypeCV</td><td>the provided value type </td></tr>
3840     <tr><td class="paramname">ValueType</td><td>the returned value type</td></tr>
3841   </table>
3842   </dd>
3843 </dl>
3844 <dl class="section return"><dt>Returns</dt><dd>copy of the JSON value, converted to <em>ValueType</em> </dd></dl>
3845 <dl class="exception"><dt>Exceptions</dt><dd>
3846   <table class="exception">
3847     <tr><td class="paramname">what</td><td><a class="el" href="classnlohmann_1_1basic__json.html#a0529ada731a19a6860d72dd7ca888271">json_serializer&lt;ValueType&gt;</a> <code><a class="el" href="namespacenlohmann_1_1detail.html#a839b0ab50d2c9bce669068f56bc41202">from_json()</a></code> method throws</td></tr>
3848   </table>
3849   </dd>
3850 </dl>
3851 <p>{The example below shows several conversions from JSON values to other types. There a few things to note: (1) Floating-point numbers can be converted to integers\, (2) A JSON array can be converted to a standard <code>std::vector&lt;short&gt;</code>\, (3) A JSON object can be converted to C++ associative containers such as <code>std::unordered_map&lt;std::string\, json&gt;</code>.,get__ValueType_const}</p>
3852 <dl class="section since"><dt>Since</dt><dd>version 2.1.0 </dd></dl>
3853
3854 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l03202">3202</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
3855 <div class="dynheader">
3856 Here is the call graph for this function:</div>
3857 <div class="dyncontent">
3858 <div class="center"><img src="classnlohmann_1_1basic__json_a49c729573c3c831d7138c976755d10fd_cgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_a49c729573c3c831d7138c976755d10fd_cgraph" alt=""/></div>
3859 <map name="classnlohmann_1_1basic__json_a49c729573c3c831d7138c976755d10fd_cgraph" id="classnlohmann_1_1basic__json_a49c729573c3c831d7138c976755d10fd_cgraph">
3860 <area shape="rect" id="node2" href="namespacenlohmann_1_1detail.html#a839b0ab50d2c9bce669068f56bc41202" title="nlohmann::detail::from_json" alt="" coords="93,5,276,32"/>
3861 </map>
3862 </div>
3863
3864 </div>
3865 </div>
3866 <a id="a9cad661513975b42da8bc1d805fd0848"></a>
3867 <h2 class="memtitle"><span class="permalink"><a href="#a9cad661513975b42da8bc1d805fd0848">&#9670;&nbsp;</a></span>get() <span class="overload">[3/5]</span></h2>
3868
3869 <div class="memitem">
3870 <div class="memproto">
3871 <table class="mlabels">
3872   <tr>
3873   <td class="mlabels-left">
3874       <table class="memname">
3875         <tr>
3876           <td class="memname">ValueType get </td>
3877           <td>(</td>
3878           <td class="paramname"></td><td>)</td>
3879           <td> const</td>
3880         </tr>
3881       </table>
3882   </td>
3883   <td class="mlabels-right">
3884 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
3885   </tr>
3886 </table>
3887 </div><div class="memdoc">
3888
3889 <p>get a value (explicit); special case </p>
3890 <p>Explicit type conversion between the JSON value and a compatible value which is <b>not</b> <a href="http://en.cppreference.com/w/cpp/concept/CopyConstructible">CopyConstructible</a> and <b>not</b> <a href="http://en.cppreference.com/w/cpp/concept/DefaultConstructible">DefaultConstructible</a>. The value is converted by calling the <a class="el" href="classnlohmann_1_1basic__json.html#a0529ada731a19a6860d72dd7ca888271">json_serializer&lt;ValueType&gt;</a> <code><a class="el" href="namespacenlohmann_1_1detail.html#a839b0ab50d2c9bce669068f56bc41202">from_json()</a></code> method.</p>
3891 <p>The function is equivalent to executing </p><div class="fragment"><div class="line"><span class="keywordflow">return</span> <a class="code" href="namespacenlohmann_1_1detail.html#a58117f225f43d03e3a0a4a6f3d77c9d9">JSONSerializer&lt;ValueTypeCV&gt;::from_json</a>(*<span class="keyword">this</span>);</div></div><!-- fragment --><p>This overloads is chosen if:</p><ul>
3892 <li><em>ValueType</em> is not <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> and</li>
3893 <li><a class="el" href="classnlohmann_1_1basic__json.html#a0529ada731a19a6860d72dd7ca888271">json_serializer&lt;ValueType&gt;</a> has a <code><a class="el" href="namespacenlohmann_1_1detail.html#a839b0ab50d2c9bce669068f56bc41202">from_json()</a></code> method of the form <code>ValueType from_json(const @ref <a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a>&amp;)</code></li>
3894 </ul>
3895 <dl class="section note"><dt>Note</dt><dd>If <a class="el" href="classnlohmann_1_1basic__json.html#a0529ada731a19a6860d72dd7ca888271">json_serializer&lt;ValueType&gt;</a> has both overloads of <code><a class="el" href="namespacenlohmann_1_1detail.html#a839b0ab50d2c9bce669068f56bc41202">from_json()</a></code>, this one is chosen.</dd></dl>
3896 <dl class="tparams"><dt>Template Parameters</dt><dd>
3897   <table class="tparams">
3898     <tr><td class="paramname">ValueTypeCV</td><td>the provided value type </td></tr>
3899     <tr><td class="paramname">ValueType</td><td>the returned value type</td></tr>
3900   </table>
3901   </dd>
3902 </dl>
3903 <dl class="section return"><dt>Returns</dt><dd>copy of the JSON value, converted to <em>ValueType</em> </dd></dl>
3904 <dl class="exception"><dt>Exceptions</dt><dd>
3905   <table class="exception">
3906     <tr><td class="paramname">what</td><td><a class="el" href="classnlohmann_1_1basic__json.html#a0529ada731a19a6860d72dd7ca888271">json_serializer&lt;ValueType&gt;</a> <code><a class="el" href="namespacenlohmann_1_1detail.html#a839b0ab50d2c9bce669068f56bc41202">from_json()</a></code> method throws</td></tr>
3907   </table>
3908   </dd>
3909 </dl>
3910 <dl class="section since"><dt>Since</dt><dd>version 2.1.0 </dd></dl>
3911
3912 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l03255">3255</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
3913 <div class="dynheader">
3914 Here is the call graph for this function:</div>
3915 <div class="dyncontent">
3916 <div class="center"><img src="classnlohmann_1_1basic__json_a9cad661513975b42da8bc1d805fd0848_cgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_a9cad661513975b42da8bc1d805fd0848_cgraph" alt=""/></div>
3917 <map name="classnlohmann_1_1basic__json_a9cad661513975b42da8bc1d805fd0848_cgraph" id="classnlohmann_1_1basic__json_a9cad661513975b42da8bc1d805fd0848_cgraph">
3918 <area shape="rect" id="node2" href="namespacenlohmann_1_1detail.html#a839b0ab50d2c9bce669068f56bc41202" title="nlohmann::detail::from_json" alt="" coords="93,5,276,32"/>
3919 </map>
3920 </div>
3921
3922 </div>
3923 </div>
3924 <a id="a621804845aa82d44271fa934fca54dde"></a>
3925 <h2 class="memtitle"><span class="permalink"><a href="#a621804845aa82d44271fa934fca54dde">&#9670;&nbsp;</a></span>get() <span class="overload">[4/5]</span></h2>
3926
3927 <div class="memitem">
3928 <div class="memproto">
3929 <table class="mlabels">
3930   <tr>
3931   <td class="mlabels-left">
3932       <table class="memname">
3933         <tr>
3934           <td class="memname">PointerType get </td>
3935           <td>(</td>
3936           <td class="paramname"></td><td>)</td>
3937           <td></td>
3938         </tr>
3939       </table>
3940   </td>
3941   <td class="mlabels-right">
3942 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
3943   </tr>
3944 </table>
3945 </div><div class="memdoc">
3946
3947 <p>get a pointer value (explicit) </p>
3948 <p>Explicit pointer access to the internally stored JSON value. No copies are made.</p>
3949 <dl class="section warning"><dt>Warning</dt><dd>The pointer becomes invalid if the underlying JSON object changes.</dd></dl>
3950 <dl class="tparams"><dt>Template Parameters</dt><dd>
3951   <table class="tparams">
3952     <tr><td class="paramname">PointerType</td><td>pointer type; must be a pointer to <a class="el" href="classnlohmann_1_1basic__json.html#a289ffe7b795d293d233d03cfc60bcd15">array_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a143db8a40359a56372e21a8feea66454">object_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#aeacc0aa4079b56866238b8845928c2b7">string_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a8fc151a08d12d6ca47c54458703e573f">boolean_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a4bd9b6d54deaadefc43b5c536062b792">number_integer_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a915185d4413599516b85993e6baaca73">number_unsigned_t</a>, or <a class="el" href="classnlohmann_1_1basic__json.html#aa43a00a590f6ce46ee8ced69513ee4ef">number_float_t</a>.</td></tr>
3953   </table>
3954   </dd>
3955 </dl>
3956 <dl class="section return"><dt>Returns</dt><dd>pointer to the internally stored JSON value if the requested pointer type <em>PointerType</em> fits to the JSON value; <code>nullptr</code> otherwise</dd></dl>
3957 <p>Constant.</p>
3958 <p>{The example below shows how pointers to internal values of a JSON value can be requested. Note that no type conversions are made and a <code>nullptr</code> is returned if the value and the requested pointer type does not match.,get__PointerType}</p>
3959 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#ac27278f706614ec358de7eea17be96ee">get_ptr()</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> explicit pointer-member access</dd></dl>
3960 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
3961
3962 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l03292">3292</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
3963
3964 </div>
3965 </div>
3966 <a id="aa322e329129e2cc7629145724279c614"></a>
3967 <h2 class="memtitle"><span class="permalink"><a href="#aa322e329129e2cc7629145724279c614">&#9670;&nbsp;</a></span>get() <span class="overload">[5/5]</span></h2>
3968
3969 <div class="memitem">
3970 <div class="memproto">
3971 <table class="mlabels">
3972   <tr>
3973   <td class="mlabels-left">
3974       <table class="memname">
3975         <tr>
3976           <td class="memname">constexpr const PointerType get </td>
3977           <td>(</td>
3978           <td class="paramname"></td><td>)</td>
3979           <td> const</td>
3980         </tr>
3981       </table>
3982   </td>
3983   <td class="mlabels-right">
3984 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
3985   </tr>
3986 </table>
3987 </div><div class="memdoc">
3988
3989 <p>get a pointer value (explicit) </p>
3990 <p>get a pointer value (explicit) Explicit pointer access to the internally stored JSON value. No copies are made.</p>
3991 <dl class="section warning"><dt>Warning</dt><dd>The pointer becomes invalid if the underlying JSON object changes.</dd></dl>
3992 <dl class="tparams"><dt>Template Parameters</dt><dd>
3993   <table class="tparams">
3994     <tr><td class="paramname">PointerType</td><td>pointer type; must be a pointer to <a class="el" href="classnlohmann_1_1basic__json.html#a289ffe7b795d293d233d03cfc60bcd15">array_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a143db8a40359a56372e21a8feea66454">object_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#aeacc0aa4079b56866238b8845928c2b7">string_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a8fc151a08d12d6ca47c54458703e573f">boolean_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a4bd9b6d54deaadefc43b5c536062b792">number_integer_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a915185d4413599516b85993e6baaca73">number_unsigned_t</a>, or <a class="el" href="classnlohmann_1_1basic__json.html#aa43a00a590f6ce46ee8ced69513ee4ef">number_float_t</a>.</td></tr>
3995   </table>
3996   </dd>
3997 </dl>
3998 <dl class="section return"><dt>Returns</dt><dd>pointer to the internally stored JSON value if the requested pointer type <em>PointerType</em> fits to the JSON value; <code>nullptr</code> otherwise</dd></dl>
3999 <p>Constant.</p>
4000 <p>{The example below shows how pointers to internal values of a JSON value can be requested. Note that no type conversions are made and a <code>nullptr</code> is returned if the value and the requested pointer type does not match.,get__PointerType}</p>
4001 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#ac27278f706614ec358de7eea17be96ee">get_ptr()</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> explicit pointer-member access</dd></dl>
4002 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
4003
4004 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l03304">3304</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
4005
4006 </div>
4007 </div>
4008 <a id="a00ebe95bd430fd8f70297c7d8e6b1393"></a>
4009 <h2 class="memtitle"><span class="permalink"><a href="#a00ebe95bd430fd8f70297c7d8e6b1393">&#9670;&nbsp;</a></span>get_allocator()</h2>
4010
4011 <div class="memitem">
4012 <div class="memproto">
4013 <table class="mlabels">
4014   <tr>
4015   <td class="mlabels-left">
4016       <table class="memname">
4017         <tr>
4018           <td class="memname">static <a class="el" href="classnlohmann_1_1basic__json.html#ac2ba7cdee02c8dca32097093847cef4a">allocator_type</a> get_allocator </td>
4019           <td>(</td>
4020           <td class="paramname"></td><td>)</td>
4021           <td></td>
4022         </tr>
4023       </table>
4024   </td>
4025   <td class="mlabels-right">
4026 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
4027   </tr>
4028 </table>
4029 </div><div class="memdoc">
4030
4031 <p>returns the allocator associated with the container </p>
4032
4033 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01079">1079</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
4034
4035 </div>
4036 </div>
4037 <a id="ac27278f706614ec358de7eea17be96ee"></a>
4038 <h2 class="memtitle"><span class="permalink"><a href="#ac27278f706614ec358de7eea17be96ee">&#9670;&nbsp;</a></span>get_ptr() <span class="overload">[1/2]</span></h2>
4039
4040 <div class="memitem">
4041 <div class="memproto">
4042 <table class="mlabels">
4043   <tr>
4044   <td class="mlabels-left">
4045       <table class="memname">
4046         <tr>
4047           <td class="memname">PointerType get_ptr </td>
4048           <td>(</td>
4049           <td class="paramname"></td><td>)</td>
4050           <td></td>
4051         </tr>
4052       </table>
4053   </td>
4054   <td class="mlabels-right">
4055 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
4056   </tr>
4057 </table>
4058 </div><div class="memdoc">
4059
4060 <p>get a pointer value (implicit) </p>
4061 <p>Implicit pointer access to the internally stored JSON value. No copies are made.</p>
4062 <dl class="section warning"><dt>Warning</dt><dd>Writing data to the pointee of the result yields an undefined state.</dd></dl>
4063 <dl class="tparams"><dt>Template Parameters</dt><dd>
4064   <table class="tparams">
4065     <tr><td class="paramname">PointerType</td><td>pointer type; must be a pointer to <a class="el" href="classnlohmann_1_1basic__json.html#a289ffe7b795d293d233d03cfc60bcd15">array_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a143db8a40359a56372e21a8feea66454">object_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#aeacc0aa4079b56866238b8845928c2b7">string_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a8fc151a08d12d6ca47c54458703e573f">boolean_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a4bd9b6d54deaadefc43b5c536062b792">number_integer_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a915185d4413599516b85993e6baaca73">number_unsigned_t</a>, or <a class="el" href="classnlohmann_1_1basic__json.html#aa43a00a590f6ce46ee8ced69513ee4ef">number_float_t</a>. Enforced by a static assertion.</td></tr>
4066   </table>
4067   </dd>
4068 </dl>
4069 <dl class="section return"><dt>Returns</dt><dd>pointer to the internally stored JSON value if the requested pointer type <em>PointerType</em> fits to the JSON value; <code>nullptr</code> otherwise</dd></dl>
4070 <p>Constant.</p>
4071 <p>{The example below shows how pointers to internal values of a JSON value can be requested. Note that no type conversions are made and a <code>nullptr</code> is returned if the value and the requested pointer type does not match.,get_ptr}</p>
4072 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
4073
4074 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l03338">3338</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
4075
4076 </div>
4077 </div>
4078 <a id="abdc4eee48904c134bc94bd5c7a32b97a"></a>
4079 <h2 class="memtitle"><span class="permalink"><a href="#abdc4eee48904c134bc94bd5c7a32b97a">&#9670;&nbsp;</a></span>get_ptr() <span class="overload">[2/2]</span></h2>
4080
4081 <div class="memitem">
4082 <div class="memproto">
4083 <table class="mlabels">
4084   <tr>
4085   <td class="mlabels-left">
4086       <table class="memname">
4087         <tr>
4088           <td class="memname">constexpr const PointerType get_ptr </td>
4089           <td>(</td>
4090           <td class="paramname"></td><td>)</td>
4091           <td> const</td>
4092         </tr>
4093       </table>
4094   </td>
4095   <td class="mlabels-right">
4096 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
4097   </tr>
4098 </table>
4099 </div><div class="memdoc">
4100
4101 <p>get a pointer value (implicit) </p>
4102 <p>get a pointer value (implicit) Implicit pointer access to the internally stored JSON value. No copies are made.</p>
4103 <dl class="section warning"><dt>Warning</dt><dd>Writing data to the pointee of the result yields an undefined state.</dd></dl>
4104 <dl class="tparams"><dt>Template Parameters</dt><dd>
4105   <table class="tparams">
4106     <tr><td class="paramname">PointerType</td><td>pointer type; must be a pointer to <a class="el" href="classnlohmann_1_1basic__json.html#a289ffe7b795d293d233d03cfc60bcd15">array_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a143db8a40359a56372e21a8feea66454">object_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#aeacc0aa4079b56866238b8845928c2b7">string_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a8fc151a08d12d6ca47c54458703e573f">boolean_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a4bd9b6d54deaadefc43b5c536062b792">number_integer_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a915185d4413599516b85993e6baaca73">number_unsigned_t</a>, or <a class="el" href="classnlohmann_1_1basic__json.html#aa43a00a590f6ce46ee8ced69513ee4ef">number_float_t</a>. Enforced by a static assertion.</td></tr>
4107   </table>
4108   </dd>
4109 </dl>
4110 <dl class="section return"><dt>Returns</dt><dd>pointer to the internally stored JSON value if the requested pointer type <em>PointerType</em> fits to the JSON value; <code>nullptr</code> otherwise</dd></dl>
4111 <p>Constant.</p>
4112 <p>{The example below shows how pointers to internal values of a JSON value can be requested. Note that no type conversions are made and a <code>nullptr</code> is returned if the value and the requested pointer type does not match.,get_ptr}</p>
4113 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
4114
4115 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l03366">3366</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
4116
4117 </div>
4118 </div>
4119 <a id="ad466825405fe763b16ce1a000b3d9b6c"></a>
4120 <h2 class="memtitle"><span class="permalink"><a href="#ad466825405fe763b16ce1a000b3d9b6c">&#9670;&nbsp;</a></span>get_ref() <span class="overload">[1/2]</span></h2>
4121
4122 <div class="memitem">
4123 <div class="memproto">
4124 <table class="mlabels">
4125   <tr>
4126   <td class="mlabels-left">
4127       <table class="memname">
4128         <tr>
4129           <td class="memname">ReferenceType get_ref </td>
4130           <td>(</td>
4131           <td class="paramname"></td><td>)</td>
4132           <td></td>
4133         </tr>
4134       </table>
4135   </td>
4136   <td class="mlabels-right">
4137 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
4138   </tr>
4139 </table>
4140 </div><div class="memdoc">
4141
4142 <p>get a reference value (implicit) </p>
4143 <p>Implicit reference access to the internally stored JSON value. No copies are made.</p>
4144 <dl class="section warning"><dt>Warning</dt><dd>Writing data to the referee of the result yields an undefined state.</dd></dl>
4145 <dl class="tparams"><dt>Template Parameters</dt><dd>
4146   <table class="tparams">
4147     <tr><td class="paramname">ReferenceType</td><td>reference type; must be a reference to <a class="el" href="classnlohmann_1_1basic__json.html#a289ffe7b795d293d233d03cfc60bcd15">array_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a143db8a40359a56372e21a8feea66454">object_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#aeacc0aa4079b56866238b8845928c2b7">string_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a8fc151a08d12d6ca47c54458703e573f">boolean_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a4bd9b6d54deaadefc43b5c536062b792">number_integer_t</a>, or <a class="el" href="classnlohmann_1_1basic__json.html#aa43a00a590f6ce46ee8ced69513ee4ef">number_float_t</a>. Enforced by static assertion.</td></tr>
4148   </table>
4149   </dd>
4150 </dl>
4151 <dl class="section return"><dt>Returns</dt><dd>reference to the internally stored JSON value if the requested reference type <em>ReferenceType</em> fits to the JSON value; throws std::domain_error otherwise</dd></dl>
4152 <dl class="exception"><dt>Exceptions</dt><dd>
4153   <table class="exception">
4154     <tr><td class="paramname">std::domain_error</td><td>in case passed type <em>ReferenceType</em> is incompatible with the stored JSON value</td></tr>
4155   </table>
4156   </dd>
4157 </dl>
4158 <p>Constant.</p>
4159 <p>{The example shows several calls to <code><a class="el" href="classnlohmann_1_1basic__json.html#ad466825405fe763b16ce1a000b3d9b6c" title="get a reference value (implicit) ">get_ref()</a></code>.,get_ref}</p>
4160 <dl class="section since"><dt>Since</dt><dd>version 1.1.0 </dd></dl>
4161
4162 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l03415">3415</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
4163
4164 </div>
4165 </div>
4166 <a id="ab4df689f8cd3fe0e11f25c319b0da394"></a>
4167 <h2 class="memtitle"><span class="permalink"><a href="#ab4df689f8cd3fe0e11f25c319b0da394">&#9670;&nbsp;</a></span>get_ref() <span class="overload">[2/2]</span></h2>
4168
4169 <div class="memitem">
4170 <div class="memproto">
4171 <table class="mlabels">
4172   <tr>
4173   <td class="mlabels-left">
4174       <table class="memname">
4175         <tr>
4176           <td class="memname">ReferenceType get_ref </td>
4177           <td>(</td>
4178           <td class="paramname"></td><td>)</td>
4179           <td> const</td>
4180         </tr>
4181       </table>
4182   </td>
4183   <td class="mlabels-right">
4184 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
4185   </tr>
4186 </table>
4187 </div><div class="memdoc">
4188
4189 <p>get a reference value (implicit) </p>
4190 <p>get a reference value (implicit) Implicit reference access to the internally stored JSON value. No copies are made.</p>
4191 <dl class="section warning"><dt>Warning</dt><dd>Writing data to the referee of the result yields an undefined state.</dd></dl>
4192 <dl class="tparams"><dt>Template Parameters</dt><dd>
4193   <table class="tparams">
4194     <tr><td class="paramname">ReferenceType</td><td>reference type; must be a reference to <a class="el" href="classnlohmann_1_1basic__json.html#a289ffe7b795d293d233d03cfc60bcd15">array_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a143db8a40359a56372e21a8feea66454">object_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#aeacc0aa4079b56866238b8845928c2b7">string_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a8fc151a08d12d6ca47c54458703e573f">boolean_t</a>, <a class="el" href="classnlohmann_1_1basic__json.html#a4bd9b6d54deaadefc43b5c536062b792">number_integer_t</a>, or <a class="el" href="classnlohmann_1_1basic__json.html#aa43a00a590f6ce46ee8ced69513ee4ef">number_float_t</a>. Enforced by static assertion.</td></tr>
4195   </table>
4196   </dd>
4197 </dl>
4198 <dl class="section return"><dt>Returns</dt><dd>reference to the internally stored JSON value if the requested reference type <em>ReferenceType</em> fits to the JSON value; throws std::domain_error otherwise</dd></dl>
4199 <dl class="exception"><dt>Exceptions</dt><dd>
4200   <table class="exception">
4201     <tr><td class="paramname">std::domain_error</td><td>in case passed type <em>ReferenceType</em> is incompatible with the stored JSON value</td></tr>
4202   </table>
4203   </dd>
4204 </dl>
4205 <p>Constant.</p>
4206 <p>{The example shows several calls to <code><a class="el" href="classnlohmann_1_1basic__json.html#ad466825405fe763b16ce1a000b3d9b6c" title="get a reference value (implicit) ">get_ref()</a></code>.,get_ref}</p>
4207 <dl class="section since"><dt>Since</dt><dd>version 1.1.0 </dd></dl>
4208
4209 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l03428">3428</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
4210
4211 </div>
4212 </div>
4213 <a id="a61546bf37d98e9b0d098220009e8376d"></a>
4214 <h2 class="memtitle"><span class="permalink"><a href="#a61546bf37d98e9b0d098220009e8376d">&#9670;&nbsp;</a></span>insert() <span class="overload">[1/5]</span></h2>
4215
4216 <div class="memitem">
4217 <div class="memproto">
4218 <table class="mlabels">
4219   <tr>
4220   <td class="mlabels-left">
4221       <table class="memname">
4222         <tr>
4223           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">iterator</a> insert </td>
4224           <td>(</td>
4225           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a>&#160;</td>
4226           <td class="paramname"><em>pos</em>, </td>
4227         </tr>
4228         <tr>
4229           <td class="paramkey"></td>
4230           <td></td>
4231           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; &amp;&#160;</td>
4232           <td class="paramname"><em>val</em>&#160;</td>
4233         </tr>
4234         <tr>
4235           <td></td>
4236           <td>)</td>
4237           <td></td><td></td>
4238         </tr>
4239       </table>
4240   </td>
4241   <td class="mlabels-right">
4242 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
4243   </tr>
4244 </table>
4245 </div><div class="memdoc">
4246
4247 <p>inserts element </p>
4248 <p>Inserts element <em>val</em> before iterator <em>pos</em>.</p>
4249 <dl class="params"><dt>Parameters</dt><dd>
4250   <table class="params">
4251     <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>iterator before which the content will be inserted; may be the <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end()</a> iterator </td></tr>
4252     <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>element to insert </td></tr>
4253   </table>
4254   </dd>
4255 </dl>
4256 <dl class="section return"><dt>Returns</dt><dd>iterator pointing to the inserted <em>val</em>.</dd></dl>
4257 <dl class="exception"><dt>Exceptions</dt><dd>
4258   <table class="exception">
4259     <tr><td class="paramname">std::domain_error</td><td>if called on JSON values other than arrays; example: <code>"cannot use insert() with string"</code> </td></tr>
4260     <tr><td class="paramname">std::domain_error</td><td>if <em>pos</em> is not an iterator of *this; example: <code>"iterator does not fit current value"</code></td></tr>
4261   </table>
4262   </dd>
4263 </dl>
4264 <p>Constant plus linear in the distance between <em>pos</em> and end of the container.</p>
4265 <p>{The example shows how <code><a class="el" href="classnlohmann_1_1basic__json.html#a61546bf37d98e9b0d098220009e8376d" title="inserts element ">insert()</a></code> is used.,insert}</p>
4266 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
4267
4268 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05517">5517</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
4269 <div class="dynheader">
4270 Here is the caller graph for this function:</div>
4271 <div class="dyncontent">
4272 <div class="center"><img src="classnlohmann_1_1basic__json_a61546bf37d98e9b0d098220009e8376d_icgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_a61546bf37d98e9b0d098220009e8376d_icgraph" alt=""/></div>
4273 <map name="classnlohmann_1_1basic__json_a61546bf37d98e9b0d098220009e8376d_icgraph" id="classnlohmann_1_1basic__json_a61546bf37d98e9b0d098220009e8376d_icgraph">
4274 <area shape="rect" id="node2" href="classnlohmann_1_1basic__json.html#a614dd03ce3e99e79c52bedcf55945645" title="applies a JSON patch " alt="" coords="108,5,163,32"/>
4275 <area shape="rect" id="node3" href="classnlohmann_1_1basic__json.html#a2fb1e92221746ff32c5f5c8ff1e7a7f7" title="creates a diff as a JSON patch " alt="" coords="115,56,155,83"/>
4276 </map>
4277 </div>
4278
4279 </div>
4280 </div>
4281 <a id="a3558f3419aa799071e6ce6114da3d2ec"></a>
4282 <h2 class="memtitle"><span class="permalink"><a href="#a3558f3419aa799071e6ce6114da3d2ec">&#9670;&nbsp;</a></span>insert() <span class="overload">[2/5]</span></h2>
4283
4284 <div class="memitem">
4285 <div class="memproto">
4286 <table class="mlabels">
4287   <tr>
4288   <td class="mlabels-left">
4289       <table class="memname">
4290         <tr>
4291           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">iterator</a> insert </td>
4292           <td>(</td>
4293           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a>&#160;</td>
4294           <td class="paramname"><em>pos</em>, </td>
4295         </tr>
4296         <tr>
4297           <td class="paramkey"></td>
4298           <td></td>
4299           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; &amp;&amp;&#160;</td>
4300           <td class="paramname"><em>val</em>&#160;</td>
4301         </tr>
4302         <tr>
4303           <td></td>
4304           <td>)</td>
4305           <td></td><td></td>
4306         </tr>
4307       </table>
4308   </td>
4309   <td class="mlabels-right">
4310 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
4311   </tr>
4312 </table>
4313 </div><div class="memdoc">
4314
4315 <p>inserts element </p>
4316 <p>inserts element Inserts element <em>val</em> before iterator <em>pos</em>.</p>
4317 <dl class="params"><dt>Parameters</dt><dd>
4318   <table class="params">
4319     <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>iterator before which the content will be inserted; may be the <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end()</a> iterator </td></tr>
4320     <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>element to insert </td></tr>
4321   </table>
4322   </dd>
4323 </dl>
4324 <dl class="section return"><dt>Returns</dt><dd>iterator pointing to the inserted <em>val</em>.</dd></dl>
4325 <dl class="exception"><dt>Exceptions</dt><dd>
4326   <table class="exception">
4327     <tr><td class="paramname">std::domain_error</td><td>if called on JSON values other than arrays; example: <code>"cannot use insert() with string"</code> </td></tr>
4328     <tr><td class="paramname">std::domain_error</td><td>if <em>pos</em> is not an iterator of *this; example: <code>"iterator does not fit current value"</code></td></tr>
4329   </table>
4330   </dd>
4331 </dl>
4332 <p>Constant plus linear in the distance between <em>pos</em> and end of the container.</p>
4333 <p>{The example shows how <code><a class="el" href="classnlohmann_1_1basic__json.html#a61546bf37d98e9b0d098220009e8376d" title="inserts element ">insert()</a></code> is used.,insert}</p>
4334 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
4335
4336 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05541">5541</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
4337
4338 </div>
4339 </div>
4340 <a id="ad30ad11886ceb1c06ee5dd940fd73dc7"></a>
4341 <h2 class="memtitle"><span class="permalink"><a href="#ad30ad11886ceb1c06ee5dd940fd73dc7">&#9670;&nbsp;</a></span>insert() <span class="overload">[3/5]</span></h2>
4342
4343 <div class="memitem">
4344 <div class="memproto">
4345 <table class="mlabels">
4346   <tr>
4347   <td class="mlabels-left">
4348       <table class="memname">
4349         <tr>
4350           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">iterator</a> insert </td>
4351           <td>(</td>
4352           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a>&#160;</td>
4353           <td class="paramname"><em>pos</em>, </td>
4354         </tr>
4355         <tr>
4356           <td class="paramkey"></td>
4357           <td></td>
4358           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#af38ce1af42d538f410180c265518d4f0">size_type</a>&#160;</td>
4359           <td class="paramname"><em>cnt</em>, </td>
4360         </tr>
4361         <tr>
4362           <td class="paramkey"></td>
4363           <td></td>
4364           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; &amp;&#160;</td>
4365           <td class="paramname"><em>val</em>&#160;</td>
4366         </tr>
4367         <tr>
4368           <td></td>
4369           <td>)</td>
4370           <td></td><td></td>
4371         </tr>
4372       </table>
4373   </td>
4374   <td class="mlabels-right">
4375 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
4376   </tr>
4377 </table>
4378 </div><div class="memdoc">
4379
4380 <p>inserts elements </p>
4381 <p>Inserts <em>cnt</em> copies of <em>val</em> before iterator <em>pos</em>.</p>
4382 <dl class="params"><dt>Parameters</dt><dd>
4383   <table class="params">
4384     <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>iterator before which the content will be inserted; may be the <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end()</a> iterator </td></tr>
4385     <tr><td class="paramdir">[in]</td><td class="paramname">cnt</td><td>number of copies of <em>val</em> to insert </td></tr>
4386     <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>element to insert </td></tr>
4387   </table>
4388   </dd>
4389 </dl>
4390 <dl class="section return"><dt>Returns</dt><dd>iterator pointing to the first element inserted, or <em>pos</em> if <code>cnt==0</code></dd></dl>
4391 <dl class="exception"><dt>Exceptions</dt><dd>
4392   <table class="exception">
4393     <tr><td class="paramname">std::domain_error</td><td>if called on JSON values other than arrays; example: <code>"cannot use insert() with string"</code> </td></tr>
4394     <tr><td class="paramname">std::domain_error</td><td>if <em>pos</em> is not an iterator of *this; example: <code>"iterator does not fit current value"</code></td></tr>
4395   </table>
4396   </dd>
4397 </dl>
4398 <p>Linear in <em>cnt</em> plus linear in the distance between <em>pos</em> and end of the container.</p>
4399 <p>{The example shows how <code><a class="el" href="classnlohmann_1_1basic__json.html#a61546bf37d98e9b0d098220009e8376d" title="inserts element ">insert()</a></code> is used.,insert__count}</p>
4400 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
4401
4402 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05570">5570</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
4403
4404 </div>
4405 </div>
4406 <a id="ac3333d8377ac68529c6aecebae9e0b9d"></a>
4407 <h2 class="memtitle"><span class="permalink"><a href="#ac3333d8377ac68529c6aecebae9e0b9d">&#9670;&nbsp;</a></span>insert() <span class="overload">[4/5]</span></h2>
4408
4409 <div class="memitem">
4410 <div class="memproto">
4411 <table class="mlabels">
4412   <tr>
4413   <td class="mlabels-left">
4414       <table class="memname">
4415         <tr>
4416           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">iterator</a> insert </td>
4417           <td>(</td>
4418           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a>&#160;</td>
4419           <td class="paramname"><em>pos</em>, </td>
4420         </tr>
4421         <tr>
4422           <td class="paramkey"></td>
4423           <td></td>
4424           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a>&#160;</td>
4425           <td class="paramname"><em>first</em>, </td>
4426         </tr>
4427         <tr>
4428           <td class="paramkey"></td>
4429           <td></td>
4430           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a>&#160;</td>
4431           <td class="paramname"><em>last</em>&#160;</td>
4432         </tr>
4433         <tr>
4434           <td></td>
4435           <td>)</td>
4436           <td></td><td></td>
4437         </tr>
4438       </table>
4439   </td>
4440   <td class="mlabels-right">
4441 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
4442   </tr>
4443 </table>
4444 </div><div class="memdoc">
4445
4446 <p>inserts elements </p>
4447 <p>Inserts elements from range <code>[first, last)</code> before iterator <em>pos</em>.</p>
4448 <dl class="params"><dt>Parameters</dt><dd>
4449   <table class="params">
4450     <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>iterator before which the content will be inserted; may be the <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end()</a> iterator </td></tr>
4451     <tr><td class="paramdir">[in]</td><td class="paramname">first</td><td>begin of the range of elements to insert </td></tr>
4452     <tr><td class="paramdir">[in]</td><td class="paramname">last</td><td>end of the range of elements to insert</td></tr>
4453   </table>
4454   </dd>
4455 </dl>
4456 <dl class="exception"><dt>Exceptions</dt><dd>
4457   <table class="exception">
4458     <tr><td class="paramname">std::domain_error</td><td>if called on JSON values other than arrays; example: <code>"cannot use insert() with string"</code> </td></tr>
4459     <tr><td class="paramname">std::domain_error</td><td>if <em>pos</em> is not an iterator of *this; example: <code>"iterator does not fit current value"</code> </td></tr>
4460     <tr><td class="paramname">std::domain_error</td><td>if <em>first</em> and <em>last</em> do not belong to the same JSON value; example: <code>"iterators do not fit"</code> </td></tr>
4461     <tr><td class="paramname">std::domain_error</td><td>if <em>first</em> or <em>last</em> are iterators into container for which insert is called; example: <code>"passed iterators may not
4462 belong to container"</code></td></tr>
4463   </table>
4464   </dd>
4465 </dl>
4466 <dl class="section return"><dt>Returns</dt><dd>iterator pointing to the first element inserted, or <em>pos</em> if <code>first==last</code></dd></dl>
4467 <p>Linear in <code>std::distance(first, last)</code> plus linear in the distance between <em>pos</em> and end of the container.</p>
4468 <p>{The example shows how <code><a class="el" href="classnlohmann_1_1basic__json.html#a61546bf37d98e9b0d098220009e8376d" title="inserts element ">insert()</a></code> is used.,insert__range}</p>
4469 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
4470
4471 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05620">5620</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
4472
4473 </div>
4474 </div>
4475 <a id="ace9415ac72c37ce036fdcd82710cbc83"></a>
4476 <h2 class="memtitle"><span class="permalink"><a href="#ace9415ac72c37ce036fdcd82710cbc83">&#9670;&nbsp;</a></span>insert() <span class="overload">[5/5]</span></h2>
4477
4478 <div class="memitem">
4479 <div class="memproto">
4480 <table class="mlabels">
4481   <tr>
4482   <td class="mlabels-left">
4483       <table class="memname">
4484         <tr>
4485           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">iterator</a> insert </td>
4486           <td>(</td>
4487           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a>&#160;</td>
4488           <td class="paramname"><em>pos</em>, </td>
4489         </tr>
4490         <tr>
4491           <td class="paramkey"></td>
4492           <td></td>
4493           <td class="paramtype">std::initializer_list&lt; <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; &gt;&#160;</td>
4494           <td class="paramname"><em>ilist</em>&#160;</td>
4495         </tr>
4496         <tr>
4497           <td></td>
4498           <td>)</td>
4499           <td></td><td></td>
4500         </tr>
4501       </table>
4502   </td>
4503   <td class="mlabels-right">
4504 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
4505   </tr>
4506 </table>
4507 </div><div class="memdoc">
4508
4509 <p>inserts elements </p>
4510 <p>Inserts elements from initializer list <em>ilist</em> before iterator <em>pos</em>.</p>
4511 <dl class="params"><dt>Parameters</dt><dd>
4512   <table class="params">
4513     <tr><td class="paramdir">[in]</td><td class="paramname">pos</td><td>iterator before which the content will be inserted; may be the <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end()</a> iterator </td></tr>
4514     <tr><td class="paramdir">[in]</td><td class="paramname">ilist</td><td>initializer list to insert the values from</td></tr>
4515   </table>
4516   </dd>
4517 </dl>
4518 <dl class="exception"><dt>Exceptions</dt><dd>
4519   <table class="exception">
4520     <tr><td class="paramname">std::domain_error</td><td>if called on JSON values other than arrays; example: <code>"cannot use insert() with string"</code> </td></tr>
4521     <tr><td class="paramname">std::domain_error</td><td>if <em>pos</em> is not an iterator of *this; example: <code>"iterator does not fit current value"</code></td></tr>
4522   </table>
4523   </dd>
4524 </dl>
4525 <dl class="section return"><dt>Returns</dt><dd>iterator pointing to the first element inserted, or <em>pos</em> if <code>ilist</code> is empty</dd></dl>
4526 <p>Linear in <code>ilist.size()</code> plus linear in the distance between <em>pos</em> and end of the container.</p>
4527 <p>{The example shows how <code><a class="el" href="classnlohmann_1_1basic__json.html#a61546bf37d98e9b0d098220009e8376d" title="inserts element ">insert()</a></code> is used.,insert__ilist}</p>
4528 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
4529
4530 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05678">5678</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
4531
4532 </div>
4533 </div>
4534 <a id="a286a1af9e72e4e41a359b6d01a7b9be9"></a>
4535 <h2 class="memtitle"><span class="permalink"><a href="#a286a1af9e72e4e41a359b6d01a7b9be9">&#9670;&nbsp;</a></span>is_array()</h2>
4536
4537 <div class="memitem">
4538 <div class="memproto">
4539 <table class="mlabels">
4540   <tr>
4541   <td class="mlabels-left">
4542       <table class="memname">
4543         <tr>
4544           <td class="memname">constexpr bool is_array </td>
4545           <td>(</td>
4546           <td class="paramname"></td><td>)</td>
4547           <td> const</td>
4548         </tr>
4549       </table>
4550   </td>
4551   <td class="mlabels-right">
4552 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
4553   </tr>
4554 </table>
4555 </div><div class="memdoc">
4556
4557 <p>return whether value is an array </p>
4558 <p>This function returns true iff the JSON value is an array.</p>
4559 <dl class="section return"><dt>Returns</dt><dd><code>true</code> if type is array, <code>false</code> otherwise.</dd></dl>
4560 <p>Constant.</p>
4561 <p>No-throw guarantee: this member function never throws exceptions.</p>
4562 <p>{The following code exemplifies <code><a class="el" href="classnlohmann_1_1basic__json.html#a286a1af9e72e4e41a359b6d01a7b9be9" title="return whether value is an array ">is_array()</a></code> for all JSON types.,is_array}</p>
4563 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
4564
4565 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l02918">2918</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
4566 <div class="dynheader">
4567 Here is the caller graph for this function:</div>
4568 <div class="dyncontent">
4569 <div class="center"><img src="classnlohmann_1_1basic__json_a286a1af9e72e4e41a359b6d01a7b9be9_icgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_a286a1af9e72e4e41a359b6d01a7b9be9_icgraph" alt=""/></div>
4570 <map name="classnlohmann_1_1basic__json_a286a1af9e72e4e41a359b6d01a7b9be9_icgraph" id="classnlohmann_1_1basic__json_a286a1af9e72e4e41a359b6d01a7b9be9_icgraph">
4571 <area shape="rect" id="node2" href="classnlohmann_1_1basic__json.html#a614dd03ce3e99e79c52bedcf55945645" title="applies a JSON patch " alt="" coords="121,5,176,32"/>
4572 </map>
4573 </div>
4574
4575 </div>
4576 </div>
4577 <a id="a3f27b4908e7f73e1028bf681f0e25258"></a>
4578 <h2 class="memtitle"><span class="permalink"><a href="#a3f27b4908e7f73e1028bf681f0e25258">&#9670;&nbsp;</a></span>is_boolean()</h2>
4579
4580 <div class="memitem">
4581 <div class="memproto">
4582 <table class="mlabels">
4583   <tr>
4584   <td class="mlabels-left">
4585       <table class="memname">
4586         <tr>
4587           <td class="memname">constexpr bool is_boolean </td>
4588           <td>(</td>
4589           <td class="paramname"></td><td>)</td>
4590           <td> const</td>
4591         </tr>
4592       </table>
4593   </td>
4594   <td class="mlabels-right">
4595 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
4596   </tr>
4597 </table>
4598 </div><div class="memdoc">
4599
4600 <p>return whether value is a boolean </p>
4601 <p>This function returns true iff the JSON value is a boolean.</p>
4602 <dl class="section return"><dt>Returns</dt><dd><code>true</code> if type is boolean, <code>false</code> otherwise.</dd></dl>
4603 <p>Constant.</p>
4604 <p>No-throw guarantee: this member function never throws exceptions.</p>
4605 <p>{The following code exemplifies <code><a class="el" href="classnlohmann_1_1basic__json.html#a3f27b4908e7f73e1028bf681f0e25258" title="return whether value is a boolean ">is_boolean()</a></code> for all JSON types.,is_boolean}</p>
4606 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
4607
4608 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l02759">2759</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
4609
4610 </div>
4611 </div>
4612 <a id="aa3755192d05bc50d680919b259b69305"></a>
4613 <h2 class="memtitle"><span class="permalink"><a href="#aa3755192d05bc50d680919b259b69305">&#9670;&nbsp;</a></span>is_discarded()</h2>
4614
4615 <div class="memitem">
4616 <div class="memproto">
4617 <table class="mlabels">
4618   <tr>
4619   <td class="mlabels-left">
4620       <table class="memname">
4621         <tr>
4622           <td class="memname">constexpr bool is_discarded </td>
4623           <td>(</td>
4624           <td class="paramname"></td><td>)</td>
4625           <td> const</td>
4626         </tr>
4627       </table>
4628   </td>
4629   <td class="mlabels-right">
4630 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
4631   </tr>
4632 </table>
4633 </div><div class="memdoc">
4634
4635 <p>return whether value is discarded </p>
4636 <p>This function returns true iff the JSON value was discarded during parsing with a callback function (see <a class="el" href="classnlohmann_1_1basic__json.html#a8bcd7fb59f7978ccd8942605357fc28a">parser_callback_t</a>).</p>
4637 <dl class="section note"><dt>Note</dt><dd>This function will always be <code>false</code> for JSON values after parsing. That is, discarded values can only occur during parsing, but will be removed when inside a structured value or replaced by null in other cases.</dd></dl>
4638 <dl class="section return"><dt>Returns</dt><dd><code>true</code> if type is discarded, <code>false</code> otherwise.</dd></dl>
4639 <p>Constant.</p>
4640 <p>No-throw guarantee: this member function never throws exceptions.</p>
4641 <p>{The following code exemplifies <code><a class="el" href="classnlohmann_1_1basic__json.html#aa3755192d05bc50d680919b259b69305" title="return whether value is discarded ">is_discarded()</a></code> for all JSON types.,is_discarded}</p>
4642 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
4643
4644 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l02967">2967</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
4645 <div class="dynheader">
4646 Here is the caller graph for this function:</div>
4647 <div class="dyncontent">
4648 <div class="center"><img src="classnlohmann_1_1basic__json_aa3755192d05bc50d680919b259b69305_icgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_aa3755192d05bc50d680919b259b69305_icgraph" alt=""/></div>
4649 <map name="classnlohmann_1_1basic__json_aa3755192d05bc50d680919b259b69305_icgraph" id="classnlohmann_1_1basic__json_aa3755192d05bc50d680919b259b69305_icgraph">
4650 <area shape="rect" id="node2" href="structnlohmann_1_1basic__json_1_1lexer_1_1strtonum.html#ab6b353b5dc68fe4151d9d20edecd162c" title="nlohmann::basic_json\l::lexer::strtonum::to" alt="" coords="148,29,296,71"/>
4651 </map>
4652 </div>
4653
4654 </div>
4655 </div>
4656 <a id="a5343c52ade262b120e6cdafb516f1f65"></a>
4657 <h2 class="memtitle"><span class="permalink"><a href="#a5343c52ade262b120e6cdafb516f1f65">&#9670;&nbsp;</a></span>is_null()</h2>
4658
4659 <div class="memitem">
4660 <div class="memproto">
4661 <table class="mlabels">
4662   <tr>
4663   <td class="mlabels-left">
4664       <table class="memname">
4665         <tr>
4666           <td class="memname">constexpr bool is_null </td>
4667           <td>(</td>
4668           <td class="paramname"></td><td>)</td>
4669           <td> const</td>
4670         </tr>
4671       </table>
4672   </td>
4673   <td class="mlabels-right">
4674 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
4675   </tr>
4676 </table>
4677 </div><div class="memdoc">
4678
4679 <p>return whether value is null </p>
4680 <p>This function returns true iff the JSON value is null.</p>
4681 <dl class="section return"><dt>Returns</dt><dd><code>true</code> if type is null, <code>false</code> otherwise.</dd></dl>
4682 <p>Constant.</p>
4683 <p>No-throw guarantee: this member function never throws exceptions.</p>
4684 <p>{The following code exemplifies <code><a class="el" href="classnlohmann_1_1basic__json.html#a5343c52ade262b120e6cdafb516f1f65" title="return whether value is null ">is_null()</a></code> for all JSON types.,is_null}</p>
4685 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
4686
4687 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l02737">2737</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
4688
4689 </div>
4690 </div>
4691 <a id="ac752edf4fd63784b587cd7116a407392"></a>
4692 <h2 class="memtitle"><span class="permalink"><a href="#ac752edf4fd63784b587cd7116a407392">&#9670;&nbsp;</a></span>is_number()</h2>
4693
4694 <div class="memitem">
4695 <div class="memproto">
4696 <table class="mlabels">
4697   <tr>
4698   <td class="mlabels-left">
4699       <table class="memname">
4700         <tr>
4701           <td class="memname">constexpr bool is_number </td>
4702           <td>(</td>
4703           <td class="paramname"></td><td>)</td>
4704           <td> const</td>
4705         </tr>
4706       </table>
4707   </td>
4708   <td class="mlabels-right">
4709 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
4710   </tr>
4711 </table>
4712 </div><div class="memdoc">
4713
4714 <p>return whether value is a number </p>
4715 <p>This function returns true iff the JSON value is a number. This includes both integer and floating-point values.</p>
4716 <dl class="section return"><dt>Returns</dt><dd><code>true</code> if type is number (regardless whether integer, unsigned integer or floating-type), <code>false</code> otherwise.</dd></dl>
4717 <p>Constant.</p>
4718 <p>No-throw guarantee: this member function never throws exceptions.</p>
4719 <p>{The following code exemplifies <code><a class="el" href="classnlohmann_1_1basic__json.html#ac752edf4fd63784b587cd7116a407392" title="return whether value is a number ">is_number()</a></code> for all JSON types.,is_number}</p>
4720 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a8719f77e4b63e026597607704740f89a">is_number_integer()</a> &ndash; check if <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> is an integer or unsigned integer number </dd>
4721 <dd>
4722 <a class="el" href="classnlohmann_1_1basic__json.html#a1899915ea90604c5bf3204c2a270d44e">is_number_unsigned()</a> &ndash; check if <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> is an unsigned integer number </dd>
4723 <dd>
4724 <a class="el" href="classnlohmann_1_1basic__json.html#a8bcacf4b2549df21e7e3d6d5882bc26f">is_number_float()</a> &ndash; check if <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> is a floating-point number</dd></dl>
4725 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
4726
4727 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l02789">2789</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
4728
4729 </div>
4730 </div>
4731 <a id="a8bcacf4b2549df21e7e3d6d5882bc26f"></a>
4732 <h2 class="memtitle"><span class="permalink"><a href="#a8bcacf4b2549df21e7e3d6d5882bc26f">&#9670;&nbsp;</a></span>is_number_float()</h2>
4733
4734 <div class="memitem">
4735 <div class="memproto">
4736 <table class="mlabels">
4737   <tr>
4738   <td class="mlabels-left">
4739       <table class="memname">
4740         <tr>
4741           <td class="memname">constexpr bool is_number_float </td>
4742           <td>(</td>
4743           <td class="paramname"></td><td>)</td>
4744           <td> const</td>
4745         </tr>
4746       </table>
4747   </td>
4748   <td class="mlabels-right">
4749 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
4750   </tr>
4751 </table>
4752 </div><div class="memdoc">
4753
4754 <p>return whether value is a floating-point number </p>
4755 <p>This function returns true iff the JSON value is a floating-point number. This excludes integer and unsigned integer values.</p>
4756 <dl class="section return"><dt>Returns</dt><dd><code>true</code> if type is a floating-point number, <code>false</code> otherwise.</dd></dl>
4757 <p>Constant.</p>
4758 <p>No-throw guarantee: this member function never throws exceptions.</p>
4759 <p>{The following code exemplifies <code><a class="el" href="classnlohmann_1_1basic__json.html#a8bcacf4b2549df21e7e3d6d5882bc26f" title="return whether value is a floating-point number ">is_number_float()</a></code> for all JSON types.,is_number_float}</p>
4760 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#ac752edf4fd63784b587cd7116a407392">is_number()</a> &ndash; check if <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> is number </dd>
4761 <dd>
4762 <a class="el" href="classnlohmann_1_1basic__json.html#a8719f77e4b63e026597607704740f89a">is_number_integer()</a> &ndash; check if <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> is an integer number </dd>
4763 <dd>
4764 <a class="el" href="classnlohmann_1_1basic__json.html#a1899915ea90604c5bf3204c2a270d44e">is_number_unsigned()</a> &ndash; check if <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> is an unsigned integer number</dd></dl>
4765 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
4766
4767 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l02874">2874</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
4768
4769 </div>
4770 </div>
4771 <a id="a8719f77e4b63e026597607704740f89a"></a>
4772 <h2 class="memtitle"><span class="permalink"><a href="#a8719f77e4b63e026597607704740f89a">&#9670;&nbsp;</a></span>is_number_integer()</h2>
4773
4774 <div class="memitem">
4775 <div class="memproto">
4776 <table class="mlabels">
4777   <tr>
4778   <td class="mlabels-left">
4779       <table class="memname">
4780         <tr>
4781           <td class="memname">constexpr bool is_number_integer </td>
4782           <td>(</td>
4783           <td class="paramname"></td><td>)</td>
4784           <td> const</td>
4785         </tr>
4786       </table>
4787   </td>
4788   <td class="mlabels-right">
4789 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
4790   </tr>
4791 </table>
4792 </div><div class="memdoc">
4793
4794 <p>return whether value is an integer number </p>
4795 <p>This function returns true iff the JSON value is an integer or unsigned integer number. This excludes floating-point values.</p>
4796 <dl class="section return"><dt>Returns</dt><dd><code>true</code> if type is an integer or unsigned integer number, <code>false</code> otherwise.</dd></dl>
4797 <p>Constant.</p>
4798 <p>No-throw guarantee: this member function never throws exceptions.</p>
4799 <p>{The following code exemplifies <code><a class="el" href="classnlohmann_1_1basic__json.html#a8719f77e4b63e026597607704740f89a" title="return whether value is an integer number ">is_number_integer()</a></code> for all JSON types.,is_number_integer}</p>
4800 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#ac752edf4fd63784b587cd7116a407392">is_number()</a> &ndash; check if <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> is a number </dd>
4801 <dd>
4802 <a class="el" href="classnlohmann_1_1basic__json.html#a1899915ea90604c5bf3204c2a270d44e">is_number_unsigned()</a> &ndash; check if <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> is an unsigned integer number </dd>
4803 <dd>
4804 <a class="el" href="classnlohmann_1_1basic__json.html#a8bcacf4b2549df21e7e3d6d5882bc26f">is_number_float()</a> &ndash; check if <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> is a floating-point number</dd></dl>
4805 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
4806
4807 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l02818">2818</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
4808
4809 </div>
4810 </div>
4811 <a id="a1899915ea90604c5bf3204c2a270d44e"></a>
4812 <h2 class="memtitle"><span class="permalink"><a href="#a1899915ea90604c5bf3204c2a270d44e">&#9670;&nbsp;</a></span>is_number_unsigned()</h2>
4813
4814 <div class="memitem">
4815 <div class="memproto">
4816 <table class="mlabels">
4817   <tr>
4818   <td class="mlabels-left">
4819       <table class="memname">
4820         <tr>
4821           <td class="memname">constexpr bool is_number_unsigned </td>
4822           <td>(</td>
4823           <td class="paramname"></td><td>)</td>
4824           <td> const</td>
4825         </tr>
4826       </table>
4827   </td>
4828   <td class="mlabels-right">
4829 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
4830   </tr>
4831 </table>
4832 </div><div class="memdoc">
4833
4834 <p>return whether value is an unsigned integer number </p>
4835 <p>This function returns true iff the JSON value is an unsigned integer number. This excludes floating-point and (signed) integer values.</p>
4836 <dl class="section return"><dt>Returns</dt><dd><code>true</code> if type is an unsigned integer number, <code>false</code> otherwise.</dd></dl>
4837 <p>Constant.</p>
4838 <p>No-throw guarantee: this member function never throws exceptions.</p>
4839 <p>{The following code exemplifies <code><a class="el" href="classnlohmann_1_1basic__json.html#a1899915ea90604c5bf3204c2a270d44e" title="return whether value is an unsigned integer number ">is_number_unsigned()</a></code> for all JSON types.,is_number_unsigned}</p>
4840 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#ac752edf4fd63784b587cd7116a407392">is_number()</a> &ndash; check if <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> is a number </dd>
4841 <dd>
4842 <a class="el" href="classnlohmann_1_1basic__json.html#a8719f77e4b63e026597607704740f89a">is_number_integer()</a> &ndash; check if <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> is an integer or unsigned integer number </dd>
4843 <dd>
4844 <a class="el" href="classnlohmann_1_1basic__json.html#a8bcacf4b2549df21e7e3d6d5882bc26f">is_number_float()</a> &ndash; check if <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> is a floating-point number</dd></dl>
4845 <dl class="section since"><dt>Since</dt><dd>version 2.0.0 </dd></dl>
4846
4847 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l02846">2846</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
4848
4849 </div>
4850 </div>
4851 <a id="ad6a2a9425ea3806424417c2e7dcdbc01"></a>
4852 <h2 class="memtitle"><span class="permalink"><a href="#ad6a2a9425ea3806424417c2e7dcdbc01">&#9670;&nbsp;</a></span>is_object()</h2>
4853
4854 <div class="memitem">
4855 <div class="memproto">
4856 <table class="mlabels">
4857   <tr>
4858   <td class="mlabels-left">
4859       <table class="memname">
4860         <tr>
4861           <td class="memname">constexpr bool is_object </td>
4862           <td>(</td>
4863           <td class="paramname"></td><td>)</td>
4864           <td> const</td>
4865         </tr>
4866       </table>
4867   </td>
4868   <td class="mlabels-right">
4869 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
4870   </tr>
4871 </table>
4872 </div><div class="memdoc">
4873
4874 <p>return whether value is an object </p>
4875 <p>This function returns true iff the JSON value is an object.</p>
4876 <dl class="section return"><dt>Returns</dt><dd><code>true</code> if type is object, <code>false</code> otherwise.</dd></dl>
4877 <p>Constant.</p>
4878 <p>No-throw guarantee: this member function never throws exceptions.</p>
4879 <p>{The following code exemplifies <code><a class="el" href="classnlohmann_1_1basic__json.html#ad6a2a9425ea3806424417c2e7dcdbc01" title="return whether value is an object ">is_object()</a></code> for all JSON types.,is_object}</p>
4880 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
4881
4882 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l02896">2896</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
4883 <div class="dynheader">
4884 Here is the caller graph for this function:</div>
4885 <div class="dyncontent">
4886 <div class="center"><img src="classnlohmann_1_1basic__json_ad6a2a9425ea3806424417c2e7dcdbc01_icgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_ad6a2a9425ea3806424417c2e7dcdbc01_icgraph" alt=""/></div>
4887 <map name="classnlohmann_1_1basic__json_ad6a2a9425ea3806424417c2e7dcdbc01_icgraph" id="classnlohmann_1_1basic__json_ad6a2a9425ea3806424417c2e7dcdbc01_icgraph">
4888 <area shape="rect" id="node2" href="classnlohmann_1_1basic__json_1_1json__pointer.html#a3888dcd59dd5acd1ca5b9bee4c2e252a" title="return a string representation of the JSON pointer " alt="" coords="128,5,276,47"/>
4889 <area shape="rect" id="node3" href="classnlohmann_1_1basic__json.html#a614dd03ce3e99e79c52bedcf55945645" title="applies a JSON patch " alt="" coords="175,71,229,98"/>
4890 </map>
4891 </div>
4892
4893 </div>
4894 </div>
4895 <a id="ae5e7e83e05bf011781326a00fdf7a733"></a>
4896 <h2 class="memtitle"><span class="permalink"><a href="#ae5e7e83e05bf011781326a00fdf7a733">&#9670;&nbsp;</a></span>is_primitive()</h2>
4897
4898 <div class="memitem">
4899 <div class="memproto">
4900 <table class="mlabels">
4901   <tr>
4902   <td class="mlabels-left">
4903       <table class="memname">
4904         <tr>
4905           <td class="memname">constexpr bool is_primitive </td>
4906           <td>(</td>
4907           <td class="paramname"></td><td>)</td>
4908           <td> const</td>
4909         </tr>
4910       </table>
4911   </td>
4912   <td class="mlabels-right">
4913 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
4914   </tr>
4915 </table>
4916 </div><div class="memdoc">
4917
4918 <p>return whether type is primitive </p>
4919 <p>This function returns true iff the JSON type is primitive (string, number, boolean, or null).</p>
4920 <dl class="section return"><dt>Returns</dt><dd><code>true</code> if type is primitive (string, number, boolean, or null), <code>false</code> otherwise.</dd></dl>
4921 <p>Constant.</p>
4922 <p>No-throw guarantee: this member function never throws exceptions.</p>
4923 <p>{The following code exemplifies <code><a class="el" href="classnlohmann_1_1basic__json.html#ae5e7e83e05bf011781326a00fdf7a733" title="return whether type is primitive ">is_primitive()</a></code> for all JSON types.,is_primitive}</p>
4924 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#abc946f8df0445e62162a6633a444ae79">is_structured()</a> &ndash; returns whether JSON <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> is structured </dd>
4925 <dd>
4926 <a class="el" href="classnlohmann_1_1basic__json.html#a5343c52ade262b120e6cdafb516f1f65">is_null()</a> &ndash; returns whether JSON <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> is <code>null</code> </dd>
4927 <dd>
4928 <a class="el" href="classnlohmann_1_1basic__json.html#adef80b7704d7b8d8ed6bcf3c69fe9568">is_string()</a> &ndash; returns whether JSON <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> is a string </dd>
4929 <dd>
4930 <a class="el" href="classnlohmann_1_1basic__json.html#a3f27b4908e7f73e1028bf681f0e25258">is_boolean()</a> &ndash; returns whether JSON <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> is a boolean </dd>
4931 <dd>
4932 <a class="el" href="classnlohmann_1_1basic__json.html#ac752edf4fd63784b587cd7116a407392">is_number()</a> &ndash; returns whether JSON <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> is a number</dd></dl>
4933 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
4934
4935 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l02688">2688</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
4936
4937 </div>
4938 </div>
4939 <a id="adef80b7704d7b8d8ed6bcf3c69fe9568"></a>
4940 <h2 class="memtitle"><span class="permalink"><a href="#adef80b7704d7b8d8ed6bcf3c69fe9568">&#9670;&nbsp;</a></span>is_string()</h2>
4941
4942 <div class="memitem">
4943 <div class="memproto">
4944 <table class="mlabels">
4945   <tr>
4946   <td class="mlabels-left">
4947       <table class="memname">
4948         <tr>
4949           <td class="memname">constexpr bool is_string </td>
4950           <td>(</td>
4951           <td class="paramname"></td><td>)</td>
4952           <td> const</td>
4953         </tr>
4954       </table>
4955   </td>
4956   <td class="mlabels-right">
4957 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
4958   </tr>
4959 </table>
4960 </div><div class="memdoc">
4961
4962 <p>return whether value is a string </p>
4963 <p>This function returns true iff the JSON value is a string.</p>
4964 <dl class="section return"><dt>Returns</dt><dd><code>true</code> if type is string, <code>false</code> otherwise.</dd></dl>
4965 <p>Constant.</p>
4966 <p>No-throw guarantee: this member function never throws exceptions.</p>
4967 <p>{The following code exemplifies <code><a class="el" href="classnlohmann_1_1basic__json.html#adef80b7704d7b8d8ed6bcf3c69fe9568" title="return whether value is a string ">is_string()</a></code> for all JSON types.,is_string}</p>
4968 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
4969
4970 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l02940">2940</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
4971
4972 </div>
4973 </div>
4974 <a id="abc946f8df0445e62162a6633a444ae79"></a>
4975 <h2 class="memtitle"><span class="permalink"><a href="#abc946f8df0445e62162a6633a444ae79">&#9670;&nbsp;</a></span>is_structured()</h2>
4976
4977 <div class="memitem">
4978 <div class="memproto">
4979 <table class="mlabels">
4980   <tr>
4981   <td class="mlabels-left">
4982       <table class="memname">
4983         <tr>
4984           <td class="memname">constexpr bool is_structured </td>
4985           <td>(</td>
4986           <td class="paramname"></td><td>)</td>
4987           <td> const</td>
4988         </tr>
4989       </table>
4990   </td>
4991   <td class="mlabels-right">
4992 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
4993   </tr>
4994 </table>
4995 </div><div class="memdoc">
4996
4997 <p>return whether type is structured </p>
4998 <p>This function returns true iff the JSON type is structured (array or object).</p>
4999 <dl class="section return"><dt>Returns</dt><dd><code>true</code> if type is structured (array or object), <code>false</code> otherwise.</dd></dl>
5000 <p>Constant.</p>
5001 <p>No-throw guarantee: this member function never throws exceptions.</p>
5002 <p>{The following code exemplifies <code><a class="el" href="classnlohmann_1_1basic__json.html#abc946f8df0445e62162a6633a444ae79" title="return whether type is structured ">is_structured()</a></code> for all JSON types.,is_structured}</p>
5003 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#ae5e7e83e05bf011781326a00fdf7a733">is_primitive()</a> &ndash; returns whether <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> is primitive </dd>
5004 <dd>
5005 <a class="el" href="classnlohmann_1_1basic__json.html#a286a1af9e72e4e41a359b6d01a7b9be9">is_array()</a> &ndash; returns whether <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> is an <a class="el" href="classnlohmann_1_1basic__json.html#a16bfbc9e705582cdf7e88affced6ca51" title="explicitly create an array from an initializer list ">array</a> </dd>
5006 <dd>
5007 <a class="el" href="classnlohmann_1_1basic__json.html#ad6a2a9425ea3806424417c2e7dcdbc01">is_object()</a> &ndash; returns whether <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> is an <a class="el" href="classnlohmann_1_1basic__json.html#a6955fcba671f39d7d04164ef034aada8" title="explicitly create an object from an initializer list ">object</a></dd></dl>
5008 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
5009
5010 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l02715">2715</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
5011
5012 </div>
5013 </div>
5014 <a id="ace1114c14ae7995319c4248e5fb77f39"></a>
5015 <h2 class="memtitle"><span class="permalink"><a href="#ace1114c14ae7995319c4248e5fb77f39">&#9670;&nbsp;</a></span>iterator_wrapper() <span class="overload">[1/2]</span></h2>
5016
5017 <div class="memitem">
5018 <div class="memproto">
5019 <table class="mlabels">
5020   <tr>
5021   <td class="mlabels-left">
5022       <table class="memname">
5023         <tr>
5024           <td class="memname">static iteration_proxy&lt;<a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56">iterator</a>&gt; iterator_wrapper </td>
5025           <td>(</td>
5026           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a>&#160;</td>
5027           <td class="paramname"><em>cont</em></td><td>)</td>
5028           <td></td>
5029         </tr>
5030       </table>
5031   </td>
5032   <td class="mlabels-right">
5033 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
5034   </tr>
5035 </table>
5036 </div><div class="memdoc">
5037
5038 <p>wrapper to access iterator member functions in range-based for </p>
5039 <p>This function allows to access <a class="el" href="classnlohmann_1_1basic__json_1_1iter__impl.html#a20a906353f77b2a7b947eb67c441fd20">iterator::key()</a> and <a class="el" href="classnlohmann_1_1basic__json_1_1iter__impl.html#a964fb45284debd5434cd10dc6b59adab">iterator::value()</a> during range-based for loops. In these loops, a reference to the JSON values is returned, so there is no access to the underlying iterator.</p>
5040 <dl class="section note"><dt>Note</dt><dd>The name of this function is not yet final and may change in the future. </dd></dl>
5041
5042 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04912">4912</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
5043
5044 </div>
5045 </div>
5046 <a id="ad5aec3fa1ab1dd3fb95581f13d0b0f72"></a>
5047 <h2 class="memtitle"><span class="permalink"><a href="#ad5aec3fa1ab1dd3fb95581f13d0b0f72">&#9670;&nbsp;</a></span>iterator_wrapper() <span class="overload">[2/2]</span></h2>
5048
5049 <div class="memitem">
5050 <div class="memproto">
5051 <table class="mlabels">
5052   <tr>
5053   <td class="mlabels-left">
5054       <table class="memname">
5055         <tr>
5056           <td class="memname">static iteration_proxy&lt;<a class="el" href="classnlohmann_1_1basic__json.html#aad59084c30e18d9f72bbeaea04b69c08">const_iterator</a>&gt; iterator_wrapper </td>
5057           <td>(</td>
5058           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td>
5059           <td class="paramname"><em>cont</em></td><td>)</td>
5060           <td></td>
5061         </tr>
5062       </table>
5063   </td>
5064   <td class="mlabels-right">
5065 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
5066   </tr>
5067 </table>
5068 </div><div class="memdoc">
5069
5070 <p>wrapper to access iterator member functions in range-based for </p>
5071 <p>This function allows to access <a class="el" href="classnlohmann_1_1basic__json_1_1iter__impl.html#a20a906353f77b2a7b947eb67c441fd20">iterator::key()</a> and <a class="el" href="classnlohmann_1_1basic__json_1_1iter__impl.html#a964fb45284debd5434cd10dc6b59adab">iterator::value()</a> during range-based for loops. In these loops, a reference to the JSON values is returned, so there is no access to the underlying iterator.</p>
5072 <dl class="section note"><dt>Note</dt><dd>The name of this function is not yet final and may change in the future. </dd></dl>
5073
5074 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04920">4920</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
5075
5076 </div>
5077 </div>
5078 <a id="ac2a85e463df4e95c1bf051cfb8237805"></a>
5079 <h2 class="memtitle"><span class="permalink"><a href="#ac2a85e463df4e95c1bf051cfb8237805">&#9670;&nbsp;</a></span>max_size()</h2>
5080
5081 <div class="memitem">
5082 <div class="memproto">
5083 <table class="mlabels">
5084   <tr>
5085   <td class="mlabels-left">
5086       <table class="memname">
5087         <tr>
5088           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#af38ce1af42d538f410180c265518d4f0">size_type</a> max_size </td>
5089           <td>(</td>
5090           <td class="paramname"></td><td>)</td>
5091           <td> const</td>
5092         </tr>
5093       </table>
5094   </td>
5095   <td class="mlabels-right">
5096 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
5097   </tr>
5098 </table>
5099 </div><div class="memdoc">
5100
5101 <p>returns the maximum possible number of elements </p>
5102 <p>Returns the maximum number of elements a JSON value is able to hold due to system or library implementation limitations, i.e. <code>std::distance(<a class="el" href="classnlohmann_1_1basic__json.html#a979556eb331ec35eb33472a90a160f99" title="returns an iterator to the first element ">begin()</a>, <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end()</a>)</code> for the JSON value.</p>
5103 <dl class="section return"><dt>Returns</dt><dd>The return value depends on the different types and is defined as follows: <table class="doxtable">
5104 <tr>
5105 <th>Value type </th><th>return value  </th></tr>
5106 <tr>
5107 <td>null </td><td><code>0</code> (same as <code><a class="el" href="classnlohmann_1_1basic__json.html#a0801762a3fe36fe32dca5f16e515478d" title="returns the number of elements ">size()</a></code>) </td></tr>
5108 <tr>
5109 <td>boolean </td><td><code>1</code> (same as <code><a class="el" href="classnlohmann_1_1basic__json.html#a0801762a3fe36fe32dca5f16e515478d" title="returns the number of elements ">size()</a></code>) </td></tr>
5110 <tr>
5111 <td>string </td><td><code>1</code> (same as <code><a class="el" href="classnlohmann_1_1basic__json.html#a0801762a3fe36fe32dca5f16e515478d" title="returns the number of elements ">size()</a></code>) </td></tr>
5112 <tr>
5113 <td>number </td><td><code>1</code> (same as <code><a class="el" href="classnlohmann_1_1basic__json.html#a0801762a3fe36fe32dca5f16e515478d" title="returns the number of elements ">size()</a></code>) </td></tr>
5114 <tr>
5115 <td>object </td><td>result of function <code>object_t::max_size()</code> </td></tr>
5116 <tr>
5117 <td>array </td><td>result of function <code>array_t::max_size()</code> </td></tr>
5118 </table>
5119 Constant, as long as <a class="el" href="classnlohmann_1_1basic__json.html#a289ffe7b795d293d233d03cfc60bcd15">array_t</a> and <a class="el" href="classnlohmann_1_1basic__json.html#a143db8a40359a56372e21a8feea66454">object_t</a> satisfy the Container concept; that is, their <code><a class="el" href="classnlohmann_1_1basic__json.html#ac2a85e463df4e95c1bf051cfb8237805" title="returns the maximum possible number of elements ">max_size()</a></code> functions have constant complexity.</dd></dl>
5120 <p>This function helps <code><a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a></code> satisfying the <a href="http://en.cppreference.com/w/cpp/concept/Container">Container</a> requirements:</p><ul>
5121 <li>The complexity is constant.</li>
5122 <li>Has the semantics of returning <code>b.size()</code> where <code>b</code> is the largest possible JSON value.</li>
5123 </ul>
5124 <p>{The following code calls <code><a class="el" href="classnlohmann_1_1basic__json.html#ac2a85e463df4e95c1bf051cfb8237805" title="returns the maximum possible number of elements ">max_size()</a></code> on the different value types. Note the output is implementation specific.,max_size}</p>
5125 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a0801762a3fe36fe32dca5f16e515478d">size()</a> &ndash; returns the number of elements</dd></dl>
5126 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
5127
5128 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05106">5106</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
5129
5130 </div>
5131 </div>
5132 <a id="a7b7fb3fbbbbae070cef34411707c887b"></a>
5133 <h2 class="memtitle"><span class="permalink"><a href="#a7b7fb3fbbbbae070cef34411707c887b">&#9670;&nbsp;</a></span>meta()</h2>
5134
5135 <div class="memitem">
5136 <div class="memproto">
5137 <table class="mlabels">
5138   <tr>
5139   <td class="mlabels-left">
5140       <table class="memname">
5141         <tr>
5142           <td class="memname">static <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> meta </td>
5143           <td>(</td>
5144           <td class="paramname"></td><td>)</td>
5145           <td></td>
5146         </tr>
5147       </table>
5148   </td>
5149   <td class="mlabels-right">
5150 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
5151   </tr>
5152 </table>
5153 </div><div class="memdoc">
5154
5155 <p>returns version information on the library </p>
5156 <p>This function returns a JSON object with information about the library, including the version number and information on the platform and compiler.</p>
5157 <dl class="section return"><dt>Returns</dt><dd>JSON object holding version information <table class="doxtable">
5158 <tr>
5159 <th>key </th><th>description  </th></tr>
5160 <tr>
5161 <td><code>compiler</code> </td><td>Information on the used compiler. It is an object with the following keys: <code>c++</code> (the used C++ standard), <code>family</code> (the compiler family; possible values are <code>clang</code>, <code>icc</code>, <code>gcc</code>, <code>ilecpp</code>, <code>msvc</code>, <code>pgcpp</code>, <code>sunpro</code>, and <code>unknown</code>), and <code>version</code> (the compiler version). </td></tr>
5162 <tr>
5163 <td><code>copyright</code> </td><td>The copyright line for the library as string. </td></tr>
5164 <tr>
5165 <td><code>name</code> </td><td>The name of the library as string. </td></tr>
5166 <tr>
5167 <td><code>platform</code> </td><td>The used platform as string. Possible values are <code>win32</code>, <code>linux</code>, <code>apple</code>, <code>unix</code>, and <code>unknown</code>. </td></tr>
5168 <tr>
5169 <td><code>url</code> </td><td>The URL of the project as string. </td></tr>
5170 <tr>
5171 <td><code>version</code> </td><td>The version of the library. It is an object with the following keys: <code>major</code>, <code>minor</code>, and <code>patch</code> as defined by <a href="http://semver.org">Semantic Versioning</a>, and <code>string</code> (the version string). </td></tr>
5172 </table>
5173 {The following code shows an example output of the <code><a class="el" href="classnlohmann_1_1basic__json.html#a7b7fb3fbbbbae070cef34411707c887b" title="returns version information on the library ">meta()</a></code> function.,meta}</dd></dl>
5174 <p>Constant.</p>
5175 <dl class="section since"><dt>Since</dt><dd>2.1.0 </dd></dl>
5176
5177 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01107">1107</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
5178
5179 </div>
5180 </div>
5181 <a id="a6955fcba671f39d7d04164ef034aada8"></a>
5182 <h2 class="memtitle"><span class="permalink"><a href="#a6955fcba671f39d7d04164ef034aada8">&#9670;&nbsp;</a></span>object()</h2>
5183
5184 <div class="memitem">
5185 <div class="memproto">
5186 <table class="mlabels">
5187   <tr>
5188   <td class="mlabels-left">
5189       <table class="memname">
5190         <tr>
5191           <td class="memname">static <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> object </td>
5192           <td>(</td>
5193           <td class="paramtype">std::initializer_list&lt; <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; &gt;&#160;</td>
5194           <td class="paramname"><em>init</em> = <code>std::initializer_list&lt;<a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt;&#160;ObjectType,&#160;ArrayType,&#160;StringType,&#160;BooleanType,&#160;NumberIntegerType,&#160;NumberUnsignedType,&#160;NumberFloatType,&#160;AllocatorType,&#160;JSONSerializer&#160;&gt;&gt;()</code></td><td>)</td>
5195           <td></td>
5196         </tr>
5197       </table>
5198   </td>
5199   <td class="mlabels-right">
5200 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
5201   </tr>
5202 </table>
5203 </div><div class="memdoc">
5204
5205 <p>explicitly create an object from an initializer list </p>
5206 <p>Creates a JSON object value from a given initializer list. The initializer lists elements must be pairs, and their first elements must be strings. If the initializer list is empty, the empty object <code>{}</code> is created.</p>
5207 <dl class="section note"><dt>Note</dt><dd>This function is only added for symmetry reasons. In contrast to the related function <a class="el" href="classnlohmann_1_1basic__json.html#a16bfbc9e705582cdf7e88affced6ca51">array(std::initializer_list&lt;basic_json&gt;)</a>, there are no cases which can only be expressed by this function. That is, any initializer list <em>init</em> can also be passed to the initializer list constructor <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>(std::initializer_list&lt;basic_json&gt;, bool, value_t).</dd></dl>
5208 <dl class="params"><dt>Parameters</dt><dd>
5209   <table class="params">
5210     <tr><td class="paramdir">[in]</td><td class="paramname">init</td><td>initializer list to create an object from (optional)</td></tr>
5211   </table>
5212   </dd>
5213 </dl>
5214 <dl class="section return"><dt>Returns</dt><dd>JSON object value</dd></dl>
5215 <dl class="exception"><dt>Exceptions</dt><dd>
5216   <table class="exception">
5217     <tr><td class="paramname">std::domain_error</td><td>if <em>init</em> is not a pair whose first elements are strings; thrown by <a class="el" href="classnlohmann_1_1basic__json.html#a0ed1b6bedb9c7915b6e4bdca58d9921d">basic_json(std::initializer_list&lt;basic_json&gt;, bool, value_t)</a></td></tr>
5218   </table>
5219   </dd>
5220 </dl>
5221 <p>Linear in the size of <em>init</em>.</p>
5222 <p>{The following code shows an example for the <code>object</code> function.,object}</p>
5223 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a0ed1b6bedb9c7915b6e4bdca58d9921d">basic_json(std::initializer_list&lt;basic_json&gt;, bool, value_t)</a> &ndash; create a JSON <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> from an initializer list </dd>
5224 <dd>
5225 <a class="el" href="classnlohmann_1_1basic__json.html#a16bfbc9e705582cdf7e88affced6ca51">array(std::initializer_list&lt;basic_json&gt;)</a> &ndash; create a JSON <a class="el" href="classnlohmann_1_1basic__json.html#a16bfbc9e705582cdf7e88affced6ca51" title="explicitly create an array from an initializer list ">array</a> <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> from an initializer list</dd></dl>
5226 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
5227
5228 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l02182">2182</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
5229 <div class="dynheader">
5230 Here is the caller graph for this function:</div>
5231 <div class="dyncontent">
5232 <div class="center"><img src="classnlohmann_1_1basic__json_a6955fcba671f39d7d04164ef034aada8_icgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_a6955fcba671f39d7d04164ef034aada8_icgraph" alt=""/></div>
5233 <map name="classnlohmann_1_1basic__json_a6955fcba671f39d7d04164ef034aada8_icgraph" id="classnlohmann_1_1basic__json_a6955fcba671f39d7d04164ef034aada8_icgraph">
5234 <area shape="rect" id="node2" href="classnlohmann_1_1basic__json.html#a21e205d45fed194dec979bc1ea5388ac" title="read&#45;only access specified object element " alt="" coords="111,5,188,32"/>
5235 </map>
5236 </div>
5237
5238 </div>
5239 </div>
5240 <a id="a88617128d78ac71c7f1025c3de7a2859"></a>
5241 <h2 class="memtitle"><span class="permalink"><a href="#a88617128d78ac71c7f1025c3de7a2859">&#9670;&nbsp;</a></span>operator value_t()</h2>
5242
5243 <div class="memitem">
5244 <div class="memproto">
5245 <table class="mlabels">
5246   <tr>
5247   <td class="mlabels-left">
5248       <table class="memname">
5249         <tr>
5250           <td class="memname">constexpr operator <a class="el" href="namespacenlohmann_1_1detail.html#aedb3045c82a17d48de0f030229adbffe">value_t</a> </td>
5251           <td>(</td>
5252           <td class="paramname"></td><td>)</td>
5253           <td> const</td>
5254         </tr>
5255       </table>
5256   </td>
5257   <td class="mlabels-right">
5258 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
5259   </tr>
5260 </table>
5261 </div><div class="memdoc">
5262
5263 <p>return the type of the JSON value (implicit) </p>
5264 <p>Implicitly return the type of the JSON value as a value from the <a class="el" href="classnlohmann_1_1basic__json.html#ace569a7a0433ec013c33c927453cb727">value_t</a> enumeration.</p>
5265 <dl class="section return"><dt>Returns</dt><dd>the type of the JSON value</dd></dl>
5266 <p>Constant.</p>
5267 <p>No-throw guarantee: this member function never throws exceptions.</p>
5268 <p>{The following code exemplifies the <a class="el" href="classnlohmann_1_1basic__json.html#ace569a7a0433ec013c33c927453cb727">value_t</a> operator for all JSON types.,operator__value_t}</p>
5269 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
5270
5271 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l02990">2990</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
5272
5273 </div>
5274 </div>
5275 <a id="ad473c5817538254b1cc601abcd371157"></a>
5276 <h2 class="memtitle"><span class="permalink"><a href="#ad473c5817538254b1cc601abcd371157">&#9670;&nbsp;</a></span>operator ValueType()</h2>
5277
5278 <div class="memitem">
5279 <div class="memproto">
5280 <table class="mlabels">
5281   <tr>
5282   <td class="mlabels-left">
5283       <table class="memname">
5284         <tr>
5285           <td class="memname">operator ValueType </td>
5286           <td>(</td>
5287           <td class="paramname"></td><td>)</td>
5288           <td> const</td>
5289         </tr>
5290       </table>
5291   </td>
5292   <td class="mlabels-right">
5293 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
5294   </tr>
5295 </table>
5296 </div><div class="memdoc">
5297
5298 <p>get a value (implicit) </p>
5299 <p>Implicit type conversion between the JSON value and a compatible value. The call is realized by calling <a class="el" href="classnlohmann_1_1basic__json.html#ac0019ee44c3e6a11491b841b589391ad">get() const</a>.</p>
5300 <dl class="tparams"><dt>Template Parameters</dt><dd>
5301   <table class="tparams">
5302     <tr><td class="paramname">ValueType</td><td>non-pointer type compatible to the JSON value, for instance <code>int</code> for JSON integer numbers, <code>bool</code> for JSON booleans, or <code>std::vector</code> types for JSON arrays. The character type of <a class="el" href="classnlohmann_1_1basic__json.html#aeacc0aa4079b56866238b8845928c2b7">string_t</a> as well as an initializer list of this type is excluded to avoid ambiguities as these types implicitly convert to <code>std::string</code>.</td></tr>
5303   </table>
5304   </dd>
5305 </dl>
5306 <dl class="section return"><dt>Returns</dt><dd>copy of the JSON value, converted to type <em>ValueType</em> </dd></dl>
5307 <dl class="exception"><dt>Exceptions</dt><dd>
5308   <table class="exception">
5309     <tr><td class="paramname">std::domain_error</td><td>in case passed type <em>ValueType</em> is incompatible to JSON, thrown by <a class="el" href="classnlohmann_1_1basic__json.html#ac0019ee44c3e6a11491b841b589391ad">get() const</a></td></tr>
5310   </table>
5311   </dd>
5312 </dl>
5313 <p>Linear in the size of the JSON value.</p>
5314 <p>{The example below shows several conversions from JSON values to other types. There a few things to note: (1) Floating-point numbers can be converted to integers\, (2) A JSON array can be converted to a standard <code>std::vector&lt;short&gt;</code>\, (3) A JSON object can be converted to C++ associative containers such as <code>std::unordered_map&lt;std::string\, json&gt;</code>.,operator__ValueType}</p>
5315 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
5316
5317 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l03469">3469</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
5318
5319 </div>
5320 </div>
5321 <a id="aa130f045dca0b2e8d0ddae89e0f9cba8"></a>
5322 <h2 class="memtitle"><span class="permalink"><a href="#aa130f045dca0b2e8d0ddae89e0f9cba8">&#9670;&nbsp;</a></span>operator+=() <span class="overload">[1/4]</span></h2>
5323
5324 <div class="memitem">
5325 <div class="memproto">
5326 <table class="mlabels">
5327   <tr>
5328   <td class="mlabels-left">
5329       <table class="memname">
5330         <tr>
5331           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a> operator+= </td>
5332           <td>(</td>
5333           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; &amp;&amp;&#160;</td>
5334           <td class="paramname"><em>val</em></td><td>)</td>
5335           <td></td>
5336         </tr>
5337       </table>
5338   </td>
5339   <td class="mlabels-right">
5340 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
5341   </tr>
5342 </table>
5343 </div><div class="memdoc">
5344
5345 <p>add an object to an array </p>
5346 <p>add an object to an array Appends the given element <em>val</em> to the end of the JSON value. If the function is called on a JSON null value, an empty array is created before appending <em>val</em>.</p>
5347 <dl class="params"><dt>Parameters</dt><dd>
5348   <table class="params">
5349     <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>the value to add to the JSON array</td></tr>
5350   </table>
5351   </dd>
5352 </dl>
5353 <dl class="exception"><dt>Exceptions</dt><dd>
5354   <table class="exception">
5355     <tr><td class="paramname">std::domain_error</td><td>when called on a type other than JSON array or null; example: <code>"cannot use push_back() with number"</code></td></tr>
5356   </table>
5357   </dd>
5358 </dl>
5359 <p>Amortized constant.</p>
5360 <p>{The example shows how <code><a class="el" href="classnlohmann_1_1basic__json.html#aaf38acbc4aaada0a40549bc606f99c4f" title="add an object to an array ">push_back()</a></code> and <code>+=</code> can be used to add elements to a JSON array. Note how the <code>null</code> value was silently converted to a JSON array.,push_back}</p>
5361 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
5362
5363 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05261">5261</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
5364
5365 </div>
5366 </div>
5367 <a id="a0e7ec359c5e44fa0b81c19a4bb699c3d"></a>
5368 <h2 class="memtitle"><span class="permalink"><a href="#a0e7ec359c5e44fa0b81c19a4bb699c3d">&#9670;&nbsp;</a></span>operator+=() <span class="overload">[2/4]</span></h2>
5369
5370 <div class="memitem">
5371 <div class="memproto">
5372 <table class="mlabels">
5373   <tr>
5374   <td class="mlabels-left">
5375       <table class="memname">
5376         <tr>
5377           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a> operator+= </td>
5378           <td>(</td>
5379           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; &amp;&#160;</td>
5380           <td class="paramname"><em>val</em></td><td>)</td>
5381           <td></td>
5382         </tr>
5383       </table>
5384   </td>
5385   <td class="mlabels-right">
5386 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
5387   </tr>
5388 </table>
5389 </div><div class="memdoc">
5390
5391 <p>add an object to an array </p>
5392 <p>add an object to an array Appends the given element <em>val</em> to the end of the JSON value. If the function is called on a JSON null value, an empty array is created before appending <em>val</em>.</p>
5393 <dl class="params"><dt>Parameters</dt><dd>
5394   <table class="params">
5395     <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>the value to add to the JSON array</td></tr>
5396   </table>
5397   </dd>
5398 </dl>
5399 <dl class="exception"><dt>Exceptions</dt><dd>
5400   <table class="exception">
5401     <tr><td class="paramname">std::domain_error</td><td>when called on a type other than JSON array or null; example: <code>"cannot use push_back() with number"</code></td></tr>
5402   </table>
5403   </dd>
5404 </dl>
5405 <p>Amortized constant.</p>
5406 <p>{The example shows how <code><a class="el" href="classnlohmann_1_1basic__json.html#aaf38acbc4aaada0a40549bc606f99c4f" title="add an object to an array ">push_back()</a></code> and <code>+=</code> can be used to add elements to a JSON array. Note how the <code>null</code> value was silently converted to a JSON array.,push_back}</p>
5407 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
5408
5409 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05295">5295</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
5410
5411 </div>
5412 </div>
5413 <a id="abba1e62253b8581d1e8fa1aab041702f"></a>
5414 <h2 class="memtitle"><span class="permalink"><a href="#abba1e62253b8581d1e8fa1aab041702f">&#9670;&nbsp;</a></span>operator+=() <span class="overload">[3/4]</span></h2>
5415
5416 <div class="memitem">
5417 <div class="memproto">
5418 <table class="mlabels">
5419   <tr>
5420   <td class="mlabels-left">
5421       <table class="memname">
5422         <tr>
5423           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a> operator+= </td>
5424           <td>(</td>
5425           <td class="paramtype">const typename object_t::value_type &amp;&#160;</td>
5426           <td class="paramname"><em>val</em></td><td>)</td>
5427           <td></td>
5428         </tr>
5429       </table>
5430   </td>
5431   <td class="mlabels-right">
5432 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
5433   </tr>
5434 </table>
5435 </div><div class="memdoc">
5436
5437 <p>add an object to an object </p>
5438 <p>add an object to an object Inserts the given element <em>val</em> to the JSON object. If the function is called on a JSON null value, an empty object is created before inserting <em>val</em>.</p>
5439 <dl class="params"><dt>Parameters</dt><dd>
5440   <table class="params">
5441     <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>the value to add to the JSON object</td></tr>
5442   </table>
5443   </dd>
5444 </dl>
5445 <dl class="exception"><dt>Exceptions</dt><dd>
5446   <table class="exception">
5447     <tr><td class="paramname">std::domain_error</td><td>when called on a type other than JSON object or null; example: <code>"cannot use push_back() with number"</code></td></tr>
5448   </table>
5449   </dd>
5450 </dl>
5451 <p>Logarithmic in the size of the container, O(log(<code><a class="el" href="classnlohmann_1_1basic__json.html#a0801762a3fe36fe32dca5f16e515478d" title="returns the number of elements ">size()</a></code>)).</p>
5452 <p>{The example shows how <code><a class="el" href="classnlohmann_1_1basic__json.html#aaf38acbc4aaada0a40549bc606f99c4f" title="add an object to an array ">push_back()</a></code> and <code>+=</code> can be used to add elements to a JSON object. Note how the <code>null</code> value was silently converted to a JSON object.,push_back__object_t__value}</p>
5453 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
5454
5455 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05345">5345</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
5456
5457 </div>
5458 </div>
5459 <a id="ac42b45d70dbd9ad603c60305540f5aca"></a>
5460 <h2 class="memtitle"><span class="permalink"><a href="#ac42b45d70dbd9ad603c60305540f5aca">&#9670;&nbsp;</a></span>operator+=() <span class="overload">[4/4]</span></h2>
5461
5462 <div class="memitem">
5463 <div class="memproto">
5464 <table class="mlabels">
5465   <tr>
5466   <td class="mlabels-left">
5467       <table class="memname">
5468         <tr>
5469           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a> operator+= </td>
5470           <td>(</td>
5471           <td class="paramtype">std::initializer_list&lt; <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; &gt;&#160;</td>
5472           <td class="paramname"><em>init</em></td><td>)</td>
5473           <td></td>
5474         </tr>
5475       </table>
5476   </td>
5477   <td class="mlabels-right">
5478 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
5479   </tr>
5480 </table>
5481 </div><div class="memdoc">
5482
5483 <p>add an object to an object </p>
5484 <p>add an object to an object This function allows to use <code>push_back</code> with an initializer list. In case</p>
5485 <ol type="1">
5486 <li>the current value is an object,</li>
5487 <li>the initializer list <em>init</em> contains only two elements, and</li>
5488 <li>the first element of <em>init</em> is a string,</li>
5489 </ol>
5490 <p><em>init</em> is converted into an object element and added using <a class="el" href="classnlohmann_1_1basic__json.html#af39e5dcd421f92346c586d57ad7d6609">push_back(const typename object_t::value_type&amp;)</a>. Otherwise, <em>init</em> is converted to a JSON value and added using <a class="el" href="classnlohmann_1_1basic__json.html#aaf38acbc4aaada0a40549bc606f99c4f">push_back(basic_json&amp;&amp;)</a>.</p>
5491 <dl class="params"><dt>Parameters</dt><dd>
5492   <table class="params">
5493     <tr><td class="paramname">init</td><td>an initializer list</td></tr>
5494   </table>
5495   </dd>
5496 </dl>
5497 <p>Linear in the size of the initializer list <em>init</em>.</p>
5498 <dl class="section note"><dt>Note</dt><dd>This function is required to resolve an ambiguous overload error, because pairs like <code>{"key", "value"}</code> can be both interpreted as <code>object_t::value_type</code> or <code>std::initializer_list&lt;<a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a>&gt;</code>, see <a href="https://github.com/nlohmann/json/issues/235">https://github.com/nlohmann/json/issues/235</a> for more information.</dd></dl>
5499 <p>{The example shows how initializer lists are treated as objects when possible.,push_back__initializer_list} </p>
5500
5501 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05393">5393</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
5502
5503 </div>
5504 </div>
5505 <a id="aee22c00d2bff99e59c1a2abe76bb74d8"></a>
5506 <h2 class="memtitle"><span class="permalink"><a href="#aee22c00d2bff99e59c1a2abe76bb74d8">&#9670;&nbsp;</a></span>operator=()</h2>
5507
5508 <div class="memitem">
5509 <div class="memproto">
5510 <table class="mlabels">
5511   <tr>
5512   <td class="mlabels-left">
5513       <table class="memname">
5514         <tr>
5515           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a>&amp; operator= </td>
5516           <td>(</td>
5517           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt;&#160;</td>
5518           <td class="paramname"><em>other</em></td><td>)</td>
5519           <td></td>
5520         </tr>
5521       </table>
5522   </td>
5523   <td class="mlabels-right">
5524 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
5525   </tr>
5526 </table>
5527 </div><div class="memdoc">
5528
5529 <p>copy assignment </p>
5530 <p>Copy assignment operator. Copies a JSON value via the "copy and swap" strategy: It is expressed in terms of the copy constructor, destructor, and the <a class="el" href="classnlohmann_1_1basic__json.html#a0f6968dcb6461353787d510aaa671b61" title="exchanges the values ">swap()</a> member function.</p>
5531 <dl class="params"><dt>Parameters</dt><dd>
5532   <table class="params">
5533     <tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>value to copy from</td></tr>
5534   </table>
5535   </dd>
5536 </dl>
5537 <p>Linear.</p>
5538 <p>This function helps <code><a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a></code> satisfying the <a href="http://en.cppreference.com/w/cpp/concept/Container">Container</a> requirements:</p><ul>
5539 <li>The complexity is linear.</li>
5540 </ul>
5541 <p>{The code below shows and example for the copy assignment. It creates a copy of value <code>a</code> which is then swapped with <code>b</code>. Finally\, the copy of <code>a</code> (which is the null value after the swap) is destroyed.,basic_json__copyassignment}</p>
5542 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
5543
5544 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l02519">2519</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
5545 <div class="dynheader">
5546 Here is the call graph for this function:</div>
5547 <div class="dyncontent">
5548 <div class="center"><img src="classnlohmann_1_1basic__json_aee22c00d2bff99e59c1a2abe76bb74d8_cgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_aee22c00d2bff99e59c1a2abe76bb74d8_cgraph" alt=""/></div>
5549 <map name="classnlohmann_1_1basic__json_aee22c00d2bff99e59c1a2abe76bb74d8_cgraph" id="classnlohmann_1_1basic__json_aee22c00d2bff99e59c1a2abe76bb74d8_cgraph">
5550 <area shape="rect" id="node2" href="namespacestd.html#a907191b7578e209391ce938e3b2afdf7" title="exchanges the values of two JSON objects " alt="" coords="131,5,209,32"/>
5551 </map>
5552 </div>
5553
5554 </div>
5555 </div>
5556 <a id="a693ccc537e47d7c90c86d4ca2fe1db05"></a>
5557 <h2 class="memtitle"><span class="permalink"><a href="#a693ccc537e47d7c90c86d4ca2fe1db05">&#9670;&nbsp;</a></span>operator[]() <span class="overload">[1/10]</span></h2>
5558
5559 <div class="memitem">
5560 <div class="memproto">
5561 <table class="mlabels">
5562   <tr>
5563   <td class="mlabels-left">
5564       <table class="memname">
5565         <tr>
5566           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a> operator[] </td>
5567           <td>(</td>
5568           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#af38ce1af42d538f410180c265518d4f0">size_type</a>&#160;</td>
5569           <td class="paramname"><em>idx</em></td><td>)</td>
5570           <td></td>
5571         </tr>
5572       </table>
5573   </td>
5574   <td class="mlabels-right">
5575 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
5576   </tr>
5577 </table>
5578 </div><div class="memdoc">
5579
5580 <p>access specified array element </p>
5581 <p>Returns a reference to the element at specified location <em>idx</em>.</p>
5582 <dl class="section note"><dt>Note</dt><dd>If <em>idx</em> is beyond the range of the array (i.e., <code>idx &gt;= <a class="el" href="classnlohmann_1_1basic__json.html#a0801762a3fe36fe32dca5f16e515478d" title="returns the number of elements ">size()</a></code>), then the array is silently filled up with <code>null</code> values to make <code>idx</code> a valid reference to the last stored element.</dd></dl>
5583 <dl class="params"><dt>Parameters</dt><dd>
5584   <table class="params">
5585     <tr><td class="paramdir">[in]</td><td class="paramname">idx</td><td>index of the element to access</td></tr>
5586   </table>
5587   </dd>
5588 </dl>
5589 <dl class="section return"><dt>Returns</dt><dd>reference to the element at index <em>idx</em> </dd></dl>
5590 <dl class="exception"><dt>Exceptions</dt><dd>
5591   <table class="exception">
5592     <tr><td class="paramname">std::domain_error</td><td>if JSON is not an array or null; example: <code>"cannot use operator[] with string"</code></td></tr>
5593   </table>
5594   </dd>
5595 </dl>
5596 <p>Constant if <em>idx</em> is in the range of the array. Otherwise linear in <code>idx - <a class="el" href="classnlohmann_1_1basic__json.html#a0801762a3fe36fe32dca5f16e515478d" title="returns the number of elements ">size()</a></code>.</p>
5597 <p>{The example below shows how array elements can be read and written using <code>[]</code> operator. Note the addition of <code>null</code> values.,operatorarray__size_type}</p>
5598 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
5599
5600 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l03691">3691</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
5601
5602 </div>
5603 </div>
5604 <a id="a890ecb965cd00d2cae1f76c0602f350a"></a>
5605 <h2 class="memtitle"><span class="permalink"><a href="#a890ecb965cd00d2cae1f76c0602f350a">&#9670;&nbsp;</a></span>operator[]() <span class="overload">[2/10]</span></h2>
5606
5607 <div class="memitem">
5608 <div class="memproto">
5609 <table class="mlabels">
5610   <tr>
5611   <td class="mlabels-left">
5612       <table class="memname">
5613         <tr>
5614           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> operator[] </td>
5615           <td>(</td>
5616           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#af38ce1af42d538f410180c265518d4f0">size_type</a>&#160;</td>
5617           <td class="paramname"><em>idx</em></td><td>)</td>
5618           <td> const</td>
5619         </tr>
5620       </table>
5621   </td>
5622   <td class="mlabels-right">
5623 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
5624   </tr>
5625 </table>
5626 </div><div class="memdoc">
5627
5628 <p>access specified array element </p>
5629 <p>Returns a const reference to the element at specified location <em>idx</em>.</p>
5630 <dl class="params"><dt>Parameters</dt><dd>
5631   <table class="params">
5632     <tr><td class="paramdir">[in]</td><td class="paramname">idx</td><td>index of the element to access</td></tr>
5633   </table>
5634   </dd>
5635 </dl>
5636 <dl class="section return"><dt>Returns</dt><dd>const reference to the element at index <em>idx</em> </dd></dl>
5637 <dl class="exception"><dt>Exceptions</dt><dd>
5638   <table class="exception">
5639     <tr><td class="paramname">std::domain_error</td><td>if JSON is not an array; example: <code>"cannot use
5640 operator[] with null"</code></td></tr>
5641   </table>
5642   </dd>
5643 </dl>
5644 <p>Constant.</p>
5645 <p>{The example below shows how array elements can be read using the <code>[]</code> operator.,operatorarray__size_type_const}</p>
5646 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
5647
5648 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l03737">3737</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
5649 <div class="dynheader">
5650 Here is the call graph for this function:</div>
5651 <div class="dyncontent">
5652 <div class="center"><img src="classnlohmann_1_1basic__json_a890ecb965cd00d2cae1f76c0602f350a_cgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_a890ecb965cd00d2cae1f76c0602f350a_cgraph" alt=""/></div>
5653 <map name="classnlohmann_1_1basic__json_a890ecb965cd00d2cae1f76c0602f350a_cgraph" id="classnlohmann_1_1basic__json_a890ecb965cd00d2cae1f76c0602f350a_cgraph">
5654 <area shape="rect" id="node2" href="classnlohmann_1_1basic__json.html#a16bfbc9e705582cdf7e88affced6ca51" title="explicitly create an array from an initializer list " alt="" coords="131,5,181,32"/>
5655 </map>
5656 </div>
5657
5658 </div>
5659 </div>
5660 <a id="a27efc3966d94d080bb36fa3595c15df5"></a>
5661 <h2 class="memtitle"><span class="permalink"><a href="#a27efc3966d94d080bb36fa3595c15df5">&#9670;&nbsp;</a></span>operator[]() <span class="overload">[3/10]</span></h2>
5662
5663 <div class="memitem">
5664 <div class="memproto">
5665 <table class="mlabels">
5666   <tr>
5667   <td class="mlabels-left">
5668       <table class="memname">
5669         <tr>
5670           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a> operator[] </td>
5671           <td>(</td>
5672           <td class="paramtype">const typename object_t::key_type &amp;&#160;</td>
5673           <td class="paramname"><em>key</em></td><td>)</td>
5674           <td></td>
5675         </tr>
5676       </table>
5677   </td>
5678   <td class="mlabels-right">
5679 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
5680   </tr>
5681 </table>
5682 </div><div class="memdoc">
5683
5684 <p>access specified object element </p>
5685 <p>Returns a reference to the element at with specified key <em>key</em>.</p>
5686 <dl class="section note"><dt>Note</dt><dd>If <em>key</em> is not found in the object, then it is silently added to the object and filled with a <code>null</code> value to make <code>key</code> a valid reference. In case the value was <code>null</code> before, it is converted to an object.</dd></dl>
5687 <dl class="params"><dt>Parameters</dt><dd>
5688   <table class="params">
5689     <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>key of the element to access</td></tr>
5690   </table>
5691   </dd>
5692 </dl>
5693 <dl class="section return"><dt>Returns</dt><dd>reference to the element at key <em>key</em> </dd></dl>
5694 <dl class="exception"><dt>Exceptions</dt><dd>
5695   <table class="exception">
5696     <tr><td class="paramname">std::domain_error</td><td>if JSON is not an object or null; example: <code>"cannot use operator[] with string"</code></td></tr>
5697   </table>
5698   </dd>
5699 </dl>
5700 <p>Logarithmic in the size of the container.</p>
5701 <p>{The example below shows how object elements can be read and written using the <code>[]</code> operator.,operatorarray__key_type}</p>
5702 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a18c0c62edce2742d5ab24d1979c3ef00">at(const typename object_t::key_type&amp;)</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> access by <a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de" title="the type of an element reference ">reference</a> with range checking </dd>
5703 <dd>
5704 <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f">value()</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> access by <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> with a default <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a></dd></dl>
5705 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
5706
5707 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l03775">3775</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
5708
5709 </div>
5710 </div>
5711 <a id="a21e205d45fed194dec979bc1ea5388ac"></a>
5712 <h2 class="memtitle"><span class="permalink"><a href="#a21e205d45fed194dec979bc1ea5388ac">&#9670;&nbsp;</a></span>operator[]() <span class="overload">[4/10]</span></h2>
5713
5714 <div class="memitem">
5715 <div class="memproto">
5716 <table class="mlabels">
5717   <tr>
5718   <td class="mlabels-left">
5719       <table class="memname">
5720         <tr>
5721           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> operator[] </td>
5722           <td>(</td>
5723           <td class="paramtype">const typename object_t::key_type &amp;&#160;</td>
5724           <td class="paramname"><em>key</em></td><td>)</td>
5725           <td> const</td>
5726         </tr>
5727       </table>
5728   </td>
5729   <td class="mlabels-right">
5730 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
5731   </tr>
5732 </table>
5733 </div><div class="memdoc">
5734
5735 <p>read-only access specified object element </p>
5736 <p>Returns a const reference to the element at with specified key <em>key</em>. No bounds checking is performed.</p>
5737 <dl class="section warning"><dt>Warning</dt><dd>If the element with key <em>key</em> does not exist, the behavior is undefined.</dd></dl>
5738 <dl class="params"><dt>Parameters</dt><dd>
5739   <table class="params">
5740     <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>key of the element to access</td></tr>
5741   </table>
5742   </dd>
5743 </dl>
5744 <dl class="section return"><dt>Returns</dt><dd>const reference to the element at key <em>key</em> </dd></dl>
5745 <dl class="section pre"><dt>Precondition</dt><dd>The element with key <em>key</em> must exist. <b>This precondition is enforced with an assertion.</b></dd></dl>
5746 <dl class="exception"><dt>Exceptions</dt><dd>
5747   <table class="exception">
5748     <tr><td class="paramname">std::domain_error</td><td>if JSON is not an object; example: <code>"cannot use
5749 operator[] with null"</code></td></tr>
5750   </table>
5751   </dd>
5752 </dl>
5753 <p>Logarithmic in the size of the container.</p>
5754 <p>{The example below shows how object elements can be read using the <code>[]</code> operator.,operatorarray__key_type_const}</p>
5755 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a18c0c62edce2742d5ab24d1979c3ef00">at(const typename object_t::key_type&amp;)</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> access by <a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de" title="the type of an element reference ">reference</a> with range checking </dd>
5756 <dd>
5757 <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f">value()</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> access by <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> with a default <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a></dd></dl>
5758 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
5759
5760 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l03824">3824</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
5761 <div class="dynheader">
5762 Here is the call graph for this function:</div>
5763 <div class="dyncontent">
5764 <div class="center"><img src="classnlohmann_1_1basic__json_a21e205d45fed194dec979bc1ea5388ac_cgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_a21e205d45fed194dec979bc1ea5388ac_cgraph" alt=""/></div>
5765 <map name="classnlohmann_1_1basic__json_a21e205d45fed194dec979bc1ea5388ac_cgraph" id="classnlohmann_1_1basic__json_a21e205d45fed194dec979bc1ea5388ac_cgraph">
5766 <area shape="rect" id="node2" href="classnlohmann_1_1basic__json.html#a6955fcba671f39d7d04164ef034aada8" title="explicitly create an object from an initializer list " alt="" coords="131,5,188,32"/>
5767 <area shape="rect" id="node3" href="classnlohmann_1_1basic__json.html#a4cf2116be00a99de7addd2c32d71f99d" title="find an element in a JSON object " alt="" coords="138,56,181,83"/>
5768 </map>
5769 </div>
5770
5771 </div>
5772 </div>
5773 <a id="aea49996d0be84a9e652cadf7f975db33"></a>
5774 <h2 class="memtitle"><span class="permalink"><a href="#aea49996d0be84a9e652cadf7f975db33">&#9670;&nbsp;</a></span>operator[]() <span class="overload">[5/10]</span></h2>
5775
5776 <div class="memitem">
5777 <div class="memproto">
5778 <table class="mlabels">
5779   <tr>
5780   <td class="mlabels-left">
5781       <table class="memname">
5782         <tr>
5783           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a> operator[] </td>
5784           <td>(</td>
5785           <td class="paramtype">T *(&amp;)&#160;</td>
5786           <td class="paramname"><em>key</em>[n]</td><td>)</td>
5787           <td></td>
5788         </tr>
5789       </table>
5790   </td>
5791   <td class="mlabels-right">
5792 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
5793   </tr>
5794 </table>
5795 </div><div class="memdoc">
5796
5797 <p>access specified object element </p>
5798 <p>Returns a reference to the element at with specified key <em>key</em>.</p>
5799 <dl class="section note"><dt>Note</dt><dd>If <em>key</em> is not found in the object, then it is silently added to the object and filled with a <code>null</code> value to make <code>key</code> a valid reference. In case the value was <code>null</code> before, it is converted to an object.</dd></dl>
5800 <dl class="params"><dt>Parameters</dt><dd>
5801   <table class="params">
5802     <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>key of the element to access</td></tr>
5803   </table>
5804   </dd>
5805 </dl>
5806 <dl class="section return"><dt>Returns</dt><dd>reference to the element at key <em>key</em> </dd></dl>
5807 <dl class="exception"><dt>Exceptions</dt><dd>
5808   <table class="exception">
5809     <tr><td class="paramname">std::domain_error</td><td>if JSON is not an object or null; example: <code>"cannot use operator[] with string"</code></td></tr>
5810   </table>
5811   </dd>
5812 </dl>
5813 <p>Logarithmic in the size of the container.</p>
5814 <p>{The example below shows how object elements can be read and written using the <code>[]</code> operator.,operatorarray__key_type}</p>
5815 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a18c0c62edce2742d5ab24d1979c3ef00">at(const typename object_t::key_type&amp;)</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> access by <a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de" title="the type of an element reference ">reference</a> with range checking </dd>
5816 <dd>
5817 <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f">value()</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> access by <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> with a default <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a></dd></dl>
5818 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
5819
5820 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l03864">3864</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
5821
5822 </div>
5823 </div>
5824 <a id="ae4a416f01acd73e941714fe5c54389ce"></a>
5825 <h2 class="memtitle"><span class="permalink"><a href="#ae4a416f01acd73e941714fe5c54389ce">&#9670;&nbsp;</a></span>operator[]() <span class="overload">[6/10]</span></h2>
5826
5827 <div class="memitem">
5828 <div class="memproto">
5829 <table class="mlabels">
5830   <tr>
5831   <td class="mlabels-left">
5832       <table class="memname">
5833         <tr>
5834           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> operator[] </td>
5835           <td>(</td>
5836           <td class="paramtype">T *(&amp;)&#160;</td>
5837           <td class="paramname"><em>key</em>[n]</td><td>)</td>
5838           <td> const</td>
5839         </tr>
5840       </table>
5841   </td>
5842   <td class="mlabels-right">
5843 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
5844   </tr>
5845 </table>
5846 </div><div class="memdoc">
5847
5848 <p>read-only access specified object element </p>
5849 <p>Returns a const reference to the element at with specified key <em>key</em>. No bounds checking is performed.</p>
5850 <dl class="section warning"><dt>Warning</dt><dd>If the element with key <em>key</em> does not exist, the behavior is undefined.</dd></dl>
5851 <dl class="section note"><dt>Note</dt><dd>This function is required for compatibility reasons with Clang.</dd></dl>
5852 <dl class="params"><dt>Parameters</dt><dd>
5853   <table class="params">
5854     <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>key of the element to access</td></tr>
5855   </table>
5856   </dd>
5857 </dl>
5858 <dl class="section return"><dt>Returns</dt><dd>const reference to the element at key <em>key</em> </dd></dl>
5859 <dl class="exception"><dt>Exceptions</dt><dd>
5860   <table class="exception">
5861     <tr><td class="paramname">std::domain_error</td><td>if JSON is not an object; example: <code>"cannot use
5862 operator[] with null"</code></td></tr>
5863   </table>
5864   </dd>
5865 </dl>
5866 <p>Logarithmic in the size of the container.</p>
5867 <p>{The example below shows how object elements can be read using the <code>[]</code> operator.,operatorarray__key_type_const}</p>
5868 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a18c0c62edce2742d5ab24d1979c3ef00">at(const typename object_t::key_type&amp;)</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> access by <a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de" title="the type of an element reference ">reference</a> with range checking </dd>
5869 <dd>
5870 <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f">value()</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> access by <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> with a default <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a></dd></dl>
5871 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
5872
5873 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l03899">3899</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
5874
5875 </div>
5876 </div>
5877 <a id="ace3f02fdb9af2b87d407db1bfd20c424"></a>
5878 <h2 class="memtitle"><span class="permalink"><a href="#ace3f02fdb9af2b87d407db1bfd20c424">&#9670;&nbsp;</a></span>operator[]() <span class="overload">[7/10]</span></h2>
5879
5880 <div class="memitem">
5881 <div class="memproto">
5882 <table class="mlabels">
5883   <tr>
5884   <td class="mlabels-left">
5885       <table class="memname">
5886         <tr>
5887           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a> operator[] </td>
5888           <td>(</td>
5889           <td class="paramtype">T *&#160;</td>
5890           <td class="paramname"><em>key</em></td><td>)</td>
5891           <td></td>
5892         </tr>
5893       </table>
5894   </td>
5895   <td class="mlabels-right">
5896 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
5897   </tr>
5898 </table>
5899 </div><div class="memdoc">
5900
5901 <p>access specified object element </p>
5902 <p>Returns a reference to the element at with specified key <em>key</em>.</p>
5903 <dl class="section note"><dt>Note</dt><dd>If <em>key</em> is not found in the object, then it is silently added to the object and filled with a <code>null</code> value to make <code>key</code> a valid reference. In case the value was <code>null</code> before, it is converted to an object.</dd></dl>
5904 <dl class="params"><dt>Parameters</dt><dd>
5905   <table class="params">
5906     <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>key of the element to access</td></tr>
5907   </table>
5908   </dd>
5909 </dl>
5910 <dl class="section return"><dt>Returns</dt><dd>reference to the element at key <em>key</em> </dd></dl>
5911 <dl class="exception"><dt>Exceptions</dt><dd>
5912   <table class="exception">
5913     <tr><td class="paramname">std::domain_error</td><td>if JSON is not an object or null; example: <code>"cannot use operator[] with string"</code></td></tr>
5914   </table>
5915   </dd>
5916 </dl>
5917 <p>Logarithmic in the size of the container.</p>
5918 <p>{The example below shows how object elements can be read and written using the <code>[]</code> operator.,operatorarray__key_type}</p>
5919 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a18c0c62edce2742d5ab24d1979c3ef00">at(const typename object_t::key_type&amp;)</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> access by <a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de" title="the type of an element reference ">reference</a> with range checking </dd>
5920 <dd>
5921 <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f">value()</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> access by <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> with a default <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a></dd></dl>
5922 <dl class="section since"><dt>Since</dt><dd>version 1.1.0 </dd></dl>
5923
5924 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l03932">3932</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
5925
5926 </div>
5927 </div>
5928 <a id="a12d90fef934fc6cfdac130424872604a"></a>
5929 <h2 class="memtitle"><span class="permalink"><a href="#a12d90fef934fc6cfdac130424872604a">&#9670;&nbsp;</a></span>operator[]() <span class="overload">[8/10]</span></h2>
5930
5931 <div class="memitem">
5932 <div class="memproto">
5933 <table class="mlabels">
5934   <tr>
5935   <td class="mlabels-left">
5936       <table class="memname">
5937         <tr>
5938           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> operator[] </td>
5939           <td>(</td>
5940           <td class="paramtype">T *&#160;</td>
5941           <td class="paramname"><em>key</em></td><td>)</td>
5942           <td> const</td>
5943         </tr>
5944       </table>
5945   </td>
5946   <td class="mlabels-right">
5947 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
5948   </tr>
5949 </table>
5950 </div><div class="memdoc">
5951
5952 <p>read-only access specified object element </p>
5953 <p>Returns a const reference to the element at with specified key <em>key</em>. No bounds checking is performed.</p>
5954 <dl class="section warning"><dt>Warning</dt><dd>If the element with key <em>key</em> does not exist, the behavior is undefined.</dd></dl>
5955 <dl class="params"><dt>Parameters</dt><dd>
5956   <table class="params">
5957     <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>key of the element to access</td></tr>
5958   </table>
5959   </dd>
5960 </dl>
5961 <dl class="section return"><dt>Returns</dt><dd>const reference to the element at key <em>key</em> </dd></dl>
5962 <dl class="section pre"><dt>Precondition</dt><dd>The element with key <em>key</em> must exist. <b>This precondition is enforced with an assertion.</b></dd></dl>
5963 <dl class="exception"><dt>Exceptions</dt><dd>
5964   <table class="exception">
5965     <tr><td class="paramname">std::domain_error</td><td>if JSON is not an object; example: <code>"cannot use
5966 operator[] with null"</code></td></tr>
5967   </table>
5968   </dd>
5969 </dl>
5970 <p>Logarithmic in the size of the container.</p>
5971 <p>{The example below shows how object elements can be read using the <code>[]</code> operator.,operatorarray__key_type_const}</p>
5972 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a18c0c62edce2742d5ab24d1979c3ef00">at(const typename object_t::key_type&amp;)</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> access by <a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de" title="the type of an element reference ">reference</a> with range checking </dd>
5973 <dd>
5974 <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f">value()</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> access by <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a> with a default <a class="el" href="classnlohmann_1_1basic__json.html#a13f9440aff453090f573a39f4713668f" title="access specified object element with default value ">value</a></dd></dl>
5975 <dl class="section since"><dt>Since</dt><dd>version 1.1.0 </dd></dl>
5976
5977 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l03982">3982</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
5978 <div class="dynheader">
5979 Here is the call graph for this function:</div>
5980 <div class="dyncontent">
5981 <div class="center"><img src="classnlohmann_1_1basic__json_a12d90fef934fc6cfdac130424872604a_cgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_a12d90fef934fc6cfdac130424872604a_cgraph" alt=""/></div>
5982 <map name="classnlohmann_1_1basic__json_a12d90fef934fc6cfdac130424872604a_cgraph" id="classnlohmann_1_1basic__json_a12d90fef934fc6cfdac130424872604a_cgraph">
5983 <area shape="rect" id="node2" href="classnlohmann_1_1basic__json.html#a6955fcba671f39d7d04164ef034aada8" title="explicitly create an object from an initializer list " alt="" coords="131,5,188,32"/>
5984 <area shape="rect" id="node3" href="classnlohmann_1_1basic__json.html#a4cf2116be00a99de7addd2c32d71f99d" title="find an element in a JSON object " alt="" coords="138,56,181,83"/>
5985 </map>
5986 </div>
5987
5988 </div>
5989 </div>
5990 <a id="af16e882a2401f188f4b26d728c5fc2ed"></a>
5991 <h2 class="memtitle"><span class="permalink"><a href="#af16e882a2401f188f4b26d728c5fc2ed">&#9670;&nbsp;</a></span>operator[]() <span class="overload">[9/10]</span></h2>
5992
5993 <div class="memitem">
5994 <div class="memproto">
5995 <table class="mlabels">
5996   <tr>
5997   <td class="mlabels-left">
5998       <table class="memname">
5999         <tr>
6000           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a> operator[] </td>
6001           <td>(</td>
6002           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json_1_1json__pointer.html">json_pointer</a> &amp;&#160;</td>
6003           <td class="paramname"><em>ptr</em></td><td>)</td>
6004           <td></td>
6005         </tr>
6006       </table>
6007   </td>
6008   <td class="mlabels-right">
6009 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
6010   </tr>
6011 </table>
6012 </div><div class="memdoc">
6013
6014 <p>access specified element via JSON Pointer </p>
6015 <p>Uses a JSON pointer to retrieve a reference to the respective JSON value. No bound checking is performed. Similar to <a class="el" href="classnlohmann_1_1basic__json.html#a693ccc537e47d7c90c86d4ca2fe1db05">operator[]</a>(const typename object_t::key_type&amp;), <code>null</code> values are created in arrays and objects if necessary.</p>
6016 <p>In particular:</p><ul>
6017 <li>If the JSON pointer points to an object key that does not exist, it is created an filled with a <code>null</code> value before a reference to it is returned.</li>
6018 <li>If the JSON pointer points to an array index that does not exist, it is created an filled with a <code>null</code> value before a reference to it is returned. All indices between the current maximum and the given index are also filled with <code>null</code>.</li>
6019 <li>The special value <code>-</code> is treated as a synonym for the index past the end.</li>
6020 </ul>
6021 <dl class="params"><dt>Parameters</dt><dd>
6022   <table class="params">
6023     <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>a JSON pointer</td></tr>
6024   </table>
6025   </dd>
6026 </dl>
6027 <dl class="section return"><dt>Returns</dt><dd>reference to the element pointed to by <em>ptr</em> </dd></dl>
6028 <p>Constant.</p>
6029 <dl class="exception"><dt>Exceptions</dt><dd>
6030   <table class="exception">
6031     <tr><td class="paramname">std::out_of_range</td><td>if the JSON pointer can not be resolved </td></tr>
6032     <tr><td class="paramname">std::domain_error</td><td>if an array index begins with '0' </td></tr>
6033     <tr><td class="paramname">std::invalid_argument</td><td>if an array index was not a number</td></tr>
6034   </table>
6035   </dd>
6036 </dl>
6037 <p>{The behavior is shown in the example.,operatorjson_pointer}</p>
6038 <dl class="section since"><dt>Since</dt><dd>version 2.0.0 </dd></dl>
6039
6040 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l12261">12261</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
6041
6042 </div>
6043 </div>
6044 <a id="a3ac9a62afdca75d5793047e6913e5ab1"></a>
6045 <h2 class="memtitle"><span class="permalink"><a href="#a3ac9a62afdca75d5793047e6913e5ab1">&#9670;&nbsp;</a></span>operator[]() <span class="overload">[10/10]</span></h2>
6046
6047 <div class="memitem">
6048 <div class="memproto">
6049 <table class="mlabels">
6050   <tr>
6051   <td class="mlabels-left">
6052       <table class="memname">
6053         <tr>
6054           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a> operator[] </td>
6055           <td>(</td>
6056           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json_1_1json__pointer.html">json_pointer</a> &amp;&#160;</td>
6057           <td class="paramname"><em>ptr</em></td><td>)</td>
6058           <td> const</td>
6059         </tr>
6060       </table>
6061   </td>
6062   <td class="mlabels-right">
6063 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
6064   </tr>
6065 </table>
6066 </div><div class="memdoc">
6067
6068 <p>access specified element via JSON Pointer </p>
6069 <p>Uses a JSON pointer to retrieve a reference to the respective JSON value. No bound checking is performed. The function does not change the JSON value; no <code>null</code> values are created. In particular, the the special value <code>-</code> yields an exception.</p>
6070 <dl class="params"><dt>Parameters</dt><dd>
6071   <table class="params">
6072     <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>JSON pointer to the desired element</td></tr>
6073   </table>
6074   </dd>
6075 </dl>
6076 <dl class="section return"><dt>Returns</dt><dd>const reference to the element pointed to by <em>ptr</em> </dd></dl>
6077 <p>Constant.</p>
6078 <dl class="exception"><dt>Exceptions</dt><dd>
6079   <table class="exception">
6080     <tr><td class="paramname">std::out_of_range</td><td>if the JSON pointer can not be resolved </td></tr>
6081     <tr><td class="paramname">std::domain_error</td><td>if an array index begins with '0' </td></tr>
6082     <tr><td class="paramname">std::invalid_argument</td><td>if an array index was not a number</td></tr>
6083   </table>
6084   </dd>
6085 </dl>
6086 <p>{The behavior is shown in the example.,operatorjson_pointer_const}</p>
6087 <dl class="section since"><dt>Since</dt><dd>version 2.0.0 </dd></dl>
6088
6089 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l12288">12288</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
6090
6091 </div>
6092 </div>
6093 <a id="a59c8a7fee8883e55b4317dfd6cab4912"></a>
6094 <h2 class="memtitle"><span class="permalink"><a href="#a59c8a7fee8883e55b4317dfd6cab4912">&#9670;&nbsp;</a></span>parse() <span class="overload">[1/6]</span></h2>
6095
6096 <div class="memitem">
6097 <div class="memproto">
6098 <table class="mlabels">
6099   <tr>
6100   <td class="mlabels-left">
6101       <table class="memname">
6102         <tr>
6103           <td class="memname">static <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> parse </td>
6104           <td>(</td>
6105           <td class="paramtype">T(&amp;)&#160;</td>
6106           <td class="paramname"><em>array</em>[N], </td>
6107         </tr>
6108         <tr>
6109           <td class="paramkey"></td>
6110           <td></td>
6111           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json.html#a8bcd7fb59f7978ccd8942605357fc28a">parser_callback_t</a>&#160;</td>
6112           <td class="paramname"><em>cb</em> = <code>nullptr</code>&#160;</td>
6113         </tr>
6114         <tr>
6115           <td></td>
6116           <td>)</td>
6117           <td></td><td></td>
6118         </tr>
6119       </table>
6120   </td>
6121   <td class="mlabels-right">
6122 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
6123   </tr>
6124 </table>
6125 </div><div class="memdoc">
6126
6127 <p>deserialize from an array </p>
6128 <p>This function reads from an array of 1-byte values.</p>
6129 <dl class="section pre"><dt>Precondition</dt><dd>Each element of the container has a size of 1 byte. Violating this precondition yields undefined behavior. <b>This precondition is enforced with a static assertion.</b></dd></dl>
6130 <dl class="params"><dt>Parameters</dt><dd>
6131   <table class="params">
6132     <tr><td class="paramdir">[in]</td><td class="paramname">array</td><td>array to read from </td></tr>
6133     <tr><td class="paramdir">[in]</td><td class="paramname">cb</td><td>a parser callback function of type <a class="el" href="classnlohmann_1_1basic__json.html#a8bcd7fb59f7978ccd8942605357fc28a">parser_callback_t</a> which is used to control the deserialization by filtering unwanted values (optional)</td></tr>
6134   </table>
6135   </dd>
6136 </dl>
6137 <dl class="section return"><dt>Returns</dt><dd>result of the deserialization</dd></dl>
6138 <p>Linear in the length of the input. The parser is a predictive LL(1) parser. The complexity can be higher if the parser callback function <em>cb</em> has a super-linear complexity.</p>
6139 <dl class="section note"><dt>Note</dt><dd>A UTF-8 byte order mark is silently ignored.</dd></dl>
6140 <p>{The example below demonstrates the <code><a class="el" href="classnlohmann_1_1basic__json.html#a59c8a7fee8883e55b4317dfd6cab4912" title="deserialize from an array ">parse()</a></code> function reading from an array.,parse__array__parser_callback_t}</p>
6141 <dl class="section since"><dt>Since</dt><dd>version 2.0.3 </dd></dl>
6142
6143 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l06261">6261</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
6144 <div class="dynheader">
6145 Here is the caller graph for this function:</div>
6146 <div class="dyncontent">
6147 <div class="center"><img src="classnlohmann_1_1basic__json_a59c8a7fee8883e55b4317dfd6cab4912_icgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_a59c8a7fee8883e55b4317dfd6cab4912_icgraph" alt=""/></div>
6148 <map name="classnlohmann_1_1basic__json_a59c8a7fee8883e55b4317dfd6cab4912_icgraph" id="classnlohmann_1_1basic__json_a59c8a7fee8883e55b4317dfd6cab4912_icgraph">
6149 <area shape="rect" id="node2" href="classnlohmann_1_1basic__json.html#afa4d3c57e6fda1fce97025d155f5642f" title="deserialize from string literal " alt="" coords="138,5,193,32"/>
6150 <area shape="rect" id="node3" href="json_8hpp.html#a106b949d848bb8243a7cf94f11bcebf1" title="user&#45;defined string literal for JSON values " alt="" coords="108,56,223,83"/>
6151 </map>
6152 </div>
6153
6154 </div>
6155 </div>
6156 <a id="afa4d3c57e6fda1fce97025d155f5642f"></a>
6157 <h2 class="memtitle"><span class="permalink"><a href="#afa4d3c57e6fda1fce97025d155f5642f">&#9670;&nbsp;</a></span>parse() <span class="overload">[2/6]</span></h2>
6158
6159 <div class="memitem">
6160 <div class="memproto">
6161 <table class="mlabels">
6162   <tr>
6163   <td class="mlabels-left">
6164       <table class="memname">
6165         <tr>
6166           <td class="memname">static <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> parse </td>
6167           <td>(</td>
6168           <td class="paramtype">const CharT&#160;</td>
6169           <td class="paramname"><em>s</em>, </td>
6170         </tr>
6171         <tr>
6172           <td class="paramkey"></td>
6173           <td></td>
6174           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json.html#a8bcd7fb59f7978ccd8942605357fc28a">parser_callback_t</a>&#160;</td>
6175           <td class="paramname"><em>cb</em> = <code>nullptr</code>&#160;</td>
6176         </tr>
6177         <tr>
6178           <td></td>
6179           <td>)</td>
6180           <td></td><td></td>
6181         </tr>
6182       </table>
6183   </td>
6184   <td class="mlabels-right">
6185 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
6186   </tr>
6187 </table>
6188 </div><div class="memdoc">
6189
6190 <p>deserialize from string literal </p>
6191 <dl class="tparams"><dt>Template Parameters</dt><dd>
6192   <table class="tparams">
6193     <tr><td class="paramname">CharT</td><td>character/literal type with size of 1 byte </td></tr>
6194   </table>
6195   </dd>
6196 </dl>
6197 <dl class="params"><dt>Parameters</dt><dd>
6198   <table class="params">
6199     <tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>string literal to read a serialized JSON value from </td></tr>
6200     <tr><td class="paramdir">[in]</td><td class="paramname">cb</td><td>a parser callback function of type <a class="el" href="classnlohmann_1_1basic__json.html#a8bcd7fb59f7978ccd8942605357fc28a">parser_callback_t</a> which is used to control the deserialization by filtering unwanted values (optional)</td></tr>
6201   </table>
6202   </dd>
6203 </dl>
6204 <dl class="section return"><dt>Returns</dt><dd>result of the deserialization</dd></dl>
6205 <p>Linear in the length of the input. The parser is a predictive LL(1) parser. The complexity can be higher if the parser callback function <em>cb</em> has a super-linear complexity.</p>
6206 <dl class="section note"><dt>Note</dt><dd>A UTF-8 byte order mark is silently ignored. </dd>
6207 <dd>
6208 String containers like <code>std::string</code> or <a class="el" href="classnlohmann_1_1basic__json.html#aeacc0aa4079b56866238b8845928c2b7">string_t</a> can be parsed with <a class="el" href="classnlohmann_1_1basic__json.html#a39a861de8ee4cc685cd0c5b47f0ab097">parse(const ContiguousContainer&amp;, const parser_callback_t)</a></dd></dl>
6209 <p>{The example below demonstrates the <code><a class="el" href="classnlohmann_1_1basic__json.html#a59c8a7fee8883e55b4317dfd6cab4912" title="deserialize from an array ">parse()</a></code> function with and without callback function.,parse__string__parser_callback_t}</p>
6210 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#ad19ad3fa5d9a806c5018faa3cd0ed85c">parse(std::istream&amp;, const parser_callback_t)</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> a version that reads from an input stream</dd></dl>
6211 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 (originally for <a class="el" href="classnlohmann_1_1basic__json.html#aeacc0aa4079b56866238b8845928c2b7">string_t</a>) </dd></dl>
6212
6213 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l06299">6299</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
6214 <div class="dynheader">
6215 Here is the call graph for this function:</div>
6216 <div class="dyncontent">
6217 <div class="center"><img src="classnlohmann_1_1basic__json_afa4d3c57e6fda1fce97025d155f5642f_cgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_afa4d3c57e6fda1fce97025d155f5642f_cgraph" alt=""/></div>
6218 <map name="classnlohmann_1_1basic__json_afa4d3c57e6fda1fce97025d155f5642f_cgraph" id="classnlohmann_1_1basic__json_afa4d3c57e6fda1fce97025d155f5642f_cgraph">
6219 <area shape="rect" id="node2" href="classnlohmann_1_1basic__json.html#a59c8a7fee8883e55b4317dfd6cab4912" title="deserialize from an array " alt="" coords="108,5,163,32"/>
6220 </map>
6221 </div>
6222
6223 </div>
6224 </div>
6225 <a id="ad19ad3fa5d9a806c5018faa3cd0ed85c"></a>
6226 <h2 class="memtitle"><span class="permalink"><a href="#ad19ad3fa5d9a806c5018faa3cd0ed85c">&#9670;&nbsp;</a></span>parse() <span class="overload">[3/6]</span></h2>
6227
6228 <div class="memitem">
6229 <div class="memproto">
6230 <table class="mlabels">
6231   <tr>
6232   <td class="mlabels-left">
6233       <table class="memname">
6234         <tr>
6235           <td class="memname">static <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> parse </td>
6236           <td>(</td>
6237           <td class="paramtype">std::istream &amp;&#160;</td>
6238           <td class="paramname"><em>i</em>, </td>
6239         </tr>
6240         <tr>
6241           <td class="paramkey"></td>
6242           <td></td>
6243           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json.html#a8bcd7fb59f7978ccd8942605357fc28a">parser_callback_t</a>&#160;</td>
6244           <td class="paramname"><em>cb</em> = <code>nullptr</code>&#160;</td>
6245         </tr>
6246         <tr>
6247           <td></td>
6248           <td>)</td>
6249           <td></td><td></td>
6250         </tr>
6251       </table>
6252   </td>
6253   <td class="mlabels-right">
6254 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
6255   </tr>
6256 </table>
6257 </div><div class="memdoc">
6258
6259 <p>deserialize from stream </p>
6260 <dl class="params"><dt>Parameters</dt><dd>
6261   <table class="params">
6262     <tr><td class="paramdir">[in,out]</td><td class="paramname">i</td><td>stream to read a serialized JSON value from </td></tr>
6263     <tr><td class="paramdir">[in]</td><td class="paramname">cb</td><td>a parser callback function of type <a class="el" href="classnlohmann_1_1basic__json.html#a8bcd7fb59f7978ccd8942605357fc28a">parser_callback_t</a> which is used to control the deserialization by filtering unwanted values (optional)</td></tr>
6264   </table>
6265   </dd>
6266 </dl>
6267 <dl class="section return"><dt>Returns</dt><dd>result of the deserialization</dd></dl>
6268 <p>Linear in the length of the input. The parser is a predictive LL(1) parser. The complexity can be higher if the parser callback function <em>cb</em> has a super-linear complexity.</p>
6269 <dl class="section note"><dt>Note</dt><dd>A UTF-8 byte order mark is silently ignored.</dd></dl>
6270 <p>{The example below demonstrates the <code><a class="el" href="classnlohmann_1_1basic__json.html#a59c8a7fee8883e55b4317dfd6cab4912" title="deserialize from an array ">parse()</a></code> function with and without callback function.,parse__istream__parser_callback_t}</p>
6271 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#afa4d3c57e6fda1fce97025d155f5642f">parse(const CharT, const parser_callback_t)</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> a version that reads from a string</dd></dl>
6272 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
6273
6274 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l06329">6329</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
6275 <div class="dynheader">
6276 Here is the call graph for this function:</div>
6277 <div class="dyncontent">
6278 <div class="center"><img src="classnlohmann_1_1basic__json_ad19ad3fa5d9a806c5018faa3cd0ed85c_cgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_ad19ad3fa5d9a806c5018faa3cd0ed85c_cgraph" alt=""/></div>
6279 <map name="classnlohmann_1_1basic__json_ad19ad3fa5d9a806c5018faa3cd0ed85c_cgraph" id="classnlohmann_1_1basic__json_ad19ad3fa5d9a806c5018faa3cd0ed85c_cgraph">
6280 <area shape="rect" id="node2" href="classnlohmann_1_1basic__json.html#a59c8a7fee8883e55b4317dfd6cab4912" title="deserialize from an array " alt="" coords="108,5,163,32"/>
6281 </map>
6282 </div>
6283
6284 </div>
6285 </div>
6286 <a id="afd3a3ede6b43cdf69827593006813658"></a>
6287 <h2 class="memtitle"><span class="permalink"><a href="#afd3a3ede6b43cdf69827593006813658">&#9670;&nbsp;</a></span>parse() <span class="overload">[4/6]</span></h2>
6288
6289 <div class="memitem">
6290 <div class="memproto">
6291 <table class="mlabels">
6292   <tr>
6293   <td class="mlabels-left">
6294       <table class="memname">
6295         <tr>
6296           <td class="memname">static <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> parse </td>
6297           <td>(</td>
6298           <td class="paramtype">std::istream &amp;&amp;&#160;</td>
6299           <td class="paramname"><em>i</em>, </td>
6300         </tr>
6301         <tr>
6302           <td class="paramkey"></td>
6303           <td></td>
6304           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json.html#a8bcd7fb59f7978ccd8942605357fc28a">parser_callback_t</a>&#160;</td>
6305           <td class="paramname"><em>cb</em> = <code>nullptr</code>&#160;</td>
6306         </tr>
6307         <tr>
6308           <td></td>
6309           <td>)</td>
6310           <td></td><td></td>
6311         </tr>
6312       </table>
6313   </td>
6314   <td class="mlabels-right">
6315 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
6316   </tr>
6317 </table>
6318 </div><div class="memdoc">
6319
6320 <p>deserialize from stream </p>
6321 <dl class="params"><dt>Parameters</dt><dd>
6322   <table class="params">
6323     <tr><td class="paramdir">[in,out]</td><td class="paramname">i</td><td>stream to read a serialized JSON value from </td></tr>
6324     <tr><td class="paramdir">[in]</td><td class="paramname">cb</td><td>a parser callback function of type <a class="el" href="classnlohmann_1_1basic__json.html#a8bcd7fb59f7978ccd8942605357fc28a">parser_callback_t</a> which is used to control the deserialization by filtering unwanted values (optional)</td></tr>
6325   </table>
6326   </dd>
6327 </dl>
6328 <dl class="section return"><dt>Returns</dt><dd>result of the deserialization</dd></dl>
6329 <p>Linear in the length of the input. The parser is a predictive LL(1) parser. The complexity can be higher if the parser callback function <em>cb</em> has a super-linear complexity.</p>
6330 <dl class="section note"><dt>Note</dt><dd>A UTF-8 byte order mark is silently ignored.</dd></dl>
6331 <p>{The example below demonstrates the <code><a class="el" href="classnlohmann_1_1basic__json.html#a59c8a7fee8883e55b4317dfd6cab4912" title="deserialize from an array ">parse()</a></code> function with and without callback function.,parse__istream__parser_callback_t}</p>
6332 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#afa4d3c57e6fda1fce97025d155f5642f">parse(const CharT, const parser_callback_t)</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> a version that reads from a string</dd></dl>
6333 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
6334
6335 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l06338">6338</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
6336 <div class="dynheader">
6337 Here is the call graph for this function:</div>
6338 <div class="dyncontent">
6339 <div class="center"><img src="classnlohmann_1_1basic__json_afd3a3ede6b43cdf69827593006813658_cgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_afd3a3ede6b43cdf69827593006813658_cgraph" alt=""/></div>
6340 <map name="classnlohmann_1_1basic__json_afd3a3ede6b43cdf69827593006813658_cgraph" id="classnlohmann_1_1basic__json_afd3a3ede6b43cdf69827593006813658_cgraph">
6341 <area shape="rect" id="node2" href="classnlohmann_1_1basic__json.html#a59c8a7fee8883e55b4317dfd6cab4912" title="deserialize from an array " alt="" coords="108,5,163,32"/>
6342 </map>
6343 </div>
6344
6345 </div>
6346 </div>
6347 <a id="a09792d435ddd0409a5c002c415f00da4"></a>
6348 <h2 class="memtitle"><span class="permalink"><a href="#a09792d435ddd0409a5c002c415f00da4">&#9670;&nbsp;</a></span>parse() <span class="overload">[5/6]</span></h2>
6349
6350 <div class="memitem">
6351 <div class="memproto">
6352 <table class="mlabels">
6353   <tr>
6354   <td class="mlabels-left">
6355       <table class="memname">
6356         <tr>
6357           <td class="memname">static <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> parse </td>
6358           <td>(</td>
6359           <td class="paramtype">IteratorType&#160;</td>
6360           <td class="paramname"><em>first</em>, </td>
6361         </tr>
6362         <tr>
6363           <td class="paramkey"></td>
6364           <td></td>
6365           <td class="paramtype">IteratorType&#160;</td>
6366           <td class="paramname"><em>last</em>, </td>
6367         </tr>
6368         <tr>
6369           <td class="paramkey"></td>
6370           <td></td>
6371           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json.html#a8bcd7fb59f7978ccd8942605357fc28a">parser_callback_t</a>&#160;</td>
6372           <td class="paramname"><em>cb</em> = <code>nullptr</code>&#160;</td>
6373         </tr>
6374         <tr>
6375           <td></td>
6376           <td>)</td>
6377           <td></td><td></td>
6378         </tr>
6379       </table>
6380   </td>
6381   <td class="mlabels-right">
6382 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
6383   </tr>
6384 </table>
6385 </div><div class="memdoc">
6386
6387 <p>deserialize from an iterator range with contiguous storage </p>
6388 <p>This function reads from an iterator range of a container with contiguous storage of 1-byte values. Compatible container types include <code>std::vector</code>, <code>std::string</code>, <code>std::array</code>, <code>std::valarray</code>, and <code>std::initializer_list</code>. Furthermore, C-style arrays can be used with <code>std::begin()</code>/<code>std::end()</code>. User-defined containers can be used as long as they implement random-access iterators and a contiguous storage.</p>
6389 <dl class="section pre"><dt>Precondition</dt><dd>The iterator range is contiguous. Violating this precondition yields undefined behavior. <b>This precondition is enforced with an assertion.</b> </dd>
6390 <dd>
6391 Each element in the range has a size of 1 byte. Violating this precondition yields undefined behavior. <b>This precondition is enforced with a static assertion.</b></dd></dl>
6392 <dl class="section warning"><dt>Warning</dt><dd>There is no way to enforce all preconditions at compile-time. If the function is called with noncompliant iterators and with assertions switched off, the behavior is undefined and will most likely yield segmentation violation.</dd></dl>
6393 <dl class="tparams"><dt>Template Parameters</dt><dd>
6394   <table class="tparams">
6395     <tr><td class="paramname">IteratorType</td><td>iterator of container with contiguous storage </td></tr>
6396   </table>
6397   </dd>
6398 </dl>
6399 <dl class="params"><dt>Parameters</dt><dd>
6400   <table class="params">
6401     <tr><td class="paramdir">[in]</td><td class="paramname">first</td><td>begin of the range to parse (included) </td></tr>
6402     <tr><td class="paramdir">[in]</td><td class="paramname">last</td><td>end of the range to parse (excluded) </td></tr>
6403     <tr><td class="paramdir">[in]</td><td class="paramname">cb</td><td>a parser callback function of type <a class="el" href="classnlohmann_1_1basic__json.html#a8bcd7fb59f7978ccd8942605357fc28a">parser_callback_t</a> which is used to control the deserialization by filtering unwanted values (optional)</td></tr>
6404   </table>
6405   </dd>
6406 </dl>
6407 <dl class="section return"><dt>Returns</dt><dd>result of the deserialization</dd></dl>
6408 <p>Linear in the length of the input. The parser is a predictive LL(1) parser. The complexity can be higher if the parser callback function <em>cb</em> has a super-linear complexity.</p>
6409 <dl class="section note"><dt>Note</dt><dd>A UTF-8 byte order mark is silently ignored.</dd></dl>
6410 <p>{The example below demonstrates the <code><a class="el" href="classnlohmann_1_1basic__json.html#a59c8a7fee8883e55b4317dfd6cab4912" title="deserialize from an array ">parse()</a></code> function reading from an iterator range.,parse__iteratortype__parser_callback_t}</p>
6411 <dl class="section since"><dt>Since</dt><dd>version 2.0.3 </dd></dl>
6412
6413 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l06389">6389</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
6414
6415 </div>
6416 </div>
6417 <a id="a39a861de8ee4cc685cd0c5b47f0ab097"></a>
6418 <h2 class="memtitle"><span class="permalink"><a href="#a39a861de8ee4cc685cd0c5b47f0ab097">&#9670;&nbsp;</a></span>parse() <span class="overload">[6/6]</span></h2>
6419
6420 <div class="memitem">
6421 <div class="memproto">
6422 <table class="mlabels">
6423   <tr>
6424   <td class="mlabels-left">
6425       <table class="memname">
6426         <tr>
6427           <td class="memname">static <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> parse </td>
6428           <td>(</td>
6429           <td class="paramtype">const ContiguousContainer &amp;&#160;</td>
6430           <td class="paramname"><em>c</em>, </td>
6431         </tr>
6432         <tr>
6433           <td class="paramkey"></td>
6434           <td></td>
6435           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json.html#a8bcd7fb59f7978ccd8942605357fc28a">parser_callback_t</a>&#160;</td>
6436           <td class="paramname"><em>cb</em> = <code>nullptr</code>&#160;</td>
6437         </tr>
6438         <tr>
6439           <td></td>
6440           <td>)</td>
6441           <td></td><td></td>
6442         </tr>
6443       </table>
6444   </td>
6445   <td class="mlabels-right">
6446 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
6447   </tr>
6448 </table>
6449 </div><div class="memdoc">
6450
6451 <p>deserialize from a container with contiguous storage </p>
6452 <p>This function reads from a container with contiguous storage of 1-byte values. Compatible container types include <code>std::vector</code>, <code>std::string</code>, <code>std::array</code>, and <code>std::initializer_list</code>. User-defined containers can be used as long as they implement random-access iterators and a contiguous storage.</p>
6453 <dl class="section pre"><dt>Precondition</dt><dd>The container storage is contiguous. Violating this precondition yields undefined behavior. <b>This precondition is enforced with an assertion.</b> </dd>
6454 <dd>
6455 Each element of the container has a size of 1 byte. Violating this precondition yields undefined behavior. <b>This precondition is enforced with a static assertion.</b></dd></dl>
6456 <dl class="section warning"><dt>Warning</dt><dd>There is no way to enforce all preconditions at compile-time. If the function is called with a noncompliant container and with assertions switched off, the behavior is undefined and will most likely yield segmentation violation.</dd></dl>
6457 <dl class="tparams"><dt>Template Parameters</dt><dd>
6458   <table class="tparams">
6459     <tr><td class="paramname">ContiguousContainer</td><td>container type with contiguous storage </td></tr>
6460   </table>
6461   </dd>
6462 </dl>
6463 <dl class="params"><dt>Parameters</dt><dd>
6464   <table class="params">
6465     <tr><td class="paramdir">[in]</td><td class="paramname">c</td><td>container to read from </td></tr>
6466     <tr><td class="paramdir">[in]</td><td class="paramname">cb</td><td>a parser callback function of type <a class="el" href="classnlohmann_1_1basic__json.html#a8bcd7fb59f7978ccd8942605357fc28a">parser_callback_t</a> which is used to control the deserialization by filtering unwanted values (optional)</td></tr>
6467   </table>
6468   </dd>
6469 </dl>
6470 <dl class="section return"><dt>Returns</dt><dd>result of the deserialization</dd></dl>
6471 <p>Linear in the length of the input. The parser is a predictive LL(1) parser. The complexity can be higher if the parser callback function <em>cb</em> has a super-linear complexity.</p>
6472 <dl class="section note"><dt>Note</dt><dd>A UTF-8 byte order mark is silently ignored.</dd></dl>
6473 <p>{The example below demonstrates the <code><a class="el" href="classnlohmann_1_1basic__json.html#a59c8a7fee8883e55b4317dfd6cab4912" title="deserialize from an array ">parse()</a></code> function reading from a contiguous container.,parse__contiguouscontainer__parser_callback_t}</p>
6474 <dl class="section since"><dt>Since</dt><dd>version 2.0.3 </dd></dl>
6475
6476 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l06461">6461</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
6477
6478 </div>
6479 </div>
6480 <a id="a614dd03ce3e99e79c52bedcf55945645"></a>
6481 <h2 class="memtitle"><span class="permalink"><a href="#a614dd03ce3e99e79c52bedcf55945645">&#9670;&nbsp;</a></span>patch()</h2>
6482
6483 <div class="memitem">
6484 <div class="memproto">
6485 <table class="mlabels">
6486   <tr>
6487   <td class="mlabels-left">
6488       <table class="memname">
6489         <tr>
6490           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> patch </td>
6491           <td>(</td>
6492           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; &amp;&#160;</td>
6493           <td class="paramname"><em>json_patch</em></td><td>)</td>
6494           <td> const</td>
6495         </tr>
6496       </table>
6497   </td>
6498   <td class="mlabels-right">
6499 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
6500   </tr>
6501 </table>
6502 </div><div class="memdoc">
6503
6504 <p>applies a JSON patch </p>
6505 <p><a href="http://jsonpatch.com">JSON Patch</a> defines a JSON document structure for expressing a sequence of operations to apply to a JSON) document. With this function, a JSON Patch is applied to the current JSON value by executing all operations from the patch.</p>
6506 <dl class="params"><dt>Parameters</dt><dd>
6507   <table class="params">
6508     <tr><td class="paramdir">[in]</td><td class="paramname">json_patch</td><td>JSON patch document </td></tr>
6509   </table>
6510   </dd>
6511 </dl>
6512 <dl class="section return"><dt>Returns</dt><dd>patched document</dd></dl>
6513 <dl class="section note"><dt>Note</dt><dd>The application of a patch is atomic: Either all operations succeed and the patched document is returned or an exception is thrown. In any case, the original value is not changed: the patch is applied to a copy of the value.</dd></dl>
6514 <dl class="exception"><dt>Exceptions</dt><dd>
6515   <table class="exception">
6516     <tr><td class="paramname">std::out_of_range</td><td>if a JSON pointer inside the patch could not be resolved successfully in the current JSON value; example: <code>"key baz
6517 not found"</code> </td></tr>
6518     <tr><td class="paramname">invalid_argument</td><td>if the JSON patch is malformed (e.g., mandatory attributes are missing); example: <code>"operation add must have member path"</code></td></tr>
6519   </table>
6520   </dd>
6521 </dl>
6522 <p>Linear in the size of the JSON value and the length of the JSON patch. As usually only a fraction of the JSON value is affected by the patch, the complexity can usually be neglected.</p>
6523 <p>{The following code shows how a JSON patch is applied to a value.,patch}</p>
6524 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a2fb1e92221746ff32c5f5c8ff1e7a7f7">diff</a> &ndash; create a JSON <a class="el" href="classnlohmann_1_1basic__json.html#a614dd03ce3e99e79c52bedcf55945645" title="applies a JSON patch ">patch</a> by comparing two JSON values</dd>
6525 <dd>
6526 <a href="https://tools.ietf.org/html/rfc6902">RFC 6902 (JSON Patch)</a> </dd>
6527 <dd>
6528 <a href="https://tools.ietf.org/html/rfc6901">RFC 6901 (JSON Pointer)</a></dd></dl>
6529 <dl class="section since"><dt>Since</dt><dd>version 2.0.0 </dd></dl>
6530
6531 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l12449">12449</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
6532 <div class="dynheader">
6533 Here is the call graph for this function:</div>
6534 <div class="dyncontent">
6535 <div class="center"><img src="classnlohmann_1_1basic__json_a614dd03ce3e99e79c52bedcf55945645_cgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_a614dd03ce3e99e79c52bedcf55945645_cgraph" alt=""/></div>
6536 <map name="classnlohmann_1_1basic__json_a614dd03ce3e99e79c52bedcf55945645_cgraph" id="classnlohmann_1_1basic__json_a614dd03ce3e99e79c52bedcf55945645_cgraph">
6537 <area shape="rect" id="node2" href="classnlohmann_1_1basic__json.html#a3d5717f39bfe485057850f116fb2ed12" title="access specified array element with bounds checking " alt="" coords="131,5,170,32"/>
6538 <area shape="rect" id="node3" href="classnlohmann_1_1basic__json.html#aaf38acbc4aaada0a40549bc606f99c4f" title="add an object to an array " alt="" coords="108,56,193,83"/>
6539 <area shape="rect" id="node4" href="classnlohmann_1_1basic__json.html#a0801762a3fe36fe32dca5f16e515478d" title="returns the number of elements " alt="" coords="127,107,174,133"/>
6540 <area shape="rect" id="node5" href="classnlohmann_1_1basic__json.html#a61546bf37d98e9b0d098220009e8376d" title="inserts element " alt="" coords="123,157,178,184"/>
6541 <area shape="rect" id="node6" href="classnlohmann_1_1basic__json.html#a979556eb331ec35eb33472a90a160f99" title="returns an iterator to the first element " alt="" coords="124,208,177,235"/>
6542 <area shape="rect" id="node7" href="classnlohmann_1_1basic__json.html#ad6a2a9425ea3806424417c2e7dcdbc01" title="return whether value is an object " alt="" coords="113,259,188,285"/>
6543 <area shape="rect" id="node8" href="classnlohmann_1_1basic__json.html#a4cf2116be00a99de7addd2c32d71f99d" title="find an element in a JSON object " alt="" coords="129,309,172,336"/>
6544 <area shape="rect" id="node9" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element " alt="" coords="129,360,172,387"/>
6545 <area shape="rect" id="node10" href="classnlohmann_1_1basic__json.html#a05a2d4678b130a13b4bcbc62f4318d72" title="remove element given an iterator " alt="" coords="123,411,178,437"/>
6546 <area shape="rect" id="node11" href="classnlohmann_1_1basic__json.html#a286a1af9e72e4e41a359b6d01a7b9be9" title="return whether value is an array " alt="" coords="117,461,185,488"/>
6547 </map>
6548 </div>
6549
6550 </div>
6551 </div>
6552 <a id="aaf38acbc4aaada0a40549bc606f99c4f"></a>
6553 <h2 class="memtitle"><span class="permalink"><a href="#aaf38acbc4aaada0a40549bc606f99c4f">&#9670;&nbsp;</a></span>push_back() <span class="overload">[1/4]</span></h2>
6554
6555 <div class="memitem">
6556 <div class="memproto">
6557 <table class="mlabels">
6558   <tr>
6559   <td class="mlabels-left">
6560       <table class="memname">
6561         <tr>
6562           <td class="memname">void push_back </td>
6563           <td>(</td>
6564           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; &amp;&amp;&#160;</td>
6565           <td class="paramname"><em>val</em></td><td>)</td>
6566           <td></td>
6567         </tr>
6568       </table>
6569   </td>
6570   <td class="mlabels-right">
6571 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
6572   </tr>
6573 </table>
6574 </div><div class="memdoc">
6575
6576 <p>add an object to an array </p>
6577 <p>Appends the given element <em>val</em> to the end of the JSON value. If the function is called on a JSON null value, an empty array is created before appending <em>val</em>.</p>
6578 <dl class="params"><dt>Parameters</dt><dd>
6579   <table class="params">
6580     <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>the value to add to the JSON array</td></tr>
6581   </table>
6582   </dd>
6583 </dl>
6584 <dl class="exception"><dt>Exceptions</dt><dd>
6585   <table class="exception">
6586     <tr><td class="paramname">std::domain_error</td><td>when called on a type other than JSON array or null; example: <code>"cannot use push_back() with number"</code></td></tr>
6587   </table>
6588   </dd>
6589 </dl>
6590 <p>Amortized constant.</p>
6591 <p>{The example shows how <code><a class="el" href="classnlohmann_1_1basic__json.html#aaf38acbc4aaada0a40549bc606f99c4f" title="add an object to an array ">push_back()</a></code> and <code>+=</code> can be used to add elements to a JSON array. Note how the <code>null</code> value was silently converted to a JSON array.,push_back}</p>
6592 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
6593
6594 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05235">5235</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
6595 <div class="dynheader">
6596 Here is the caller graph for this function:</div>
6597 <div class="dyncontent">
6598 <div class="center"><img src="classnlohmann_1_1basic__json_aaf38acbc4aaada0a40549bc606f99c4f_icgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_aaf38acbc4aaada0a40549bc606f99c4f_icgraph" alt=""/></div>
6599 <map name="classnlohmann_1_1basic__json_aaf38acbc4aaada0a40549bc606f99c4f_icgraph" id="classnlohmann_1_1basic__json_aaf38acbc4aaada0a40549bc606f99c4f_icgraph">
6600 <area shape="rect" id="node2" href="classnlohmann_1_1basic__json.html#a614dd03ce3e99e79c52bedcf55945645" title="applies a JSON patch " alt="" coords="139,5,193,32"/>
6601 <area shape="rect" id="node3" href="classnlohmann_1_1basic__json.html#a2fb1e92221746ff32c5f5c8ff1e7a7f7" title="creates a diff as a JSON patch " alt="" coords="146,56,186,83"/>
6602 </map>
6603 </div>
6604
6605 </div>
6606 </div>
6607 <a id="a2e642105ec753ddb0650b7013749af7b"></a>
6608 <h2 class="memtitle"><span class="permalink"><a href="#a2e642105ec753ddb0650b7013749af7b">&#9670;&nbsp;</a></span>push_back() <span class="overload">[2/4]</span></h2>
6609
6610 <div class="memitem">
6611 <div class="memproto">
6612 <table class="mlabels">
6613   <tr>
6614   <td class="mlabels-left">
6615       <table class="memname">
6616         <tr>
6617           <td class="memname">void push_back </td>
6618           <td>(</td>
6619           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; &amp;&#160;</td>
6620           <td class="paramname"><em>val</em></td><td>)</td>
6621           <td></td>
6622         </tr>
6623       </table>
6624   </td>
6625   <td class="mlabels-right">
6626 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
6627   </tr>
6628 </table>
6629 </div><div class="memdoc">
6630
6631 <p>add an object to an array </p>
6632 <p>add an object to an array Appends the given element <em>val</em> to the end of the JSON value. If the function is called on a JSON null value, an empty array is created before appending <em>val</em>.</p>
6633 <dl class="params"><dt>Parameters</dt><dd>
6634   <table class="params">
6635     <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>the value to add to the JSON array</td></tr>
6636   </table>
6637   </dd>
6638 </dl>
6639 <dl class="exception"><dt>Exceptions</dt><dd>
6640   <table class="exception">
6641     <tr><td class="paramname">std::domain_error</td><td>when called on a type other than JSON array or null; example: <code>"cannot use push_back() with number"</code></td></tr>
6642   </table>
6643   </dd>
6644 </dl>
6645 <p>Amortized constant.</p>
6646 <p>{The example shows how <code><a class="el" href="classnlohmann_1_1basic__json.html#aaf38acbc4aaada0a40549bc606f99c4f" title="add an object to an array ">push_back()</a></code> and <code>+=</code> can be used to add elements to a JSON array. Note how the <code>null</code> value was silently converted to a JSON array.,push_back}</p>
6647 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
6648
6649 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05271">5271</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
6650
6651 </div>
6652 </div>
6653 <a id="af39e5dcd421f92346c586d57ad7d6609"></a>
6654 <h2 class="memtitle"><span class="permalink"><a href="#af39e5dcd421f92346c586d57ad7d6609">&#9670;&nbsp;</a></span>push_back() <span class="overload">[3/4]</span></h2>
6655
6656 <div class="memitem">
6657 <div class="memproto">
6658 <table class="mlabels">
6659   <tr>
6660   <td class="mlabels-left">
6661       <table class="memname">
6662         <tr>
6663           <td class="memname">void push_back </td>
6664           <td>(</td>
6665           <td class="paramtype">const typename object_t::value_type &amp;&#160;</td>
6666           <td class="paramname"><em>val</em></td><td>)</td>
6667           <td></td>
6668         </tr>
6669       </table>
6670   </td>
6671   <td class="mlabels-right">
6672 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
6673   </tr>
6674 </table>
6675 </div><div class="memdoc">
6676
6677 <p>add an object to an object </p>
6678 <p>Inserts the given element <em>val</em> to the JSON object. If the function is called on a JSON null value, an empty object is created before inserting <em>val</em>.</p>
6679 <dl class="params"><dt>Parameters</dt><dd>
6680   <table class="params">
6681     <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>the value to add to the JSON object</td></tr>
6682   </table>
6683   </dd>
6684 </dl>
6685 <dl class="exception"><dt>Exceptions</dt><dd>
6686   <table class="exception">
6687     <tr><td class="paramname">std::domain_error</td><td>when called on a type other than JSON object or null; example: <code>"cannot use push_back() with number"</code></td></tr>
6688   </table>
6689   </dd>
6690 </dl>
6691 <p>Logarithmic in the size of the container, O(log(<code><a class="el" href="classnlohmann_1_1basic__json.html#a0801762a3fe36fe32dca5f16e515478d" title="returns the number of elements ">size()</a></code>)).</p>
6692 <p>{The example shows how <code><a class="el" href="classnlohmann_1_1basic__json.html#aaf38acbc4aaada0a40549bc606f99c4f" title="add an object to an array ">push_back()</a></code> and <code>+=</code> can be used to add elements to a JSON object. Note how the <code>null</code> value was silently converted to a JSON object.,push_back__object_t__value}</p>
6693 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
6694
6695 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05321">5321</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
6696
6697 </div>
6698 </div>
6699 <a id="a77ab6e7e6b70135f022172a021a15550"></a>
6700 <h2 class="memtitle"><span class="permalink"><a href="#a77ab6e7e6b70135f022172a021a15550">&#9670;&nbsp;</a></span>push_back() <span class="overload">[4/4]</span></h2>
6701
6702 <div class="memitem">
6703 <div class="memproto">
6704 <table class="mlabels">
6705   <tr>
6706   <td class="mlabels-left">
6707       <table class="memname">
6708         <tr>
6709           <td class="memname">void push_back </td>
6710           <td>(</td>
6711           <td class="paramtype">std::initializer_list&lt; <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; &gt;&#160;</td>
6712           <td class="paramname"><em>init</em></td><td>)</td>
6713           <td></td>
6714         </tr>
6715       </table>
6716   </td>
6717   <td class="mlabels-right">
6718 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
6719   </tr>
6720 </table>
6721 </div><div class="memdoc">
6722
6723 <p>add an object to an object </p>
6724 <p>This function allows to use <code>push_back</code> with an initializer list. In case</p>
6725 <ol type="1">
6726 <li>the current value is an object,</li>
6727 <li>the initializer list <em>init</em> contains only two elements, and</li>
6728 <li>the first element of <em>init</em> is a string,</li>
6729 </ol>
6730 <p><em>init</em> is converted into an object element and added using <a class="el" href="classnlohmann_1_1basic__json.html#af39e5dcd421f92346c586d57ad7d6609">push_back(const typename object_t::value_type&amp;)</a>. Otherwise, <em>init</em> is converted to a JSON value and added using <a class="el" href="classnlohmann_1_1basic__json.html#aaf38acbc4aaada0a40549bc606f99c4f">push_back(basic_json&amp;&amp;)</a>.</p>
6731 <dl class="params"><dt>Parameters</dt><dd>
6732   <table class="params">
6733     <tr><td class="paramname">init</td><td>an initializer list</td></tr>
6734   </table>
6735   </dd>
6736 </dl>
6737 <p>Linear in the size of the initializer list <em>init</em>.</p>
6738 <dl class="section note"><dt>Note</dt><dd>This function is required to resolve an ambiguous overload error, because pairs like <code>{"key", "value"}</code> can be both interpreted as <code>object_t::value_type</code> or <code>std::initializer_list&lt;<a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a>&gt;</code>, see <a href="https://github.com/nlohmann/json/issues/235">https://github.com/nlohmann/json/issues/235</a> for more information.</dd></dl>
6739 <p>{The example shows how initializer lists are treated as objects when possible.,push_back__initializer_list} </p>
6740
6741 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05376">5376</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
6742
6743 </div>
6744 </div>
6745 <a id="ac7cd69c57ab7c76ac6eb26c474a43053"></a>
6746 <h2 class="memtitle"><span class="permalink"><a href="#ac7cd69c57ab7c76ac6eb26c474a43053">&#9670;&nbsp;</a></span>rbegin() <span class="overload">[1/2]</span></h2>
6747
6748 <div class="memitem">
6749 <div class="memproto">
6750 <table class="mlabels">
6751   <tr>
6752   <td class="mlabels-left">
6753       <table class="memname">
6754         <tr>
6755           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a44b6b974744b30149559c9dce91b92ec">reverse_iterator</a> rbegin </td>
6756           <td>(</td>
6757           <td class="paramname"></td><td>)</td>
6758           <td></td>
6759         </tr>
6760       </table>
6761   </td>
6762   <td class="mlabels-right">
6763 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
6764   </tr>
6765 </table>
6766 </div><div class="memdoc">
6767
6768 <p>returns an iterator to the reverse-beginning </p>
6769 <p>Returns an iterator to the reverse-beginning; that is, the last element.</p>
6770 <div class="image">
6771 <object type="image/svg+xml" data="range-rbegin-rend.svg">range-rbegin-rend.svg</object>
6772 <div class="caption">
6773 Illustration from cppreference.com</div></div>
6774 <p>  Constant.</p>
6775 <p>This function helps <code><a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a></code> satisfying the <a href="http://en.cppreference.com/w/cpp/concept/ReversibleContainer">ReversibleContainer</a> requirements:</p><ul>
6776 <li>The complexity is constant.</li>
6777 <li>Has the semantics of <code>reverse_iterator(end())</code>.</li>
6778 </ul>
6779 <p>{The following code shows an example for <code><a class="el" href="classnlohmann_1_1basic__json.html#ac7cd69c57ab7c76ac6eb26c474a43053" title="returns an iterator to the reverse-beginning ">rbegin()</a></code>.,rbegin}</p>
6780 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#abd227f43fec65b1bfeb96751b5eea9c4">crbegin()</a> &ndash; returns a const reverse <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the beginning </dd>
6781 <dd>
6782 <a class="el" href="classnlohmann_1_1basic__json.html#ad4e3dd675f301e0b86183699a2db7d79">rend()</a> &ndash; returns a reverse <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end</a> </dd>
6783 <dd>
6784 <a class="el" href="classnlohmann_1_1basic__json.html#acbe115c4709d004c9899ef5855f96288">crend()</a> &ndash; returns a const reverse <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end</a></dd></dl>
6785 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
6786
6787 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04788">4788</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
6788
6789 </div>
6790 </div>
6791 <a id="aff2c14a4e54378db02316aa5dacce912"></a>
6792 <h2 class="memtitle"><span class="permalink"><a href="#aff2c14a4e54378db02316aa5dacce912">&#9670;&nbsp;</a></span>rbegin() <span class="overload">[2/2]</span></h2>
6793
6794 <div class="memitem">
6795 <div class="memproto">
6796 <table class="mlabels">
6797   <tr>
6798   <td class="mlabels-left">
6799       <table class="memname">
6800         <tr>
6801           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a80e93f4899e95d7ba9f80df4c423b9d5">const_reverse_iterator</a> rbegin </td>
6802           <td>(</td>
6803           <td class="paramname"></td><td>)</td>
6804           <td> const</td>
6805         </tr>
6806       </table>
6807   </td>
6808   <td class="mlabels-right">
6809 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
6810   </tr>
6811 </table>
6812 </div><div class="memdoc">
6813
6814 <p>returns a const reverse iterator to the last element </p>
6815 <p>Returns a const iterator to the reverse-beginning; that is, the last element.</p>
6816 <div class="image">
6817 <object type="image/svg+xml" data="range-rbegin-rend.svg">range-rbegin-rend.svg</object>
6818 <div class="caption">
6819 Illustration from cppreference.com</div></div>
6820 <p>  Constant.</p>
6821 <p>This function helps <code><a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a></code> satisfying the <a href="http://en.cppreference.com/w/cpp/concept/ReversibleContainer">ReversibleContainer</a> requirements:</p><ul>
6822 <li>The complexity is constant.</li>
6823 <li>Has the semantics of <code>const_cast&lt;const <a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a>&amp;&gt;(*this).<a class="el" href="classnlohmann_1_1basic__json.html#ac7cd69c57ab7c76ac6eb26c474a43053" title="returns an iterator to the reverse-beginning ">rbegin()</a></code>.</li>
6824 </ul>
6825 <p>{The following code shows an example for <code><a class="el" href="classnlohmann_1_1basic__json.html#abd227f43fec65b1bfeb96751b5eea9c4" title="returns a const reverse iterator to the last element ">crbegin()</a></code>.,crbegin}</p>
6826 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#ac7cd69c57ab7c76ac6eb26c474a43053">rbegin()</a> &ndash; returns a reverse <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the beginning </dd>
6827 <dd>
6828 <a class="el" href="classnlohmann_1_1basic__json.html#ad4e3dd675f301e0b86183699a2db7d79">rend()</a> &ndash; returns a reverse <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end</a> </dd>
6829 <dd>
6830 <a class="el" href="classnlohmann_1_1basic__json.html#acbe115c4709d004c9899ef5855f96288">crend()</a> &ndash; returns a const reverse <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end</a></dd></dl>
6831 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
6832
6833 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04796">4796</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
6834
6835 </div>
6836 </div>
6837 <a id="ad4e3dd675f301e0b86183699a2db7d79"></a>
6838 <h2 class="memtitle"><span class="permalink"><a href="#ad4e3dd675f301e0b86183699a2db7d79">&#9670;&nbsp;</a></span>rend() <span class="overload">[1/2]</span></h2>
6839
6840 <div class="memitem">
6841 <div class="memproto">
6842 <table class="mlabels">
6843   <tr>
6844   <td class="mlabels-left">
6845       <table class="memname">
6846         <tr>
6847           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a44b6b974744b30149559c9dce91b92ec">reverse_iterator</a> rend </td>
6848           <td>(</td>
6849           <td class="paramname"></td><td>)</td>
6850           <td></td>
6851         </tr>
6852       </table>
6853   </td>
6854   <td class="mlabels-right">
6855 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
6856   </tr>
6857 </table>
6858 </div><div class="memdoc">
6859
6860 <p>returns an iterator to the reverse-end </p>
6861 <p>Returns an iterator to the reverse-end; that is, one before the first element.</p>
6862 <div class="image">
6863 <object type="image/svg+xml" data="range-rbegin-rend.svg">range-rbegin-rend.svg</object>
6864 <div class="caption">
6865 Illustration from cppreference.com</div></div>
6866 <p>  Constant.</p>
6867 <p>This function helps <code><a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a></code> satisfying the <a href="http://en.cppreference.com/w/cpp/concept/ReversibleContainer">ReversibleContainer</a> requirements:</p><ul>
6868 <li>The complexity is constant.</li>
6869 <li>Has the semantics of <code>reverse_iterator(begin())</code>.</li>
6870 </ul>
6871 <p>{The following code shows an example for <code><a class="el" href="classnlohmann_1_1basic__json.html#ad4e3dd675f301e0b86183699a2db7d79" title="returns an iterator to the reverse-end ">rend()</a></code>.,rend}</p>
6872 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#acbe115c4709d004c9899ef5855f96288">crend()</a> &ndash; returns a const reverse <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end</a> </dd>
6873 <dd>
6874 <a class="el" href="classnlohmann_1_1basic__json.html#ac7cd69c57ab7c76ac6eb26c474a43053">rbegin()</a> &ndash; returns a reverse <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the beginning </dd>
6875 <dd>
6876 <a class="el" href="classnlohmann_1_1basic__json.html#abd227f43fec65b1bfeb96751b5eea9c4">crbegin()</a> &ndash; returns a const reverse <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the beginning</dd></dl>
6877 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
6878
6879 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04825">4825</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
6880
6881 </div>
6882 </div>
6883 <a id="ac5bfd48090cb59d7dd635954831415df"></a>
6884 <h2 class="memtitle"><span class="permalink"><a href="#ac5bfd48090cb59d7dd635954831415df">&#9670;&nbsp;</a></span>rend() <span class="overload">[2/2]</span></h2>
6885
6886 <div class="memitem">
6887 <div class="memproto">
6888 <table class="mlabels">
6889   <tr>
6890   <td class="mlabels-left">
6891       <table class="memname">
6892         <tr>
6893           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#a80e93f4899e95d7ba9f80df4c423b9d5">const_reverse_iterator</a> rend </td>
6894           <td>(</td>
6895           <td class="paramname"></td><td>)</td>
6896           <td> const</td>
6897         </tr>
6898       </table>
6899   </td>
6900   <td class="mlabels-right">
6901 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
6902   </tr>
6903 </table>
6904 </div><div class="memdoc">
6905
6906 <p>returns a const reverse iterator to one before the first </p>
6907 <p>Returns a const reverse iterator to the reverse-end; that is, one before the first element.</p>
6908 <div class="image">
6909 <object type="image/svg+xml" data="range-rbegin-rend.svg">range-rbegin-rend.svg</object>
6910 <div class="caption">
6911 Illustration from cppreference.com</div></div>
6912 <p>  Constant.</p>
6913 <p>This function helps <code><a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a></code> satisfying the <a href="http://en.cppreference.com/w/cpp/concept/ReversibleContainer">ReversibleContainer</a> requirements:</p><ul>
6914 <li>The complexity is constant.</li>
6915 <li>Has the semantics of <code>const_cast&lt;const <a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a>&amp;&gt;(*this).<a class="el" href="classnlohmann_1_1basic__json.html#ad4e3dd675f301e0b86183699a2db7d79" title="returns an iterator to the reverse-end ">rend()</a></code>.</li>
6916 </ul>
6917 <p>{The following code shows an example for <code><a class="el" href="classnlohmann_1_1basic__json.html#acbe115c4709d004c9899ef5855f96288" title="returns a const reverse iterator to one before the first ">crend()</a></code>.,crend}</p>
6918 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#ad4e3dd675f301e0b86183699a2db7d79">rend()</a> &ndash; returns a reverse <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end</a> </dd>
6919 <dd>
6920 <a class="el" href="classnlohmann_1_1basic__json.html#ac7cd69c57ab7c76ac6eb26c474a43053">rbegin()</a> &ndash; returns a reverse <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the beginning </dd>
6921 <dd>
6922 <a class="el" href="classnlohmann_1_1basic__json.html#abd227f43fec65b1bfeb96751b5eea9c4">crbegin()</a> &ndash; returns a const reverse <a class="el" href="classnlohmann_1_1basic__json.html#a241034c44708fd20925e6ae18efcfb56" title="an iterator for a basic_json container ">iterator</a> to the beginning</dd></dl>
6923 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
6924
6925 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04833">4833</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
6926
6927 </div>
6928 </div>
6929 <a id="a0801762a3fe36fe32dca5f16e515478d"></a>
6930 <h2 class="memtitle"><span class="permalink"><a href="#a0801762a3fe36fe32dca5f16e515478d">&#9670;&nbsp;</a></span>size()</h2>
6931
6932 <div class="memitem">
6933 <div class="memproto">
6934 <table class="mlabels">
6935   <tr>
6936   <td class="mlabels-left">
6937       <table class="memname">
6938         <tr>
6939           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#af38ce1af42d538f410180c265518d4f0">size_type</a> size </td>
6940           <td>(</td>
6941           <td class="paramname"></td><td>)</td>
6942           <td> const</td>
6943         </tr>
6944       </table>
6945   </td>
6946   <td class="mlabels-right">
6947 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
6948   </tr>
6949 </table>
6950 </div><div class="memdoc">
6951
6952 <p>returns the number of elements </p>
6953 <p>Returns the number of elements in a JSON value.</p>
6954 <dl class="section return"><dt>Returns</dt><dd>The return value depends on the different types and is defined as follows: <table class="doxtable">
6955 <tr>
6956 <th>Value type </th><th>return value  </th></tr>
6957 <tr>
6958 <td>null </td><td><code>0</code> </td></tr>
6959 <tr>
6960 <td>boolean </td><td><code>1</code> </td></tr>
6961 <tr>
6962 <td>string </td><td><code>1</code> </td></tr>
6963 <tr>
6964 <td>number </td><td><code>1</code> </td></tr>
6965 <tr>
6966 <td>object </td><td>result of function object_t::size() </td></tr>
6967 <tr>
6968 <td>array </td><td>result of function array_t::size() </td></tr>
6969 </table>
6970 </dd></dl>
6971 <dl class="section note"><dt>Note</dt><dd>This function does not return the length of a string stored as JSON value - it returns the number of elements in the JSON value which is 1 in the case of a string.</dd></dl>
6972 <p>Constant, as long as <a class="el" href="classnlohmann_1_1basic__json.html#a289ffe7b795d293d233d03cfc60bcd15">array_t</a> and <a class="el" href="classnlohmann_1_1basic__json.html#a143db8a40359a56372e21a8feea66454">object_t</a> satisfy the Container concept; that is, their <a class="el" href="classnlohmann_1_1basic__json.html#a0801762a3fe36fe32dca5f16e515478d" title="returns the number of elements ">size()</a> functions have constant complexity.</p>
6973 <p>This function helps <code><a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a></code> satisfying the <a href="http://en.cppreference.com/w/cpp/concept/Container">Container</a> requirements:</p><ul>
6974 <li>The complexity is constant.</li>
6975 <li>Has the semantics of <code>std::distance(<a class="el" href="classnlohmann_1_1basic__json.html#a979556eb331ec35eb33472a90a160f99" title="returns an iterator to the first element ">begin()</a>, <a class="el" href="classnlohmann_1_1basic__json.html#afc5380afa64b233d0df01a147616974b" title="returns an iterator to one past the last element ">end()</a>)</code>.</li>
6976 </ul>
6977 <p>{The following code calls <code><a class="el" href="classnlohmann_1_1basic__json.html#a0801762a3fe36fe32dca5f16e515478d" title="returns the number of elements ">size()</a></code> on the different value types.,size}</p>
6978 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a3f6fc5de06a318920d84f3c3742db07f">empty()</a> &ndash; checks whether the container is <a class="el" href="classnlohmann_1_1basic__json.html#a3f6fc5de06a318920d84f3c3742db07f" title="checks whether the container is empty ">empty</a> </dd>
6979 <dd>
6980 <a class="el" href="classnlohmann_1_1basic__json.html#ac2a85e463df4e95c1bf051cfb8237805">max_size()</a> &ndash; returns the maximal number of elements</dd></dl>
6981 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
6982
6983 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05040">5040</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
6984 <div class="dynheader">
6985 Here is the caller graph for this function:</div>
6986 <div class="dyncontent">
6987 <div class="center"><img src="classnlohmann_1_1basic__json_a0801762a3fe36fe32dca5f16e515478d_icgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_a0801762a3fe36fe32dca5f16e515478d_icgraph" alt=""/></div>
6988 <map name="classnlohmann_1_1basic__json_a0801762a3fe36fe32dca5f16e515478d_icgraph" id="classnlohmann_1_1basic__json_a0801762a3fe36fe32dca5f16e515478d_icgraph">
6989 <area shape="rect" id="node2" href="class_kernel_tests.html#a6157ff083be863bba0a7804cd1788d96" title="KernelTests::get_number\l_of_cases" alt="" coords="100,45,268,86"/>
6990 <area shape="rect" id="node4" href="class_kernel_tests.html#abf28e5ea54fab2b0685972fe6e75560a" title="Defines section in the conf.json that is used to load parameters from. " alt="" coords="111,157,257,184"/>
6991 <area shape="rect" id="node11" href="classnlohmann_1_1basic__json.html#a614dd03ce3e99e79c52bedcf55945645" title="applies a JSON patch " alt="" coords="157,208,211,235"/>
6992 <area shape="rect" id="node12" href="classnlohmann_1_1basic__json.html#a2fb1e92221746ff32c5f5c8ff1e7a7f7" title="creates a diff as a JSON patch " alt="" coords="164,259,204,285"/>
6993 <area shape="rect" id="node3" href="c__plane__tests_8cc.html#ab0ad0e23f1b51f15bd9594a24a2c438f" title="TEST_P" alt="" coords="357,5,429,32"/>
6994 <area shape="rect" id="node5" href="class_c__plane.html#a3a1707f6479611fdc609a3eb8a0cef1b" title="C_plane::SetUp" alt="" coords="335,56,450,83"/>
6995 <area shape="rect" id="node6" href="class_test_chain.html#a3a1707f6479611fdc609a3eb8a0cef1b" title="TestChain::SetUp" alt="" coords="329,107,456,133"/>
6996 <area shape="rect" id="node7" href="class_prach_check.html#a3a1707f6479611fdc609a3eb8a0cef1b" title="PrachCheck::SetUp" alt="" coords="323,157,462,184"/>
6997 <area shape="rect" id="node8" href="class_prach_perf.html#a3a1707f6479611fdc609a3eb8a0cef1b" title="PrachPerf::SetUp" alt="" coords="330,208,455,235"/>
6998 <area shape="rect" id="node9" href="class_u__plane_check.html#a3a1707f6479611fdc609a3eb8a0cef1b" title="U_planeCheck::SetUp" alt="" coords="316,259,469,285"/>
6999 <area shape="rect" id="node10" href="class_u__plane_perf.html#a3a1707f6479611fdc609a3eb8a0cef1b" title="U_planePerf::SetUp" alt="" coords="323,309,462,336"/>
7000 </map>
7001 </div>
7002
7003 </div>
7004 </div>
7005 <a id="a0f6968dcb6461353787d510aaa671b61"></a>
7006 <h2 class="memtitle"><span class="permalink"><a href="#a0f6968dcb6461353787d510aaa671b61">&#9670;&nbsp;</a></span>swap() <span class="overload">[1/4]</span></h2>
7007
7008 <div class="memitem">
7009 <div class="memproto">
7010 <table class="mlabels">
7011   <tr>
7012   <td class="mlabels-left">
7013       <table class="memname">
7014         <tr>
7015           <td class="memname">void swap </td>
7016           <td>(</td>
7017           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de">reference</a>&#160;</td>
7018           <td class="paramname"><em>other</em></td><td>)</td>
7019           <td></td>
7020         </tr>
7021       </table>
7022   </td>
7023   <td class="mlabels-right">
7024 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
7025   </tr>
7026 </table>
7027 </div><div class="memdoc">
7028
7029 <p>exchanges the values </p>
7030 <p>Exchanges the contents of the JSON value with those of <em>other</em>. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated.</p>
7031 <dl class="params"><dt>Parameters</dt><dd>
7032   <table class="params">
7033     <tr><td class="paramdir">[in,out]</td><td class="paramname">other</td><td>JSON value to exchange the contents with</td></tr>
7034   </table>
7035   </dd>
7036 </dl>
7037 <p>Constant.</p>
7038 <p>{The example below shows how JSON values can be swapped with <code><a class="el" href="classnlohmann_1_1basic__json.html#a0f6968dcb6461353787d510aaa671b61" title="exchanges the values ">swap()</a></code>.,swap__reference}</p>
7039 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
7040
7041 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05715">5715</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
7042 <div class="dynheader">
7043 Here is the call graph for this function:</div>
7044 <div class="dyncontent">
7045 <div class="center"><img src="classnlohmann_1_1basic__json_a0f6968dcb6461353787d510aaa671b61_cgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_a0f6968dcb6461353787d510aaa671b61_cgraph" alt=""/></div>
7046 <map name="classnlohmann_1_1basic__json_a0f6968dcb6461353787d510aaa671b61_cgraph" id="classnlohmann_1_1basic__json_a0f6968dcb6461353787d510aaa671b61_cgraph">
7047 <area shape="rect" id="node2" href="namespacestd.html#a907191b7578e209391ce938e3b2afdf7" title="exchanges the values of two JSON objects " alt="" coords="107,5,185,32"/>
7048 </map>
7049 </div>
7050
7051 </div>
7052 </div>
7053 <a id="aa9099a065ca08f872f864685ee2e8227"></a>
7054 <h2 class="memtitle"><span class="permalink"><a href="#aa9099a065ca08f872f864685ee2e8227">&#9670;&nbsp;</a></span>swap() <span class="overload">[2/4]</span></h2>
7055
7056 <div class="memitem">
7057 <div class="memproto">
7058 <table class="mlabels">
7059   <tr>
7060   <td class="mlabels-left">
7061       <table class="memname">
7062         <tr>
7063           <td class="memname">void swap </td>
7064           <td>(</td>
7065           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#a289ffe7b795d293d233d03cfc60bcd15">array_t</a> &amp;&#160;</td>
7066           <td class="paramname"><em>other</em></td><td>)</td>
7067           <td></td>
7068         </tr>
7069       </table>
7070   </td>
7071   <td class="mlabels-right">
7072 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
7073   </tr>
7074 </table>
7075 </div><div class="memdoc">
7076
7077 <p>exchanges the values </p>
7078 <p>Exchanges the contents of a JSON array with those of <em>other</em>. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated.</p>
7079 <dl class="params"><dt>Parameters</dt><dd>
7080   <table class="params">
7081     <tr><td class="paramdir">[in,out]</td><td class="paramname">other</td><td>array to exchange the contents with</td></tr>
7082   </table>
7083   </dd>
7084 </dl>
7085 <dl class="exception"><dt>Exceptions</dt><dd>
7086   <table class="exception">
7087     <tr><td class="paramname">std::domain_error</td><td>when JSON value is not an array; example: <code>"cannot use swap() with string"</code></td></tr>
7088   </table>
7089   </dd>
7090 </dl>
7091 <p>Constant.</p>
7092 <p>{The example below shows how arrays can be swapped with <code><a class="el" href="classnlohmann_1_1basic__json.html#a0f6968dcb6461353787d510aaa671b61" title="exchanges the values ">swap()</a></code>.,swap__array_t}</p>
7093 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
7094
7095 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05747">5747</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
7096 <div class="dynheader">
7097 Here is the call graph for this function:</div>
7098 <div class="dyncontent">
7099 <div class="center"><img src="classnlohmann_1_1basic__json_aa9099a065ca08f872f864685ee2e8227_cgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_aa9099a065ca08f872f864685ee2e8227_cgraph" alt=""/></div>
7100 <map name="classnlohmann_1_1basic__json_aa9099a065ca08f872f864685ee2e8227_cgraph" id="classnlohmann_1_1basic__json_aa9099a065ca08f872f864685ee2e8227_cgraph">
7101 <area shape="rect" id="node2" href="namespacestd.html#a907191b7578e209391ce938e3b2afdf7" title="exchanges the values of two JSON objects " alt="" coords="107,5,185,32"/>
7102 </map>
7103 </div>
7104
7105 </div>
7106 </div>
7107 <a id="a4427f06d587d010c62fb08021ad13612"></a>
7108 <h2 class="memtitle"><span class="permalink"><a href="#a4427f06d587d010c62fb08021ad13612">&#9670;&nbsp;</a></span>swap() <span class="overload">[3/4]</span></h2>
7109
7110 <div class="memitem">
7111 <div class="memproto">
7112 <table class="mlabels">
7113   <tr>
7114   <td class="mlabels-left">
7115       <table class="memname">
7116         <tr>
7117           <td class="memname">void swap </td>
7118           <td>(</td>
7119           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#a143db8a40359a56372e21a8feea66454">object_t</a> &amp;&#160;</td>
7120           <td class="paramname"><em>other</em></td><td>)</td>
7121           <td></td>
7122         </tr>
7123       </table>
7124   </td>
7125   <td class="mlabels-right">
7126 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
7127   </tr>
7128 </table>
7129 </div><div class="memdoc">
7130
7131 <p>exchanges the values </p>
7132 <p>Exchanges the contents of a JSON object with those of <em>other</em>. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated.</p>
7133 <dl class="params"><dt>Parameters</dt><dd>
7134   <table class="params">
7135     <tr><td class="paramdir">[in,out]</td><td class="paramname">other</td><td>object to exchange the contents with</td></tr>
7136   </table>
7137   </dd>
7138 </dl>
7139 <dl class="exception"><dt>Exceptions</dt><dd>
7140   <table class="exception">
7141     <tr><td class="paramname">std::domain_error</td><td>when JSON value is not an object; example: <code>"cannot use swap() with string"</code></td></tr>
7142   </table>
7143   </dd>
7144 </dl>
7145 <p>Constant.</p>
7146 <p>{The example below shows how objects can be swapped with <code><a class="el" href="classnlohmann_1_1basic__json.html#a0f6968dcb6461353787d510aaa671b61" title="exchanges the values ">swap()</a></code>.,swap__object_t}</p>
7147 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
7148
7149 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05780">5780</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
7150 <div class="dynheader">
7151 Here is the call graph for this function:</div>
7152 <div class="dyncontent">
7153 <div class="center"><img src="classnlohmann_1_1basic__json_a4427f06d587d010c62fb08021ad13612_cgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_a4427f06d587d010c62fb08021ad13612_cgraph" alt=""/></div>
7154 <map name="classnlohmann_1_1basic__json_a4427f06d587d010c62fb08021ad13612_cgraph" id="classnlohmann_1_1basic__json_a4427f06d587d010c62fb08021ad13612_cgraph">
7155 <area shape="rect" id="node2" href="namespacestd.html#a907191b7578e209391ce938e3b2afdf7" title="exchanges the values of two JSON objects " alt="" coords="107,5,185,32"/>
7156 </map>
7157 </div>
7158
7159 </div>
7160 </div>
7161 <a id="afa2f6591635aca46d323a7e41d71c4b1"></a>
7162 <h2 class="memtitle"><span class="permalink"><a href="#afa2f6591635aca46d323a7e41d71c4b1">&#9670;&nbsp;</a></span>swap() <span class="overload">[4/4]</span></h2>
7163
7164 <div class="memitem">
7165 <div class="memproto">
7166 <table class="mlabels">
7167   <tr>
7168   <td class="mlabels-left">
7169       <table class="memname">
7170         <tr>
7171           <td class="memname">void swap </td>
7172           <td>(</td>
7173           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#aeacc0aa4079b56866238b8845928c2b7">string_t</a> &amp;&#160;</td>
7174           <td class="paramname"><em>other</em></td><td>)</td>
7175           <td></td>
7176         </tr>
7177       </table>
7178   </td>
7179   <td class="mlabels-right">
7180 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
7181   </tr>
7182 </table>
7183 </div><div class="memdoc">
7184
7185 <p>exchanges the values </p>
7186 <p>Exchanges the contents of a JSON string with those of <em>other</em>. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated.</p>
7187 <dl class="params"><dt>Parameters</dt><dd>
7188   <table class="params">
7189     <tr><td class="paramdir">[in,out]</td><td class="paramname">other</td><td>string to exchange the contents with</td></tr>
7190   </table>
7191   </dd>
7192 </dl>
7193 <dl class="exception"><dt>Exceptions</dt><dd>
7194   <table class="exception">
7195     <tr><td class="paramname">std::domain_error</td><td>when JSON value is not a string; example: <code>"cannot
7196 use swap() with boolean"</code></td></tr>
7197   </table>
7198   </dd>
7199 </dl>
7200 <p>Constant.</p>
7201 <p>{The example below shows how strings can be swapped with <code><a class="el" href="classnlohmann_1_1basic__json.html#a0f6968dcb6461353787d510aaa671b61" title="exchanges the values ">swap()</a></code>.,swap__string_t}</p>
7202 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
7203
7204 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05813">5813</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
7205 <div class="dynheader">
7206 Here is the call graph for this function:</div>
7207 <div class="dyncontent">
7208 <div class="center"><img src="classnlohmann_1_1basic__json_afa2f6591635aca46d323a7e41d71c4b1_cgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_afa2f6591635aca46d323a7e41d71c4b1_cgraph" alt=""/></div>
7209 <map name="classnlohmann_1_1basic__json_afa2f6591635aca46d323a7e41d71c4b1_cgraph" id="classnlohmann_1_1basic__json_afa2f6591635aca46d323a7e41d71c4b1_cgraph">
7210 <area shape="rect" id="node2" href="namespacestd.html#a907191b7578e209391ce938e3b2afdf7" title="exchanges the values of two JSON objects " alt="" coords="107,5,185,32"/>
7211 </map>
7212 </div>
7213
7214 </div>
7215 </div>
7216 <a id="a7c65575e95a173952806dbf6cb43db9d"></a>
7217 <h2 class="memtitle"><span class="permalink"><a href="#a7c65575e95a173952806dbf6cb43db9d">&#9670;&nbsp;</a></span>to_cbor()</h2>
7218
7219 <div class="memitem">
7220 <div class="memproto">
7221 <table class="mlabels">
7222   <tr>
7223   <td class="mlabels-left">
7224       <table class="memname">
7225         <tr>
7226           <td class="memname">static std::vector&lt;uint8_t&gt; to_cbor </td>
7227           <td>(</td>
7228           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; &amp;&#160;</td>
7229           <td class="paramname"><em>j</em></td><td>)</td>
7230           <td></td>
7231         </tr>
7232       </table>
7233   </td>
7234   <td class="mlabels-right">
7235 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
7236   </tr>
7237 </table>
7238 </div><div class="memdoc">
7239
7240 <p>create a MessagePack serialization of a given JSON value </p>
7241 <p>Serializes a given JSON value <em>j</em> to a byte vector using the CBOR (Concise Binary Object Representation) serialization format. CBOR is a binary serialization format which aims to be more compact than JSON itself, yet more efficient to parse.</p>
7242 <dl class="params"><dt>Parameters</dt><dd>
7243   <table class="params">
7244     <tr><td class="paramdir">[in]</td><td class="paramname">j</td><td>JSON value to serialize </td></tr>
7245   </table>
7246   </dd>
7247 </dl>
7248 <dl class="section return"><dt>Returns</dt><dd>MessagePack serialization as byte vector</dd></dl>
7249 <p>Linear in the size of the JSON value <em>j</em>.</p>
7250 <p>{The example shows the serialization of a JSON value to a byte vector in CBOR format.,to_cbor}</p>
7251 <dl class="section see"><dt>See also</dt><dd><a href="http://cbor.io">http://cbor.io</a> </dd>
7252 <dd>
7253 <a class="el" href="classnlohmann_1_1basic__json.html#adc1943642176bb9091891f24bbb67416">from_cbor(const std::vector&lt;uint8_t&gt;&amp;, const size_t)</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> the analogous deserialization </dd>
7254 <dd>
7255 <a class="el" href="classnlohmann_1_1basic__json.html#aefc0b96a623a236cf9cc27f44c7e997e">to_msgpack</a>(const <a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a>&amp; <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> the related MessagePack format</dd></dl>
7256 <dl class="section since"><dt>Since</dt><dd>version 2.0.9 </dd></dl>
7257
7258 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l07981">7981</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
7259
7260 </div>
7261 </div>
7262 <a id="aefc0b96a623a236cf9cc27f44c7e997e"></a>
7263 <h2 class="memtitle"><span class="permalink"><a href="#aefc0b96a623a236cf9cc27f44c7e997e">&#9670;&nbsp;</a></span>to_msgpack()</h2>
7264
7265 <div class="memitem">
7266 <div class="memproto">
7267 <table class="mlabels">
7268   <tr>
7269   <td class="mlabels-left">
7270       <table class="memname">
7271         <tr>
7272           <td class="memname">static std::vector&lt;uint8_t&gt; to_msgpack </td>
7273           <td>(</td>
7274           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; &amp;&#160;</td>
7275           <td class="paramname"><em>j</em></td><td>)</td>
7276           <td></td>
7277         </tr>
7278       </table>
7279   </td>
7280   <td class="mlabels-right">
7281 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
7282   </tr>
7283 </table>
7284 </div><div class="memdoc">
7285
7286 <p>create a MessagePack serialization of a given JSON value </p>
7287 <p>Serializes a given JSON value <em>j</em> to a byte vector using the MessagePack serialization format. MessagePack is a binary serialization format which aims to be more compact than JSON itself, yet more efficient to parse.</p>
7288 <dl class="params"><dt>Parameters</dt><dd>
7289   <table class="params">
7290     <tr><td class="paramdir">[in]</td><td class="paramname">j</td><td>JSON value to serialize </td></tr>
7291   </table>
7292   </dd>
7293 </dl>
7294 <dl class="section return"><dt>Returns</dt><dd>MessagePack serialization as byte vector</dd></dl>
7295 <p>Linear in the size of the JSON value <em>j</em>.</p>
7296 <p>{The example shows the serialization of a JSON value to a byte vector in MessagePack format.,to_msgpack}</p>
7297 <dl class="section see"><dt>See also</dt><dd><a href="http://msgpack.org">http://msgpack.org</a> </dd>
7298 <dd>
7299 <a class="el" href="classnlohmann_1_1basic__json.html#ae9e03e9dcfd9897c8c9b03a53cf02d30">from_msgpack(const std::vector&lt;uint8_t&gt;&amp;, const size_t)</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> the analogous deserialization </dd>
7300 <dd>
7301 <a class="el" href="classnlohmann_1_1basic__json.html#a7c65575e95a173952806dbf6cb43db9d">to_cbor</a>(const <a class="el" href="classnlohmann_1_1basic__json.html" title="a class to store JSON values ">basic_json</a>&amp; <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> the related CBOR format</dd></dl>
7302 <dl class="section since"><dt>Since</dt><dd>version 2.0.9 </dd></dl>
7303
7304 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l07918">7918</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
7305
7306 </div>
7307 </div>
7308 <a id="adb8999aa40f92f1a176d8b43dc0ab25b"></a>
7309 <h2 class="memtitle"><span class="permalink"><a href="#adb8999aa40f92f1a176d8b43dc0ab25b">&#9670;&nbsp;</a></span>type()</h2>
7310
7311 <div class="memitem">
7312 <div class="memproto">
7313 <table class="mlabels">
7314   <tr>
7315   <td class="mlabels-left">
7316       <table class="memname">
7317         <tr>
7318           <td class="memname">constexpr <a class="el" href="namespacenlohmann_1_1detail.html#aedb3045c82a17d48de0f030229adbffe">value_t</a> type </td>
7319           <td>(</td>
7320           <td class="paramname"></td><td>)</td>
7321           <td> const</td>
7322         </tr>
7323       </table>
7324   </td>
7325   <td class="mlabels-right">
7326 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
7327   </tr>
7328 </table>
7329 </div><div class="memdoc">
7330
7331 <p>return the type of the JSON value (explicit) </p>
7332 <p>Return the type of the JSON value as a value from the <a class="el" href="classnlohmann_1_1basic__json.html#ace569a7a0433ec013c33c927453cb727">value_t</a> enumeration.</p>
7333 <dl class="section return"><dt>Returns</dt><dd>the type of the JSON value</dd></dl>
7334 <p>Constant.</p>
7335 <p>No-throw guarantee: this member function never throws exceptions.</p>
7336 <p>{The following code exemplifies <code><a class="el" href="classnlohmann_1_1basic__json.html#adb8999aa40f92f1a176d8b43dc0ab25b" title="return the type of the JSON value (explicit) ">type()</a></code> for all JSON types.,type}</p>
7337 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
7338
7339 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l02658">2658</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
7340 <div class="dynheader">
7341 Here is the caller graph for this function:</div>
7342 <div class="dyncontent">
7343 <div class="center"><img src="classnlohmann_1_1basic__json_adb8999aa40f92f1a176d8b43dc0ab25b_icgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_adb8999aa40f92f1a176d8b43dc0ab25b_icgraph" alt=""/></div>
7344 <map name="classnlohmann_1_1basic__json_adb8999aa40f92f1a176d8b43dc0ab25b_icgraph" id="classnlohmann_1_1basic__json_adb8999aa40f92f1a176d8b43dc0ab25b_icgraph">
7345 <area shape="rect" id="node2" href="classnlohmann_1_1basic__json.html#a2fb1e92221746ff32c5f5c8ff1e7a7f7" title="creates a diff as a JSON patch " alt="" coords="100,5,140,32"/>
7346 </map>
7347 </div>
7348
7349 </div>
7350 </div>
7351 <a id="a99cfa952f8b8deaae2505c89507ff3cd"></a>
7352 <h2 class="memtitle"><span class="permalink"><a href="#a99cfa952f8b8deaae2505c89507ff3cd">&#9670;&nbsp;</a></span>type_name()</h2>
7353
7354 <div class="memitem">
7355 <div class="memproto">
7356 <table class="mlabels">
7357   <tr>
7358   <td class="mlabels-left">
7359       <table class="memname">
7360         <tr>
7361           <td class="memname">std::string type_name </td>
7362           <td>(</td>
7363           <td class="paramname"></td><td>)</td>
7364           <td> const</td>
7365         </tr>
7366       </table>
7367   </td>
7368   <td class="mlabels-right">
7369 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
7370   </tr>
7371 </table>
7372 </div><div class="memdoc">
7373
7374 <p>return the type as string </p>
7375 <p>Returns the type name as string to be used in error messages - usually to indicate that a function was called on a wrong JSON type.</p>
7376 <dl class="section return"><dt>Returns</dt><dd>basically a string representation of a the <em>m_type</em> member</dd></dl>
7377 <p>Constant.</p>
7378 <p>{The following code exemplifies <code><a class="el" href="classnlohmann_1_1basic__json.html#a99cfa952f8b8deaae2505c89507ff3cd" title="return the type as string ">type_name()</a></code> for all JSON types.,type_name}</p>
7379 <dl class="section since"><dt>Since</dt><dd>version 1.0.0, public since 2.1.0 </dd></dl>
7380
7381 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l08042">8042</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
7382 <div class="dynheader">
7383 Here is the call graph for this function:</div>
7384 <div class="dyncontent">
7385 <div class="center"><img src="classnlohmann_1_1basic__json_a99cfa952f8b8deaae2505c89507ff3cd_cgraph.png" border="0" usemap="#classnlohmann_1_1basic__json_a99cfa952f8b8deaae2505c89507ff3cd_cgraph" alt=""/></div>
7386 <map name="classnlohmann_1_1basic__json_a99cfa952f8b8deaae2505c89507ff3cd_cgraph" id="classnlohmann_1_1basic__json_a99cfa952f8b8deaae2505c89507ff3cd_cgraph">
7387 <area shape="rect" id="node2" href="namespacenlohmann_1_1detail.html#a09169efff3bd1771fff29bd92cea19e0" title="comparison operator for JSON types " alt="" coords="140,5,320,32"/>
7388 </map>
7389 </div>
7390
7391 </div>
7392 </div>
7393 <a id="a8d2f715c23be7e55ca35697e88fe6672"></a>
7394 <h2 class="memtitle"><span class="permalink"><a href="#a8d2f715c23be7e55ca35697e88fe6672">&#9670;&nbsp;</a></span>unflatten()</h2>
7395
7396 <div class="memitem">
7397 <div class="memproto">
7398 <table class="mlabels">
7399   <tr>
7400   <td class="mlabels-left">
7401       <table class="memname">
7402         <tr>
7403           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a> unflatten </td>
7404           <td>(</td>
7405           <td class="paramname"></td><td>)</td>
7406           <td> const</td>
7407         </tr>
7408       </table>
7409   </td>
7410   <td class="mlabels-right">
7411 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
7412   </tr>
7413 </table>
7414 </div><div class="memdoc">
7415
7416 <p>unflatten a previously flattened JSON value </p>
7417 <p>The function restores the arbitrary nesting of a JSON value that has been flattened before using the <a class="el" href="classnlohmann_1_1basic__json.html#a6a19297e3c35ea1836a330681443e241">flatten()</a> function. The JSON value must meet certain constraints:</p><ol type="1">
7418 <li>The value must be an object.</li>
7419 <li>The keys must be JSON pointers (see <a href="https://tools.ietf.org/html/rfc6901">RFC 6901</a>)</li>
7420 <li>The mapped values must be primitive JSON types.</li>
7421 </ol>
7422 <dl class="section return"><dt>Returns</dt><dd>the original JSON from a flattened version</dd></dl>
7423 <dl class="section note"><dt>Note</dt><dd>Empty objects and arrays are flattened by <a class="el" href="classnlohmann_1_1basic__json.html#a6a19297e3c35ea1836a330681443e241">flatten()</a> to <code>null</code> values and can not unflattened to their original type. Apart from this example, for a JSON value <code>j</code>, the following is always true: <code>j == j.flatten().<a class="el" href="classnlohmann_1_1basic__json.html#a8d2f715c23be7e55ca35697e88fe6672" title="unflatten a previously flattened JSON value ">unflatten()</a></code>.</dd></dl>
7424 <p>Linear in the size the JSON value.</p>
7425 <p>{The following code shows how a flattened JSON object is unflattened into the original nested JSON object.,unflatten}</p>
7426 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a6a19297e3c35ea1836a330681443e241">flatten()</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> the reverse function</dd></dl>
7427 <dl class="section since"><dt>Since</dt><dd>version 2.0.0 </dd></dl>
7428
7429 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l12399">12399</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
7430
7431 </div>
7432 </div>
7433 <a id="a13f9440aff453090f573a39f4713668f"></a>
7434 <h2 class="memtitle"><span class="permalink"><a href="#a13f9440aff453090f573a39f4713668f">&#9670;&nbsp;</a></span>value() <span class="overload">[1/4]</span></h2>
7435
7436 <div class="memitem">
7437 <div class="memproto">
7438 <table class="mlabels">
7439   <tr>
7440   <td class="mlabels-left">
7441       <table class="memname">
7442         <tr>
7443           <td class="memname">ValueType value </td>
7444           <td>(</td>
7445           <td class="paramtype">const typename object_t::key_type &amp;&#160;</td>
7446           <td class="paramname"><em>key</em>, </td>
7447         </tr>
7448         <tr>
7449           <td class="paramkey"></td>
7450           <td></td>
7451           <td class="paramtype">ValueType&#160;</td>
7452           <td class="paramname"><em>default_value</em>&#160;</td>
7453         </tr>
7454         <tr>
7455           <td></td>
7456           <td>)</td>
7457           <td></td><td> const</td>
7458         </tr>
7459       </table>
7460   </td>
7461   <td class="mlabels-right">
7462 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
7463   </tr>
7464 </table>
7465 </div><div class="memdoc">
7466
7467 <p>access specified object element with default value </p>
7468 <p>Returns either a copy of an object's element at the specified key <em>key</em> or a given default value if no element with key <em>key</em> exists.</p>
7469 <p>The function is basically equivalent to executing </p><div class="fragment"><div class="line"><span class="keywordflow">try</span> {</div><div class="line">    <span class="keywordflow">return</span> <a class="code" href="classnlohmann_1_1basic__json.html#a3d5717f39bfe485057850f116fb2ed12">at</a>(key);</div><div class="line">} <span class="keywordflow">catch</span>(std::out_of_range) {</div><div class="line">    <span class="keywordflow">return</span> default_value;</div><div class="line">}</div></div><!-- fragment --><dl class="section note"><dt>Note</dt><dd>Unlike <a class="el" href="classnlohmann_1_1basic__json.html#a18c0c62edce2742d5ab24d1979c3ef00">at(const typename object_t::key_type&amp;)</a>, this function does not throw if the given key <em>key</em> was not found.</dd>
7470 <dd>
7471 Unlike <a class="el" href="classnlohmann_1_1basic__json.html#a27efc3966d94d080bb36fa3595c15df5">operator[](const typename object_t::key_type&amp; key)</a>, this function does not implicitly add an element to the position defined by <em>key</em>. This function is furthermore also applicable to const objects.</dd></dl>
7472 <dl class="params"><dt>Parameters</dt><dd>
7473   <table class="params">
7474     <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>key of the element to access </td></tr>
7475     <tr><td class="paramdir">[in]</td><td class="paramname">default_value</td><td>the value to return if <em>key</em> is not found</td></tr>
7476   </table>
7477   </dd>
7478 </dl>
7479 <dl class="tparams"><dt>Template Parameters</dt><dd>
7480   <table class="tparams">
7481     <tr><td class="paramname">ValueType</td><td>type compatible to JSON values, for instance <code>int</code> for JSON integer numbers, <code>bool</code> for JSON booleans, or <code>std::vector</code> types for JSON arrays. Note the type of the expected value at <em>key</em> and the default value <em>default_value</em> must be compatible.</td></tr>
7482   </table>
7483   </dd>
7484 </dl>
7485 <dl class="section return"><dt>Returns</dt><dd>copy of the element at key <em>key</em> or <em>default_value</em> if <em>key</em> is not found</dd></dl>
7486 <dl class="exception"><dt>Exceptions</dt><dd>
7487   <table class="exception">
7488     <tr><td class="paramname">std::domain_error</td><td>if JSON is not an object; example: <code>"cannot use
7489 value() with null"</code></td></tr>
7490   </table>
7491   </dd>
7492 </dl>
7493 <p>Logarithmic in the size of the container.</p>
7494 <p>{The example below shows how object elements can be queried with a default value.,basic_json__value}</p>
7495 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a18c0c62edce2742d5ab24d1979c3ef00">at(const typename object_t::key_type&amp;)</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> access by <a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de" title="the type of an element reference ">reference</a> with range checking </dd>
7496 <dd>
7497 <a class="el" href="classnlohmann_1_1basic__json.html#a27efc3966d94d080bb36fa3595c15df5">operator[](const typename object_t::key_type&amp;)</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> unchecked access by <a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de" title="the type of an element reference ">reference</a></dd></dl>
7498 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
7499
7500 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04044">4044</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
7501
7502 </div>
7503 </div>
7504 <a id="a47ae67764aed69ccdbf53dac54249070"></a>
7505 <h2 class="memtitle"><span class="permalink"><a href="#a47ae67764aed69ccdbf53dac54249070">&#9670;&nbsp;</a></span>value() <span class="overload">[2/4]</span></h2>
7506
7507 <div class="memitem">
7508 <div class="memproto">
7509 <table class="mlabels">
7510   <tr>
7511   <td class="mlabels-left">
7512       <table class="memname">
7513         <tr>
7514           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#aeacc0aa4079b56866238b8845928c2b7">string_t</a> value </td>
7515           <td>(</td>
7516           <td class="paramtype">const typename object_t::key_type &amp;&#160;</td>
7517           <td class="paramname"><em>key</em>, </td>
7518         </tr>
7519         <tr>
7520           <td class="paramkey"></td>
7521           <td></td>
7522           <td class="paramtype">const char *&#160;</td>
7523           <td class="paramname"><em>default_value</em>&#160;</td>
7524         </tr>
7525         <tr>
7526           <td></td>
7527           <td>)</td>
7528           <td></td><td> const</td>
7529         </tr>
7530       </table>
7531   </td>
7532   <td class="mlabels-right">
7533 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
7534   </tr>
7535 </table>
7536 </div><div class="memdoc">
7537
7538 <p>overload for a default value of type const char* </p>
7539 <p>access specified object element with default value Returns either a copy of an object's element at the specified key <em>key</em> or a given default value if no element with key <em>key</em> exists.</p>
7540 <p>The function is basically equivalent to executing </p><div class="fragment"><div class="line"><span class="keywordflow">try</span> {</div><div class="line">    <span class="keywordflow">return</span> <a class="code" href="classnlohmann_1_1basic__json.html#a3d5717f39bfe485057850f116fb2ed12">at</a>(key);</div><div class="line">} <span class="keywordflow">catch</span>(std::out_of_range) {</div><div class="line">    <span class="keywordflow">return</span> default_value;</div><div class="line">}</div></div><!-- fragment --><dl class="section note"><dt>Note</dt><dd>Unlike <a class="el" href="classnlohmann_1_1basic__json.html#a18c0c62edce2742d5ab24d1979c3ef00">at(const typename object_t::key_type&amp;)</a>, this function does not throw if the given key <em>key</em> was not found.</dd>
7541 <dd>
7542 Unlike <a class="el" href="classnlohmann_1_1basic__json.html#a27efc3966d94d080bb36fa3595c15df5">operator[](const typename object_t::key_type&amp; key)</a>, this function does not implicitly add an element to the position defined by <em>key</em>. This function is furthermore also applicable to const objects.</dd></dl>
7543 <dl class="params"><dt>Parameters</dt><dd>
7544   <table class="params">
7545     <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>key of the element to access </td></tr>
7546     <tr><td class="paramdir">[in]</td><td class="paramname">default_value</td><td>the value to return if <em>key</em> is not found</td></tr>
7547   </table>
7548   </dd>
7549 </dl>
7550 <dl class="tparams"><dt>Template Parameters</dt><dd>
7551   <table class="tparams">
7552     <tr><td class="paramname">ValueType</td><td>type compatible to JSON values, for instance <code>int</code> for JSON integer numbers, <code>bool</code> for JSON booleans, or <code>std::vector</code> types for JSON arrays. Note the type of the expected value at <em>key</em> and the default value <em>default_value</em> must be compatible.</td></tr>
7553   </table>
7554   </dd>
7555 </dl>
7556 <dl class="section return"><dt>Returns</dt><dd>copy of the element at key <em>key</em> or <em>default_value</em> if <em>key</em> is not found</dd></dl>
7557 <dl class="exception"><dt>Exceptions</dt><dd>
7558   <table class="exception">
7559     <tr><td class="paramname">std::domain_error</td><td>if JSON is not an object; example: <code>"cannot use
7560 value() with null"</code></td></tr>
7561   </table>
7562   </dd>
7563 </dl>
7564 <p>Logarithmic in the size of the container.</p>
7565 <p>{The example below shows how object elements can be queried with a default value.,basic_json__value}</p>
7566 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#a18c0c62edce2742d5ab24d1979c3ef00">at(const typename object_t::key_type&amp;)</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> access by <a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de" title="the type of an element reference ">reference</a> with range checking </dd>
7567 <dd>
7568 <a class="el" href="classnlohmann_1_1basic__json.html#a27efc3966d94d080bb36fa3595c15df5">operator[](const typename object_t::key_type&amp;)</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> unchecked access by <a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de" title="the type of an element reference ">reference</a></dd></dl>
7569 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
7570
7571 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04068">4068</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
7572
7573 </div>
7574 </div>
7575 <a id="ab2b8ceec8ed782b929dcb426bac15966"></a>
7576 <h2 class="memtitle"><span class="permalink"><a href="#ab2b8ceec8ed782b929dcb426bac15966">&#9670;&nbsp;</a></span>value() <span class="overload">[3/4]</span></h2>
7577
7578 <div class="memitem">
7579 <div class="memproto">
7580 <table class="mlabels">
7581   <tr>
7582   <td class="mlabels-left">
7583       <table class="memname">
7584         <tr>
7585           <td class="memname">ValueType value </td>
7586           <td>(</td>
7587           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json_1_1json__pointer.html">json_pointer</a> &amp;&#160;</td>
7588           <td class="paramname"><em>ptr</em>, </td>
7589         </tr>
7590         <tr>
7591           <td class="paramkey"></td>
7592           <td></td>
7593           <td class="paramtype">ValueType&#160;</td>
7594           <td class="paramname"><em>default_value</em>&#160;</td>
7595         </tr>
7596         <tr>
7597           <td></td>
7598           <td>)</td>
7599           <td></td><td> const</td>
7600         </tr>
7601       </table>
7602   </td>
7603   <td class="mlabels-right">
7604 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
7605   </tr>
7606 </table>
7607 </div><div class="memdoc">
7608
7609 <p>access specified object element via JSON Pointer with default value </p>
7610 <p>Returns either a copy of an object's element at the specified key <em>key</em> or a given default value if no element with key <em>key</em> exists.</p>
7611 <p>The function is basically equivalent to executing </p><div class="fragment"><div class="line"><span class="keywordflow">try</span> {</div><div class="line">    <span class="keywordflow">return</span> <a class="code" href="classnlohmann_1_1basic__json.html#a3d5717f39bfe485057850f116fb2ed12">at</a>(ptr);</div><div class="line">} <span class="keywordflow">catch</span>(std::out_of_range) {</div><div class="line">    <span class="keywordflow">return</span> default_value;</div><div class="line">}</div></div><!-- fragment --><dl class="section note"><dt>Note</dt><dd>Unlike <a class="el" href="classnlohmann_1_1basic__json.html#a4d402bba79c6c22a6399472f5ffa748e">at(const json_pointer&amp;)</a>, this function does not throw if the given key <em>key</em> was not found.</dd></dl>
7612 <dl class="params"><dt>Parameters</dt><dd>
7613   <table class="params">
7614     <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>a JSON pointer to the element to access </td></tr>
7615     <tr><td class="paramdir">[in]</td><td class="paramname">default_value</td><td>the value to return if <em>ptr</em> found no value</td></tr>
7616   </table>
7617   </dd>
7618 </dl>
7619 <dl class="tparams"><dt>Template Parameters</dt><dd>
7620   <table class="tparams">
7621     <tr><td class="paramname">ValueType</td><td>type compatible to JSON values, for instance <code>int</code> for JSON integer numbers, <code>bool</code> for JSON booleans, or <code>std::vector</code> types for JSON arrays. Note the type of the expected value at <em>key</em> and the default value <em>default_value</em> must be compatible.</td></tr>
7622   </table>
7623   </dd>
7624 </dl>
7625 <dl class="section return"><dt>Returns</dt><dd>copy of the element at key <em>key</em> or <em>default_value</em> if <em>key</em> is not found</dd></dl>
7626 <dl class="exception"><dt>Exceptions</dt><dd>
7627   <table class="exception">
7628     <tr><td class="paramname">std::domain_error</td><td>if JSON is not an object; example: <code>"cannot use
7629 value() with null"</code></td></tr>
7630   </table>
7631   </dd>
7632 </dl>
7633 <p>Logarithmic in the size of the container.</p>
7634 <p>{The example below shows how object elements can be queried with a default value.,basic_json__value_ptr}</p>
7635 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#af16e882a2401f188f4b26d728c5fc2ed">operator[](const json_pointer&amp;)</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> unchecked access by <a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de" title="the type of an element reference ">reference</a></dd></dl>
7636 <dl class="section since"><dt>Since</dt><dd>version 2.0.2 </dd></dl>
7637
7638 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04116">4116</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
7639
7640 </div>
7641 </div>
7642 <a id="afd2fc91538dba07614e9c1da44fafad7"></a>
7643 <h2 class="memtitle"><span class="permalink"><a href="#afd2fc91538dba07614e9c1da44fafad7">&#9670;&nbsp;</a></span>value() <span class="overload">[4/4]</span></h2>
7644
7645 <div class="memitem">
7646 <div class="memproto">
7647 <table class="mlabels">
7648   <tr>
7649   <td class="mlabels-left">
7650       <table class="memname">
7651         <tr>
7652           <td class="memname"><a class="el" href="classnlohmann_1_1basic__json.html#aeacc0aa4079b56866238b8845928c2b7">string_t</a> value </td>
7653           <td>(</td>
7654           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json_1_1json__pointer.html">json_pointer</a> &amp;&#160;</td>
7655           <td class="paramname"><em>ptr</em>, </td>
7656         </tr>
7657         <tr>
7658           <td class="paramkey"></td>
7659           <td></td>
7660           <td class="paramtype">const char *&#160;</td>
7661           <td class="paramname"><em>default_value</em>&#160;</td>
7662         </tr>
7663         <tr>
7664           <td></td>
7665           <td>)</td>
7666           <td></td><td> const</td>
7667         </tr>
7668       </table>
7669   </td>
7670   <td class="mlabels-right">
7671 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
7672   </tr>
7673 </table>
7674 </div><div class="memdoc">
7675
7676 <p>overload for a default value of type const char* </p>
7677 <p>access specified object element via JSON Pointer with default value Returns either a copy of an object's element at the specified key <em>key</em> or a given default value if no element with key <em>key</em> exists.</p>
7678 <p>The function is basically equivalent to executing </p><div class="fragment"><div class="line"><span class="keywordflow">try</span> {</div><div class="line">    <span class="keywordflow">return</span> <a class="code" href="classnlohmann_1_1basic__json.html#a3d5717f39bfe485057850f116fb2ed12">at</a>(ptr);</div><div class="line">} <span class="keywordflow">catch</span>(std::out_of_range) {</div><div class="line">    <span class="keywordflow">return</span> default_value;</div><div class="line">}</div></div><!-- fragment --><dl class="section note"><dt>Note</dt><dd>Unlike <a class="el" href="classnlohmann_1_1basic__json.html#a4d402bba79c6c22a6399472f5ffa748e">at(const json_pointer&amp;)</a>, this function does not throw if the given key <em>key</em> was not found.</dd></dl>
7679 <dl class="params"><dt>Parameters</dt><dd>
7680   <table class="params">
7681     <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>a JSON pointer to the element to access </td></tr>
7682     <tr><td class="paramdir">[in]</td><td class="paramname">default_value</td><td>the value to return if <em>ptr</em> found no value</td></tr>
7683   </table>
7684   </dd>
7685 </dl>
7686 <dl class="tparams"><dt>Template Parameters</dt><dd>
7687   <table class="tparams">
7688     <tr><td class="paramname">ValueType</td><td>type compatible to JSON values, for instance <code>int</code> for JSON integer numbers, <code>bool</code> for JSON booleans, or <code>std::vector</code> types for JSON arrays. Note the type of the expected value at <em>key</em> and the default value <em>default_value</em> must be compatible.</td></tr>
7689   </table>
7690   </dd>
7691 </dl>
7692 <dl class="section return"><dt>Returns</dt><dd>copy of the element at key <em>key</em> or <em>default_value</em> if <em>key</em> is not found</dd></dl>
7693 <dl class="exception"><dt>Exceptions</dt><dd>
7694   <table class="exception">
7695     <tr><td class="paramname">std::domain_error</td><td>if JSON is not an object; example: <code>"cannot use
7696 value() with null"</code></td></tr>
7697   </table>
7698   </dd>
7699 </dl>
7700 <p>Logarithmic in the size of the container.</p>
7701 <p>{The example below shows how object elements can be queried with a default value.,basic_json__value_ptr}</p>
7702 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#af16e882a2401f188f4b26d728c5fc2ed">operator[](const json_pointer&amp;)</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> unchecked access by <a class="el" href="classnlohmann_1_1basic__json.html#a74202cdd96628bc49a756e5fc87d22de" title="the type of an element reference ">reference</a></dd></dl>
7703 <dl class="section since"><dt>Since</dt><dd>version 2.0.2 </dd></dl>
7704
7705 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l04139">4139</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
7706
7707 </div>
7708 </div>
7709 <h2 class="groupheader">Friends And Related Function Documentation</h2>
7710 <a id="a6275ed57bae6866cdf5db5370a7ad47c"></a>
7711 <h2 class="memtitle"><span class="permalink"><a href="#a6275ed57bae6866cdf5db5370a7ad47c">&#9670;&nbsp;</a></span>detail::external_constructor</h2>
7712
7713 <div class="memitem">
7714 <div class="memproto">
7715 <table class="mlabels">
7716   <tr>
7717   <td class="mlabels-left">
7718       <table class="memname">
7719         <tr>
7720           <td class="memname">friend struct <a class="el" href="structnlohmann_1_1detail_1_1external__constructor.html">detail::external_constructor</a></td>
7721         </tr>
7722       </table>
7723   </td>
7724   <td class="mlabels-right">
7725 <span class="mlabels"><span class="mlabel">friend</span></span>  </td>
7726   </tr>
7727 </table>
7728 </div><div class="memdoc">
7729
7730 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l01019">1019</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
7731
7732 </div>
7733 </div>
7734 <a id="a6e2e21da48f5d9471716cd868a068327"></a>
7735 <h2 class="memtitle"><span class="permalink"><a href="#a6e2e21da48f5d9471716cd868a068327">&#9670;&nbsp;</a></span>operator!= <span class="overload">[1/3]</span></h2>
7736
7737 <div class="memitem">
7738 <div class="memproto">
7739 <table class="mlabels">
7740   <tr>
7741   <td class="mlabels-left">
7742       <table class="memname">
7743         <tr>
7744           <td class="memname">bool operator!= </td>
7745           <td>(</td>
7746           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td>
7747           <td class="paramname"><em>lhs</em>, </td>
7748         </tr>
7749         <tr>
7750           <td class="paramkey"></td>
7751           <td></td>
7752           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td>
7753           <td class="paramname"><em>rhs</em>&#160;</td>
7754         </tr>
7755         <tr>
7756           <td></td>
7757           <td>)</td>
7758           <td></td><td></td>
7759         </tr>
7760       </table>
7761   </td>
7762   <td class="mlabels-right">
7763 <span class="mlabels"><span class="mlabel">friend</span></span>  </td>
7764   </tr>
7765 </table>
7766 </div><div class="memdoc">
7767
7768 <p>comparison: not equal </p>
7769 <p>Compares two JSON values for inequality by calculating <code>not (lhs == rhs)</code>.</p>
7770 <dl class="params"><dt>Parameters</dt><dd>
7771   <table class="params">
7772     <tr><td class="paramdir">[in]</td><td class="paramname">lhs</td><td>first JSON value to consider </td></tr>
7773     <tr><td class="paramdir">[in]</td><td class="paramname">rhs</td><td>second JSON value to consider </td></tr>
7774   </table>
7775   </dd>
7776 </dl>
7777 <dl class="section return"><dt>Returns</dt><dd>whether the values <em>lhs</em> and <em>rhs</em> are not equal</dd></dl>
7778 <p>Linear.</p>
7779 <p>{The example demonstrates comparing several JSON types.,operator__notequal}</p>
7780 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
7781
7782 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05972">5972</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
7783
7784 </div>
7785 </div>
7786 <a id="afefc38fc08bdb7a9a7474b5ab4a1140f"></a>
7787 <h2 class="memtitle"><span class="permalink"><a href="#afefc38fc08bdb7a9a7474b5ab4a1140f">&#9670;&nbsp;</a></span>operator!= <span class="overload">[2/3]</span></h2>
7788
7789 <div class="memitem">
7790 <div class="memproto">
7791 <table class="mlabels">
7792   <tr>
7793   <td class="mlabels-left">
7794       <table class="memname">
7795         <tr>
7796           <td class="memname">bool operator!= </td>
7797           <td>(</td>
7798           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td>
7799           <td class="paramname"><em>lhs</em>, </td>
7800         </tr>
7801         <tr>
7802           <td class="paramkey"></td>
7803           <td></td>
7804           <td class="paramtype">const ScalarType&#160;</td>
7805           <td class="paramname"><em>rhs</em>&#160;</td>
7806         </tr>
7807         <tr>
7808           <td></td>
7809           <td>)</td>
7810           <td></td><td></td>
7811         </tr>
7812       </table>
7813   </td>
7814   <td class="mlabels-right">
7815 <span class="mlabels"><span class="mlabel">friend</span></span>  </td>
7816   </tr>
7817 </table>
7818 </div><div class="memdoc">
7819
7820 <p>comparison: not equal </p>
7821 <p>comparison: not equal Compares two JSON values for inequality by calculating <code>not (lhs == rhs)</code>.</p>
7822 <dl class="params"><dt>Parameters</dt><dd>
7823   <table class="params">
7824     <tr><td class="paramdir">[in]</td><td class="paramname">lhs</td><td>first JSON value to consider </td></tr>
7825     <tr><td class="paramdir">[in]</td><td class="paramname">rhs</td><td>second JSON value to consider </td></tr>
7826   </table>
7827   </dd>
7828 </dl>
7829 <dl class="section return"><dt>Returns</dt><dd>whether the values <em>lhs</em> and <em>rhs</em> are not equal</dd></dl>
7830 <p>Linear.</p>
7831 <p>{The example demonstrates comparing several JSON types.,operator__notequal}</p>
7832 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
7833
7834 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05983">5983</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
7835
7836 </div>
7837 </div>
7838 <a id="ab0e886db6e9fa91ff9fd853333fed05b"></a>
7839 <h2 class="memtitle"><span class="permalink"><a href="#ab0e886db6e9fa91ff9fd853333fed05b">&#9670;&nbsp;</a></span>operator!= <span class="overload">[3/3]</span></h2>
7840
7841 <div class="memitem">
7842 <div class="memproto">
7843 <table class="mlabels">
7844   <tr>
7845   <td class="mlabels-left">
7846       <table class="memname">
7847         <tr>
7848           <td class="memname">bool operator!= </td>
7849           <td>(</td>
7850           <td class="paramtype">const ScalarType&#160;</td>
7851           <td class="paramname"><em>lhs</em>, </td>
7852         </tr>
7853         <tr>
7854           <td class="paramkey"></td>
7855           <td></td>
7856           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td>
7857           <td class="paramname"><em>rhs</em>&#160;</td>
7858         </tr>
7859         <tr>
7860           <td></td>
7861           <td>)</td>
7862           <td></td><td></td>
7863         </tr>
7864       </table>
7865   </td>
7866   <td class="mlabels-right">
7867 <span class="mlabels"><span class="mlabel">friend</span></span>  </td>
7868   </tr>
7869 </table>
7870 </div><div class="memdoc">
7871
7872 <p>comparison: not equal </p>
7873 <p>comparison: not equal Compares two JSON values for inequality by calculating <code>not (lhs == rhs)</code>.</p>
7874 <dl class="params"><dt>Parameters</dt><dd>
7875   <table class="params">
7876     <tr><td class="paramdir">[in]</td><td class="paramname">lhs</td><td>first JSON value to consider </td></tr>
7877     <tr><td class="paramdir">[in]</td><td class="paramname">rhs</td><td>second JSON value to consider </td></tr>
7878   </table>
7879   </dd>
7880 </dl>
7881 <dl class="section return"><dt>Returns</dt><dd>whether the values <em>lhs</em> and <em>rhs</em> are not equal</dd></dl>
7882 <p>Linear.</p>
7883 <p>{The example demonstrates comparing several JSON types.,operator__notequal}</p>
7884 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
7885
7886 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05994">5994</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
7887
7888 </div>
7889 </div>
7890 <a id="aacd442b66140c764c594ac8ad7dfd5b3"></a>
7891 <h2 class="memtitle"><span class="permalink"><a href="#aacd442b66140c764c594ac8ad7dfd5b3">&#9670;&nbsp;</a></span>operator<</h2>
7892
7893 <div class="memitem">
7894 <div class="memproto">
7895 <table class="mlabels">
7896   <tr>
7897   <td class="mlabels-left">
7898       <table class="memname">
7899         <tr>
7900           <td class="memname">bool operator&lt; </td>
7901           <td>(</td>
7902           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td>
7903           <td class="paramname"><em>lhs</em>, </td>
7904         </tr>
7905         <tr>
7906           <td class="paramkey"></td>
7907           <td></td>
7908           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td>
7909           <td class="paramname"><em>rhs</em>&#160;</td>
7910         </tr>
7911         <tr>
7912           <td></td>
7913           <td>)</td>
7914           <td></td><td></td>
7915         </tr>
7916       </table>
7917   </td>
7918   <td class="mlabels-right">
7919 <span class="mlabels"><span class="mlabel">friend</span></span>  </td>
7920   </tr>
7921 </table>
7922 </div><div class="memdoc">
7923
7924 <p>comparison: less than </p>
7925 <p>Compares whether one JSON value <em>lhs</em> is less than another JSON value <em>rhs</em> according to the following rules:</p><ul>
7926 <li>If <em>lhs</em> and <em>rhs</em> have the same type, the values are compared using the default <code>&lt;</code> operator.</li>
7927 <li>Integer and floating-point numbers are automatically converted before comparison</li>
7928 <li>In case <em>lhs</em> and <em>rhs</em> have different types, the values are ignored and the order of the types is considered, see operator&lt;(const value_t, const value_t).</li>
7929 </ul>
7930 <dl class="params"><dt>Parameters</dt><dd>
7931   <table class="params">
7932     <tr><td class="paramdir">[in]</td><td class="paramname">lhs</td><td>first JSON value to consider </td></tr>
7933     <tr><td class="paramdir">[in]</td><td class="paramname">rhs</td><td>second JSON value to consider </td></tr>
7934   </table>
7935   </dd>
7936 </dl>
7937 <dl class="section return"><dt>Returns</dt><dd>whether <em>lhs</em> is less than <em>rhs</em> </dd></dl>
7938 <p>Linear.</p>
7939 <p>{The example demonstrates comparing several JSON types.,operator__less}</p>
7940 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
7941
7942 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l06023">6023</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
7943
7944 </div>
7945 </div>
7946 <a id="a5e34c5435e557d0bf666bd7311211405"></a>
7947 <h2 class="memtitle"><span class="permalink"><a href="#a5e34c5435e557d0bf666bd7311211405">&#9670;&nbsp;</a></span>operator<< <span class="overload">[1/2]</span></h2>
7948
7949 <div class="memitem">
7950 <div class="memproto">
7951 <table class="mlabels">
7952   <tr>
7953   <td class="mlabels-left">
7954       <table class="memname">
7955         <tr>
7956           <td class="memname">std::ostream&amp; operator&lt;&lt; </td>
7957           <td>(</td>
7958           <td class="paramtype">std::ostream &amp;&#160;</td>
7959           <td class="paramname"><em>o</em>, </td>
7960         </tr>
7961         <tr>
7962           <td class="paramkey"></td>
7963           <td></td>
7964           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; &amp;&#160;</td>
7965           <td class="paramname"><em>j</em>&#160;</td>
7966         </tr>
7967         <tr>
7968           <td></td>
7969           <td>)</td>
7970           <td></td><td></td>
7971         </tr>
7972       </table>
7973   </td>
7974   <td class="mlabels-right">
7975 <span class="mlabels"><span class="mlabel">friend</span></span>  </td>
7976   </tr>
7977 </table>
7978 </div><div class="memdoc">
7979
7980 <p>serialize to stream </p>
7981 <p>Serialize the given JSON value <em>j</em> to the output stream <em>o</em>. The JSON value will be serialized using the <a class="el" href="classnlohmann_1_1basic__json.html#a42de62d3e7b710d0279ac373a22c63eb">dump</a> member function. The indentation of the output can be controlled with the member variable <code>width</code> of the output stream <em>o</em>. For instance, using the manipulator <code>std::setw(4)</code> on <em>o</em> sets the indentation level to <code>4</code> and the serialization result is the same as calling <code>dump(4)</code>.</p>
7982 <dl class="params"><dt>Parameters</dt><dd>
7983   <table class="params">
7984     <tr><td class="paramdir">[in,out]</td><td class="paramname">o</td><td>stream to serialize to </td></tr>
7985     <tr><td class="paramdir">[in]</td><td class="paramname">j</td><td>JSON value to serialize</td></tr>
7986   </table>
7987   </dd>
7988 </dl>
7989 <dl class="section return"><dt>Returns</dt><dd>the stream <em>o</em> </dd></dl>
7990 <p>Linear.</p>
7991 <p>{The example below shows the serialization with different parameters to <code>width</code> to adjust the indentation level.,operator_serialize}</p>
7992 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
7993
7994 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l06199">6199</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
7995
7996 </div>
7997 </div>
7998 <a id="a60ca396028b8d9714c6e10efbf475af6"></a>
7999 <h2 class="memtitle"><span class="permalink"><a href="#a60ca396028b8d9714c6e10efbf475af6">&#9670;&nbsp;</a></span>operator<< <span class="overload">[2/2]</span></h2>
8000
8001 <div class="memitem">
8002 <div class="memproto">
8003 <table class="mlabels">
8004   <tr>
8005   <td class="mlabels-left">
8006       <table class="memname">
8007         <tr>
8008           <td class="memname">std::istream&amp; operator&lt;&lt; </td>
8009           <td>(</td>
8010           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; &amp;&#160;</td>
8011           <td class="paramname"><em>j</em>, </td>
8012         </tr>
8013         <tr>
8014           <td class="paramkey"></td>
8015           <td></td>
8016           <td class="paramtype">std::istream &amp;&#160;</td>
8017           <td class="paramname"><em>i</em>&#160;</td>
8018         </tr>
8019         <tr>
8020           <td></td>
8021           <td>)</td>
8022           <td></td><td></td>
8023         </tr>
8024       </table>
8025   </td>
8026   <td class="mlabels-right">
8027 <span class="mlabels"><span class="mlabel">friend</span></span>  </td>
8028   </tr>
8029 </table>
8030 </div><div class="memdoc">
8031
8032 <p>deserialize from stream </p>
8033 <p>Deserializes an input stream to a JSON value.</p>
8034 <dl class="params"><dt>Parameters</dt><dd>
8035   <table class="params">
8036     <tr><td class="paramdir">[in,out]</td><td class="paramname">i</td><td>input stream to read a serialized JSON value from </td></tr>
8037     <tr><td class="paramdir">[in,out]</td><td class="paramname">j</td><td>JSON value to write the deserialized input to</td></tr>
8038   </table>
8039   </dd>
8040 </dl>
8041 <dl class="exception"><dt>Exceptions</dt><dd>
8042   <table class="exception">
8043     <tr><td class="paramname">std::invalid_argument</td><td>in case of parse errors</td></tr>
8044   </table>
8045   </dd>
8046 </dl>
8047 <p>Linear in the length of the input. The parser is a predictive LL(1) parser.</p>
8048 <dl class="section note"><dt>Note</dt><dd>A UTF-8 byte order mark is silently ignored.</dd></dl>
8049 <p>{The example below shows how a JSON value is constructed by reading a serialization from a stream.,operator_deserialize}</p>
8050 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#ad19ad3fa5d9a806c5018faa3cd0ed85c" title="deserialize from stream ">parse(std::istream&amp;, const parser_callback_t)</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> a variant with a parser callback function to filter values while parsing</dd></dl>
8051 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
8052
8053 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l06491">6491</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
8054
8055 </div>
8056 </div>
8057 <a id="a5c8bb5200f5eac10d31e26be46e5b1ac"></a>
8058 <h2 class="memtitle"><span class="permalink"><a href="#a5c8bb5200f5eac10d31e26be46e5b1ac">&#9670;&nbsp;</a></span>operator<=</h2>
8059
8060 <div class="memitem">
8061 <div class="memproto">
8062 <table class="mlabels">
8063   <tr>
8064   <td class="mlabels-left">
8065       <table class="memname">
8066         <tr>
8067           <td class="memname">bool operator&lt;= </td>
8068           <td>(</td>
8069           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td>
8070           <td class="paramname"><em>lhs</em>, </td>
8071         </tr>
8072         <tr>
8073           <td class="paramkey"></td>
8074           <td></td>
8075           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td>
8076           <td class="paramname"><em>rhs</em>&#160;</td>
8077         </tr>
8078         <tr>
8079           <td></td>
8080           <td>)</td>
8081           <td></td><td></td>
8082         </tr>
8083       </table>
8084   </td>
8085   <td class="mlabels-right">
8086 <span class="mlabels"><span class="mlabel">friend</span></span>  </td>
8087   </tr>
8088 </table>
8089 </div><div class="memdoc">
8090
8091 <p>comparison: less than or equal </p>
8092 <p>Compares whether one JSON value <em>lhs</em> is less than or equal to another JSON value by calculating <code>not (rhs &lt; lhs)</code>.</p>
8093 <dl class="params"><dt>Parameters</dt><dd>
8094   <table class="params">
8095     <tr><td class="paramdir">[in]</td><td class="paramname">lhs</td><td>first JSON value to consider </td></tr>
8096     <tr><td class="paramdir">[in]</td><td class="paramname">rhs</td><td>second JSON value to consider </td></tr>
8097   </table>
8098   </dd>
8099 </dl>
8100 <dl class="section return"><dt>Returns</dt><dd>whether <em>lhs</em> is less than or equal to <em>rhs</em> </dd></dl>
8101 <p>Linear.</p>
8102 <p>{The example demonstrates comparing several JSON types.,operator__greater}</p>
8103 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
8104
8105 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l06118">6118</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
8106
8107 </div>
8108 </div>
8109 <a id="a122640e7e2db1814fc7bbb3c122ec76e"></a>
8110 <h2 class="memtitle"><span class="permalink"><a href="#a122640e7e2db1814fc7bbb3c122ec76e">&#9670;&nbsp;</a></span>operator== <span class="overload">[1/3]</span></h2>
8111
8112 <div class="memitem">
8113 <div class="memproto">
8114 <table class="mlabels">
8115   <tr>
8116   <td class="mlabels-left">
8117       <table class="memname">
8118         <tr>
8119           <td class="memname">bool operator== </td>
8120           <td>(</td>
8121           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td>
8122           <td class="paramname"><em>lhs</em>, </td>
8123         </tr>
8124         <tr>
8125           <td class="paramkey"></td>
8126           <td></td>
8127           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td>
8128           <td class="paramname"><em>rhs</em>&#160;</td>
8129         </tr>
8130         <tr>
8131           <td></td>
8132           <td>)</td>
8133           <td></td><td></td>
8134         </tr>
8135       </table>
8136   </td>
8137   <td class="mlabels-right">
8138 <span class="mlabels"><span class="mlabel">friend</span></span>  </td>
8139   </tr>
8140 </table>
8141 </div><div class="memdoc">
8142
8143 <p>comparison: equal </p>
8144 <p>Compares two JSON values for equality according to the following rules:</p><ul>
8145 <li>Two JSON values are equal if (1) they are from the same type and (2) their stored values are the same.</li>
8146 <li>Integer and floating-point numbers are automatically converted before comparison. Floating-point numbers are compared indirectly: two floating-point numbers <code>f1</code> and <code>f2</code> are considered equal if neither <code>f1 &gt; f2</code> nor <code>f2 &gt; f1</code> holds.</li>
8147 <li>Two JSON null values are equal.</li>
8148 </ul>
8149 <dl class="params"><dt>Parameters</dt><dd>
8150   <table class="params">
8151     <tr><td class="paramdir">[in]</td><td class="paramname">lhs</td><td>first JSON value to consider </td></tr>
8152     <tr><td class="paramdir">[in]</td><td class="paramname">rhs</td><td>second JSON value to consider </td></tr>
8153   </table>
8154   </dd>
8155 </dl>
8156 <dl class="section return"><dt>Returns</dt><dd>whether the values <em>lhs</em> and <em>rhs</em> are equal</dd></dl>
8157 <p>Linear.</p>
8158 <p>{The example demonstrates comparing several JSON types.,operator__equal}</p>
8159 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
8160
8161 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05859">5859</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
8162
8163 </div>
8164 </div>
8165 <a id="aba21440ea1aff44f718285ed7d6d20d9"></a>
8166 <h2 class="memtitle"><span class="permalink"><a href="#aba21440ea1aff44f718285ed7d6d20d9">&#9670;&nbsp;</a></span>operator== <span class="overload">[2/3]</span></h2>
8167
8168 <div class="memitem">
8169 <div class="memproto">
8170 <table class="mlabels">
8171   <tr>
8172   <td class="mlabels-left">
8173       <table class="memname">
8174         <tr>
8175           <td class="memname">bool operator== </td>
8176           <td>(</td>
8177           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td>
8178           <td class="paramname"><em>lhs</em>, </td>
8179         </tr>
8180         <tr>
8181           <td class="paramkey"></td>
8182           <td></td>
8183           <td class="paramtype">const ScalarType&#160;</td>
8184           <td class="paramname"><em>rhs</em>&#160;</td>
8185         </tr>
8186         <tr>
8187           <td></td>
8188           <td>)</td>
8189           <td></td><td></td>
8190         </tr>
8191       </table>
8192   </td>
8193   <td class="mlabels-right">
8194 <span class="mlabels"><span class="mlabel">friend</span></span>  </td>
8195   </tr>
8196 </table>
8197 </div><div class="memdoc">
8198
8199 <p>comparison: equal </p>
8200 <p>comparison: equal Compares two JSON values for equality according to the following rules:</p><ul>
8201 <li>Two JSON values are equal if (1) they are from the same type and (2) their stored values are the same.</li>
8202 <li>Integer and floating-point numbers are automatically converted before comparison. Floating-point numbers are compared indirectly: two floating-point numbers <code>f1</code> and <code>f2</code> are considered equal if neither <code>f1 &gt; f2</code> nor <code>f2 &gt; f1</code> holds.</li>
8203 <li>Two JSON null values are equal.</li>
8204 </ul>
8205 <dl class="params"><dt>Parameters</dt><dd>
8206   <table class="params">
8207     <tr><td class="paramdir">[in]</td><td class="paramname">lhs</td><td>first JSON value to consider </td></tr>
8208     <tr><td class="paramdir">[in]</td><td class="paramname">rhs</td><td>second JSON value to consider </td></tr>
8209   </table>
8210   </dd>
8211 </dl>
8212 <dl class="section return"><dt>Returns</dt><dd>whether the values <em>lhs</em> and <em>rhs</em> are equal</dd></dl>
8213 <p>Linear.</p>
8214 <p>{The example demonstrates comparing several JSON types.,operator__equal}</p>
8215 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
8216
8217 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05940">5940</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
8218
8219 </div>
8220 </div>
8221 <a id="aef302e3ae215e46e5035d0e4fdf47235"></a>
8222 <h2 class="memtitle"><span class="permalink"><a href="#aef302e3ae215e46e5035d0e4fdf47235">&#9670;&nbsp;</a></span>operator== <span class="overload">[3/3]</span></h2>
8223
8224 <div class="memitem">
8225 <div class="memproto">
8226 <table class="mlabels">
8227   <tr>
8228   <td class="mlabels-left">
8229       <table class="memname">
8230         <tr>
8231           <td class="memname">bool operator== </td>
8232           <td>(</td>
8233           <td class="paramtype">const ScalarType&#160;</td>
8234           <td class="paramname"><em>lhs</em>, </td>
8235         </tr>
8236         <tr>
8237           <td class="paramkey"></td>
8238           <td></td>
8239           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td>
8240           <td class="paramname"><em>rhs</em>&#160;</td>
8241         </tr>
8242         <tr>
8243           <td></td>
8244           <td>)</td>
8245           <td></td><td></td>
8246         </tr>
8247       </table>
8248   </td>
8249   <td class="mlabels-right">
8250 <span class="mlabels"><span class="mlabel">friend</span></span>  </td>
8251   </tr>
8252 </table>
8253 </div><div class="memdoc">
8254
8255 <p>comparison: equal </p>
8256 <p>comparison: equal Compares two JSON values for equality according to the following rules:</p><ul>
8257 <li>Two JSON values are equal if (1) they are from the same type and (2) their stored values are the same.</li>
8258 <li>Integer and floating-point numbers are automatically converted before comparison. Floating-point numbers are compared indirectly: two floating-point numbers <code>f1</code> and <code>f2</code> are considered equal if neither <code>f1 &gt; f2</code> nor <code>f2 &gt; f1</code> holds.</li>
8259 <li>Two JSON null values are equal.</li>
8260 </ul>
8261 <dl class="params"><dt>Parameters</dt><dd>
8262   <table class="params">
8263     <tr><td class="paramdir">[in]</td><td class="paramname">lhs</td><td>first JSON value to consider </td></tr>
8264     <tr><td class="paramdir">[in]</td><td class="paramname">rhs</td><td>second JSON value to consider </td></tr>
8265   </table>
8266   </dd>
8267 </dl>
8268 <dl class="section return"><dt>Returns</dt><dd>whether the values <em>lhs</em> and <em>rhs</em> are equal</dd></dl>
8269 <p>Linear.</p>
8270 <p>{The example demonstrates comparing several JSON types.,operator__equal}</p>
8271 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
8272
8273 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l05951">5951</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
8274
8275 </div>
8276 </div>
8277 <a id="a87db51b6b936fb2ea293cdbc8702dcb8"></a>
8278 <h2 class="memtitle"><span class="permalink"><a href="#a87db51b6b936fb2ea293cdbc8702dcb8">&#9670;&nbsp;</a></span>operator></h2>
8279
8280 <div class="memitem">
8281 <div class="memproto">
8282 <table class="mlabels">
8283   <tr>
8284   <td class="mlabels-left">
8285       <table class="memname">
8286         <tr>
8287           <td class="memname">bool operator&gt; </td>
8288           <td>(</td>
8289           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td>
8290           <td class="paramname"><em>lhs</em>, </td>
8291         </tr>
8292         <tr>
8293           <td class="paramkey"></td>
8294           <td></td>
8295           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td>
8296           <td class="paramname"><em>rhs</em>&#160;</td>
8297         </tr>
8298         <tr>
8299           <td></td>
8300           <td>)</td>
8301           <td></td><td></td>
8302         </tr>
8303       </table>
8304   </td>
8305   <td class="mlabels-right">
8306 <span class="mlabels"><span class="mlabel">friend</span></span>  </td>
8307   </tr>
8308 </table>
8309 </div><div class="memdoc">
8310
8311 <p>comparison: greater than </p>
8312 <p>Compares whether one JSON value <em>lhs</em> is greater than another JSON value by calculating <code>not (lhs &lt;= rhs)</code>.</p>
8313 <dl class="params"><dt>Parameters</dt><dd>
8314   <table class="params">
8315     <tr><td class="paramdir">[in]</td><td class="paramname">lhs</td><td>first JSON value to consider </td></tr>
8316     <tr><td class="paramdir">[in]</td><td class="paramname">rhs</td><td>second JSON value to consider </td></tr>
8317   </table>
8318   </dd>
8319 </dl>
8320 <dl class="section return"><dt>Returns</dt><dd>whether <em>lhs</em> is greater than to <em>rhs</em> </dd></dl>
8321 <p>Linear.</p>
8322 <p>{The example demonstrates comparing several JSON types.,operator__lessequal}</p>
8323 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
8324
8325 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l06140">6140</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
8326
8327 </div>
8328 </div>
8329 <a id="a74a943800c7f103d0990d7eef82c6453"></a>
8330 <h2 class="memtitle"><span class="permalink"><a href="#a74a943800c7f103d0990d7eef82c6453">&#9670;&nbsp;</a></span>operator>=</h2>
8331
8332 <div class="memitem">
8333 <div class="memproto">
8334 <table class="mlabels">
8335   <tr>
8336   <td class="mlabels-left">
8337       <table class="memname">
8338         <tr>
8339           <td class="memname">bool operator&gt;= </td>
8340           <td>(</td>
8341           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td>
8342           <td class="paramname"><em>lhs</em>, </td>
8343         </tr>
8344         <tr>
8345           <td class="paramkey"></td>
8346           <td></td>
8347           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html#ab1137da269e66589b98fce3416d40502">const_reference</a>&#160;</td>
8348           <td class="paramname"><em>rhs</em>&#160;</td>
8349         </tr>
8350         <tr>
8351           <td></td>
8352           <td>)</td>
8353           <td></td><td></td>
8354         </tr>
8355       </table>
8356   </td>
8357   <td class="mlabels-right">
8358 <span class="mlabels"><span class="mlabel">friend</span></span>  </td>
8359   </tr>
8360 </table>
8361 </div><div class="memdoc">
8362
8363 <p>comparison: greater than or equal </p>
8364 <p>Compares whether one JSON value <em>lhs</em> is greater than or equal to another JSON value by calculating <code>not (lhs &lt; rhs)</code>.</p>
8365 <dl class="params"><dt>Parameters</dt><dd>
8366   <table class="params">
8367     <tr><td class="paramdir">[in]</td><td class="paramname">lhs</td><td>first JSON value to consider </td></tr>
8368     <tr><td class="paramdir">[in]</td><td class="paramname">rhs</td><td>second JSON value to consider </td></tr>
8369   </table>
8370   </dd>
8371 </dl>
8372 <dl class="section return"><dt>Returns</dt><dd>whether <em>lhs</em> is greater than or equal to <em>rhs</em> </dd></dl>
8373 <p>Linear.</p>
8374 <p>{The example demonstrates comparing several JSON types.,operator__greaterequal}</p>
8375 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
8376
8377 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l06162">6162</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
8378
8379 </div>
8380 </div>
8381 <a id="a34d6a60dd99e9f33b8273a1c8db5669b"></a>
8382 <h2 class="memtitle"><span class="permalink"><a href="#a34d6a60dd99e9f33b8273a1c8db5669b">&#9670;&nbsp;</a></span>operator>> <span class="overload">[1/2]</span></h2>
8383
8384 <div class="memitem">
8385 <div class="memproto">
8386 <table class="mlabels">
8387   <tr>
8388   <td class="mlabels-left">
8389       <table class="memname">
8390         <tr>
8391           <td class="memname">std::ostream&amp; operator&gt;&gt; </td>
8392           <td>(</td>
8393           <td class="paramtype">const <a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; &amp;&#160;</td>
8394           <td class="paramname"><em>j</em>, </td>
8395         </tr>
8396         <tr>
8397           <td class="paramkey"></td>
8398           <td></td>
8399           <td class="paramtype">std::ostream &amp;&#160;</td>
8400           <td class="paramname"><em>o</em>&#160;</td>
8401         </tr>
8402         <tr>
8403           <td></td>
8404           <td>)</td>
8405           <td></td><td></td>
8406         </tr>
8407       </table>
8408   </td>
8409   <td class="mlabels-right">
8410 <span class="mlabels"><span class="mlabel">friend</span></span>  </td>
8411   </tr>
8412 </table>
8413 </div><div class="memdoc">
8414
8415 <p>serialize to stream </p>
8416 <p>serialize to stream Serialize the given JSON value <em>j</em> to the output stream <em>o</em>. The JSON value will be serialized using the <a class="el" href="classnlohmann_1_1basic__json.html#a42de62d3e7b710d0279ac373a22c63eb">dump</a> member function. The indentation of the output can be controlled with the member variable <code>width</code> of the output stream <em>o</em>. For instance, using the manipulator <code>std::setw(4)</code> on <em>o</em> sets the indentation level to <code>4</code> and the serialization result is the same as calling <code>dump(4)</code>.</p>
8417 <dl class="params"><dt>Parameters</dt><dd>
8418   <table class="params">
8419     <tr><td class="paramdir">[in,out]</td><td class="paramname">o</td><td>stream to serialize to </td></tr>
8420     <tr><td class="paramdir">[in]</td><td class="paramname">j</td><td>JSON value to serialize</td></tr>
8421   </table>
8422   </dd>
8423 </dl>
8424 <dl class="section return"><dt>Returns</dt><dd>the stream <em>o</em> </dd></dl>
8425 <p>Linear.</p>
8426 <p>{The example below shows the serialization with different parameters to <code>width</code> to adjust the indentation level.,operator_serialize}</p>
8427 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
8428
8429 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l06218">6218</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
8430
8431 </div>
8432 </div>
8433 <a id="aaf363408931d76472ded14017e59c9e8"></a>
8434 <h2 class="memtitle"><span class="permalink"><a href="#aaf363408931d76472ded14017e59c9e8">&#9670;&nbsp;</a></span>operator>> <span class="overload">[2/2]</span></h2>
8435
8436 <div class="memitem">
8437 <div class="memproto">
8438 <table class="mlabels">
8439   <tr>
8440   <td class="mlabels-left">
8441       <table class="memname">
8442         <tr>
8443           <td class="memname">std::istream&amp; operator&gt;&gt; </td>
8444           <td>(</td>
8445           <td class="paramtype">std::istream &amp;&#160;</td>
8446           <td class="paramname"><em>i</em>, </td>
8447         </tr>
8448         <tr>
8449           <td class="paramkey"></td>
8450           <td></td>
8451           <td class="paramtype"><a class="el" href="classnlohmann_1_1basic__json.html">basic_json</a>&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer &gt; &amp;&#160;</td>
8452           <td class="paramname"><em>j</em>&#160;</td>
8453         </tr>
8454         <tr>
8455           <td></td>
8456           <td>)</td>
8457           <td></td><td></td>
8458         </tr>
8459       </table>
8460   </td>
8461   <td class="mlabels-right">
8462 <span class="mlabels"><span class="mlabel">friend</span></span>  </td>
8463   </tr>
8464 </table>
8465 </div><div class="memdoc">
8466
8467 <p>deserialize from stream </p>
8468 <p>deserialize from stream Deserializes an input stream to a JSON value.</p>
8469 <dl class="params"><dt>Parameters</dt><dd>
8470   <table class="params">
8471     <tr><td class="paramdir">[in,out]</td><td class="paramname">i</td><td>input stream to read a serialized JSON value from </td></tr>
8472     <tr><td class="paramdir">[in,out]</td><td class="paramname">j</td><td>JSON value to write the deserialized input to</td></tr>
8473   </table>
8474   </dd>
8475 </dl>
8476 <dl class="exception"><dt>Exceptions</dt><dd>
8477   <table class="exception">
8478     <tr><td class="paramname">std::invalid_argument</td><td>in case of parse errors</td></tr>
8479   </table>
8480   </dd>
8481 </dl>
8482 <p>Linear in the length of the input. The parser is a predictive LL(1) parser.</p>
8483 <dl class="section note"><dt>Note</dt><dd>A UTF-8 byte order mark is silently ignored.</dd></dl>
8484 <p>{The example below shows how a JSON value is constructed by reading a serialization from a stream.,operator_deserialize}</p>
8485 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classnlohmann_1_1basic__json.html#ad19ad3fa5d9a806c5018faa3cd0ed85c" title="deserialize from stream ">parse(std::istream&amp;, const parser_callback_t)</a> <a class="el" href="gen__test_8m.html#af3108abdfc7dbfa64896900ace74b015">for</a> a variant with a parser callback function to filter values while parsing</dd></dl>
8486 <dl class="section since"><dt>Since</dt><dd>version 1.0.0 </dd></dl>
8487
8488 <p class="definition">Definition at line <a class="el" href="json_8hpp_source.html#l06501">6501</a> of file <a class="el" href="json_8hpp_source.html">json.hpp</a>.</p>
8489
8490 </div>
8491 </div>
8492 <hr/>The documentation for this class was generated from the following file:<ul>
8493 <li><a class="el" href="json_8hpp_source.html">json.hpp</a></li>
8494 </ul>
8495 </div><!-- contents -->
8496 <!-- start footer part -->
8497 <hr class="footer"/><address class="footer"><small>
8498 Generated by &#160;<a href="http://www.doxygen.org/index.html">
8499 <img class="footer" src="doxygen.png" alt="doxygen"/>
8500 </a> 1.8.13
8501 </small></address>
8502 </body>
8503 </html>