Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-updates > by-pkgid > bd101116f928b2ceb5c9a929b33f1ee3 > files > 476

libjsoncpp-devel-1.6.5-1.mga5.i586.rpm

<html>
<head>
<title>
JsonCpp - JSON data format manipulation library
</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head>
<body bgcolor="#ffffff"> 
<table width="100%">
  <tr>
    <td width="40%" align="left" valign="center">
      <a href="https://github.com/open-source-parsers/jsoncpp">
      JsonCpp project page
      </a>
    </td>
    <td width="40%" align="right" valign="center">
      <a href="http://open-source-parsers.github.io/jsoncpp-docs/doxygen/">JsonCpp home page</a>
    </td>
  </tr>
</table>
<hr>
<!-- Generated by Doxygen 1.8.8 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_558a3a6fe8f26971847c96e209994c71.html">lib_json</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">json_value.cpp</div>  </div>
</div><!--header-->
<div class="contents">
<a href="json__value_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">// Copyright 2011 Baptiste Lepilleur</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">// Distributed under MIT license, or public domain if desired and</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">// recognized in your jurisdiction.</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;</div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#if !defined(JSON_IS_AMALGAMATION)</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="assertions_8h.html">json/assertions.h</a>&gt;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="value_8h.html">json/value.h</a>&gt;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="writer_8h.html">json/writer.h</a>&gt;</span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#endif // if !defined(JSON_IS_AMALGAMATION)</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &lt;math.h&gt;</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &lt;sstream&gt;</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;cstring&gt;</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &lt;cassert&gt;</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#ifdef JSON_USE_CPPTL</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;cpptl/conststring.h&gt;</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;cstddef&gt;</span> <span class="comment">// size_t</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;algorithm&gt;</span> <span class="comment">// min()</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div>
<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="json__value_8cpp.html#aa5e619e3e9388f6376a344dd8462c9cc">   22</a></span>&#160;<span class="preprocessor">#define JSON_ASSERT_UNREACHABLE assert(false)</span></div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_json.html">Json</a> {</div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment">// This is a walkaround to avoid the static initialization of Value::null.</span></div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment">// kNull must be word-aligned to avoid crashing on ARM.  We use an alignment of</span></div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment">// 8 (instead of 4) as a bit of future-proofing.</span></div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#if defined(__ARMEL__)</span></div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#define ALIGNAS(byte_alignment) __attribute__((aligned(byte_alignment)))</span></div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="json__value_8cpp.html#a08a0024ebd1cc16ccc4a208e1e817f6e">   32</a></span>&#160;<span class="preprocessor">#define ALIGNAS(byte_alignment)</span></div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="namespace_json.html#a6b6386a40e6c4df0fa209e338b7dfd2e">   34</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="json__value_8cpp.html#a08a0024ebd1cc16ccc4a208e1e817f6e">ALIGNAS</a>(8) <a class="code" href="namespace_json.html#a6b6386a40e6c4df0fa209e338b7dfd2e">kNull</a>[sizeof(<a class="code" href="class_json_1_1_value.html">Value</a>)] = { 0 };</div>
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="namespace_json.html#ab30055b4bbd82aecaca57ccecd63bbe6">   35</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>&amp; <a class="code" href="namespace_json.html#ab30055b4bbd82aecaca57ccecd63bbe6">kNullRef</a> = <a class="code" href="namespace_json.html#a6b6386a40e6c4df0fa209e338b7dfd2e">kNull</a>[0];</div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="keyword">const</span> <a class="code" href="class_json_1_1_value.html">Value</a>&amp; <a class="code" href="class_json_1_1_value.html#a6d6e9ea6807e46d5b7ded66d3032f607">Value::null</a> = <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><a class="code" href="class_json_1_1_value.html">Value</a>&amp;<span class="keyword">&gt;</span>(<a class="code" href="namespace_json.html#ab30055b4bbd82aecaca57ccecd63bbe6">kNullRef</a>);</div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="keyword">const</span> <a class="code" href="class_json_1_1_value.html">Value</a>&amp; <a class="code" href="class_json_1_1_value.html#aaa4ffd4e53967170c3e8c9abf682b5cd">Value::nullRef</a> = null;</div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">const</span> <a class="code" href="namespace_json.html#a08122e8005b706d982e48cca1e2119c7">Int</a> <a class="code" href="class_json_1_1_value.html#a7df8a39e2502b8c92a6a41e3d752d2c8">Value::minInt</a> = <a class="code" href="namespace_json.html#a08122e8005b706d982e48cca1e2119c7">Int</a>(~(<a class="code" href="namespace_json.html#a800fb90eb6ee8d5d62b600c06f87f7d4">UInt</a>(-1) / 2));</div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keyword">const</span> <a class="code" href="namespace_json.html#a08122e8005b706d982e48cca1e2119c7">Int</a> <a class="code" href="class_json_1_1_value.html#a978c799a8af3114ef7dab6fd0a310a1b">Value::maxInt</a> = <a class="code" href="namespace_json.html#a08122e8005b706d982e48cca1e2119c7">Int</a>(<a class="code" href="namespace_json.html#a800fb90eb6ee8d5d62b600c06f87f7d4">UInt</a>(-1) / 2);</div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="keyword">const</span> <a class="code" href="namespace_json.html#a800fb90eb6ee8d5d62b600c06f87f7d4">UInt</a> <a class="code" href="class_json_1_1_value.html#ac79e63ee68d3aa914bfd6988be669b87">Value::maxUInt</a> = <a class="code" href="namespace_json.html#a800fb90eb6ee8d5d62b600c06f87f7d4">UInt</a>(-1);</div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#if defined(JSON_HAS_INT64)</span></div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="keyword">const</span> <a class="code" href="namespace_json.html#aba149b1f7d796287667db6c02ff65f64">Int64</a> <a class="code" href="class_json_1_1_value.html#a815ef899bc312c93bc426511acfe31a7">Value::minInt64</a> = <a class="code" href="namespace_json.html#aba149b1f7d796287667db6c02ff65f64">Int64</a>(~(<a class="code" href="namespace_json.html#adabc96b7ce0a8791ec91ea1a3e22c107">UInt64</a>(-1) / 2));</div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="keyword">const</span> <a class="code" href="namespace_json.html#aba149b1f7d796287667db6c02ff65f64">Int64</a> <a class="code" href="class_json_1_1_value.html#a4492634870b8c5709ce967b384ac6006">Value::maxInt64</a> = <a class="code" href="namespace_json.html#aba149b1f7d796287667db6c02ff65f64">Int64</a>(<a class="code" href="namespace_json.html#adabc96b7ce0a8791ec91ea1a3e22c107">UInt64</a>(-1) / 2);</div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="keyword">const</span> <a class="code" href="namespace_json.html#adabc96b7ce0a8791ec91ea1a3e22c107">UInt64</a> <a class="code" href="class_json_1_1_value.html#ae1eb89c305c39516696ff305cffa01da">Value::maxUInt64</a> = <a class="code" href="namespace_json.html#adabc96b7ce0a8791ec91ea1a3e22c107">UInt64</a>(-1);</div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="comment">// The constant is hard-coded because some compiler have trouble</span></div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="comment">// converting Value::maxUInt64 to a double correctly (AIX/xlC).</span></div>
<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="comment">// Assumes that UInt64 is a 64 bits integer.</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="namespace_json.html#aecc0306aa526f25c5156f842182fb7fb">   49</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">double</span> <a class="code" href="namespace_json.html#aecc0306aa526f25c5156f842182fb7fb">maxUInt64AsDouble</a> = 18446744073709551615.0;</div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#endif // defined(JSON_HAS_INT64)</span></div>
<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="keyword">const</span> <a class="code" href="namespace_json.html#a218d880af853ce786cd985e82571d297">LargestInt</a> <a class="code" href="class_json_1_1_value.html#af91df130daa50dd43d2cd89e6ee67706">Value::minLargestInt</a> = <a class="code" href="namespace_json.html#a218d880af853ce786cd985e82571d297">LargestInt</a>(~(<a class="code" href="namespace_json.html#ae202ecad69725e23443f465e257456d0">LargestUInt</a>(-1) / 2));</div>
<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="keyword">const</span> <a class="code" href="namespace_json.html#a218d880af853ce786cd985e82571d297">LargestInt</a> <a class="code" href="class_json_1_1_value.html#a8b4977696f13296fa8755c7953fafb2f">Value::maxLargestInt</a> = <a class="code" href="namespace_json.html#a218d880af853ce786cd985e82571d297">LargestInt</a>(<a class="code" href="namespace_json.html#ae202ecad69725e23443f465e257456d0">LargestUInt</a>(-1) / 2);</div>
<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="keyword">const</span> <a class="code" href="namespace_json.html#ae202ecad69725e23443f465e257456d0">LargestUInt</a> <a class="code" href="class_json_1_1_value.html#a8ddb32d9d55fa5323ae5135639dc2e31">Value::maxLargestUInt</a> = <a class="code" href="namespace_json.html#ae202ecad69725e23443f465e257456d0">LargestUInt</a>(-1);</div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">#if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)</span></div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="namespace_json.html#aff0180507262a244de61b961178d7443">   57</a></span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespace_json.html#aff0180507262a244de61b961178d7443">InRange</a>(<span class="keywordtype">double</span> d, T min, U max) {</div>
<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;  <span class="keywordflow">return</span> d &gt;= min &amp;&amp; d &lt;= max;</div>
<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;}</div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="preprocessor">#else  // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)</span></div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">double</span> integerToDouble(<a class="code" href="namespace_json.html#adabc96b7ce0a8791ec91ea1a3e22c107">Json::UInt64</a> value) {</div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(<a class="code" href="namespace_json.html#aba149b1f7d796287667db6c02ff65f64">Int64</a>(value / 2)) * 2.0 + <a class="code" href="namespace_json.html#aba149b1f7d796287667db6c02ff65f64">Int64</a>(value &amp; 1);</div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;}</div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">double</span> integerToDouble(T value) {</div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(value);</div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;}</div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespace_json.html#aff0180507262a244de61b961178d7443">InRange</a>(<span class="keywordtype">double</span> d, T min, U max) {</div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;  <span class="keywordflow">return</span> d &gt;= integerToDouble(min) &amp;&amp; d &lt;= integerToDouble(max);</div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;}</div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="preprocessor">#endif // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)</span></div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="namespace_json.html#a678ac3a60cd70ec0fb4c9abfd40eb0c4">   82</a></span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">char</span>* <a class="code" href="namespace_json.html#a678ac3a60cd70ec0fb4c9abfd40eb0c4">duplicateStringValue</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* value,</div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                                         <span class="keywordtype">size_t</span> length) {</div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;  <span class="comment">// Avoid an integer overflow in the call to malloc below by limiting length</span></div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;  <span class="comment">// to a sane value.</span></div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;  <span class="keywordflow">if</span> (length &gt;= (<span class="keywordtype">size_t</span>)Value::maxInt)</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    length = Value::maxInt - 1;</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;  <span class="keywordtype">char</span>* newString = <span class="keyword">static_cast&lt;</span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(malloc(length + 1));</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;  <span class="keywordflow">if</span> (newString == NULL) {</div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    <a class="code" href="namespace_json.html#a97f039a107b3f6cf1c3edee50e978f76">throwRuntimeError</a>(</div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        <span class="stringliteral">&quot;in Json::Value::duplicateStringValue(): &quot;</span></div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        <span class="stringliteral">&quot;Failed to allocate string value buffer&quot;</span>);</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;  }</div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;  memcpy(newString, value, length);</div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;  newString[length] = 0;</div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;  <span class="keywordflow">return</span> newString;</div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;}</div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="comment">/* Record the length as a prefix.</span></div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="namespace_json.html#a9795a09a0141d1f12d307c4386aeaee6">  102</a></span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">char</span>* <a class="code" href="namespace_json.html#a9795a09a0141d1f12d307c4386aeaee6">duplicateAndPrefixStringValue</a>(</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* value,</div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length)</div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;{</div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;  <span class="comment">// Avoid an integer overflow in the call to malloc below by limiting length</span></div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;  <span class="comment">// to a sane value.</span></div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;  <a class="code" href="assertions_8h.html#ad7facdeeca0f495765e3b204c265eadb">JSON_ASSERT_MESSAGE</a>(length &lt;= (<span class="keywordtype">unsigned</span>)Value::maxInt - <span class="keyword">sizeof</span>(<span class="keywordtype">unsigned</span>) - 1U,</div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;                      <span class="stringliteral">&quot;in Json::Value::duplicateAndPrefixStringValue(): &quot;</span></div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;                      <span class="stringliteral">&quot;length too big for prefixing&quot;</span>);</div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;  <span class="keywordtype">unsigned</span> actualLength = length + <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(<span class="keyword">sizeof</span>(unsigned)) + 1U;</div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;  <span class="keywordtype">char</span>* newString = <span class="keyword">static_cast&lt;</span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(malloc(actualLength));</div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;  <span class="keywordflow">if</span> (newString == 0) {</div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <a class="code" href="namespace_json.html#a97f039a107b3f6cf1c3edee50e978f76">throwRuntimeError</a>(</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        <span class="stringliteral">&quot;in Json::Value::duplicateAndPrefixStringValue(): &quot;</span></div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        <span class="stringliteral">&quot;Failed to allocate string value buffer&quot;</span>);</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;  }</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;  *<span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">unsigned</span>*<span class="keyword">&gt;</span>(newString) = length;</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;  memcpy(newString + <span class="keyword">sizeof</span>(<span class="keywordtype">unsigned</span>), value, length);</div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;  newString[actualLength - 1U] = 0; <span class="comment">// to avoid buffer over-run accidents by users later</span></div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;  <span class="keywordflow">return</span> newString;</div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;}</div>
<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="namespace_json.html#aad8b4982c1acd164f541fba396ac9fb1">  123</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="namespace_json.html#aad8b4982c1acd164f541fba396ac9fb1">decodePrefixedString</a>(</div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    <span class="keywordtype">bool</span> isPrefixed, <span class="keywordtype">char</span> <span class="keyword">const</span>* prefixed,</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <span class="keywordtype">unsigned</span>* length, <span class="keywordtype">char</span> <span class="keyword">const</span>** value)</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;{</div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;  <span class="keywordflow">if</span> (!isPrefixed) {</div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    *length = <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(strlen(prefixed));</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    *value = prefixed;</div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;  } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    *length = *<span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">unsigned</span> const*<span class="keyword">&gt;</span>(prefixed);</div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    *value = prefixed + <span class="keyword">sizeof</span>(unsigned);</div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;  }</div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;}</div>
<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="namespace_json.html#acf8dd162c01e37846e129556c50e4037">  137</a></span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespace_json.html#acf8dd162c01e37846e129556c50e4037">releaseStringValue</a>(<span class="keywordtype">char</span>* value) { free(value); }</div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;</div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;} <span class="comment">// namespace Json</span></div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;<span class="comment">// //////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;<span class="comment">// //////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;<span class="comment">// //////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;<span class="comment">// ValueInternals...</span></div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;<span class="comment">// //////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;<span class="comment">// //////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;<span class="comment">// //////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;<span class="preprocessor">#if !defined(JSON_IS_AMALGAMATION)</span></div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div>
<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="json__valueiterator_8inl.html">json_valueiterator.inl</a>&quot;</span></div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;<span class="preprocessor">#endif // if !defined(JSON_IS_AMALGAMATION)</span></div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_json.html">Json</a> {</div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;</div>
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="class_json_1_1_exception.html#a4dd1b9f007bed842e3ef9883d965fe22">  155</a></span>&#160;<a class="code" href="class_json_1_1_exception.html#a4dd1b9f007bed842e3ef9883d965fe22">Exception::Exception</a>(std::string <span class="keyword">const</span>&amp; msg)</div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;  : msg_(msg)</div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;{}</div>
<div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="class_json_1_1_exception.html#af39b318bae8837a3a93f1e4cd689aa48">  158</a></span>&#160;<a class="code" href="class_json_1_1_exception.html#af39b318bae8837a3a93f1e4cd689aa48">Exception::~Exception</a>() throw()</div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;{}</div>
<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="class_json_1_1_exception.html#a93032b715e86fc37ad318c60eac4cad7">  160</a></span>&#160;<span class="keywordtype">char</span> <span class="keyword">const</span>* <a class="code" href="class_json_1_1_exception.html#a93032b715e86fc37ad318c60eac4cad7">Exception::what</a>() <span class="keyword">const</span> throw()</div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;{</div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_exception.html#a6457bfa979e1bba636ba34605203f6a0">msg_</a>.c_str();</div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;}</div>
<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="class_json_1_1_runtime_error.html#ae4f102d5c1efb773887efc8c7911e6f8">  164</a></span>&#160;<a class="code" href="class_json_1_1_runtime_error.html#ae4f102d5c1efb773887efc8c7911e6f8">RuntimeError::RuntimeError</a>(std::string <span class="keyword">const</span>&amp; msg)</div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;  : <a class="code" href="class_json_1_1_exception.html">Exception</a>(msg)</div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;{}</div>
<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="class_json_1_1_logic_error.html#ae8a834c790017a55df74c70b91f23329">  167</a></span>&#160;<a class="code" href="class_json_1_1_logic_error.html#ae8a834c790017a55df74c70b91f23329">LogicError::LogicError</a>(std::string <span class="keyword">const</span>&amp; msg)</div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;  : <a class="code" href="class_json_1_1_exception.html">Exception</a>(msg)</div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;{}</div>
<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="namespace_json.html#a97f039a107b3f6cf1c3edee50e978f76">  170</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespace_json.html#a97f039a107b3f6cf1c3edee50e978f76">throwRuntimeError</a>(std::string <span class="keyword">const</span>&amp; msg)</div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;{</div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;  <span class="keywordflow">throw</span> <a class="code" href="class_json_1_1_runtime_error.html">RuntimeError</a>(msg);</div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;}</div>
<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="namespace_json.html#a27613326e9e36bbfe04a905ac90caa91">  174</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespace_json.html#a27613326e9e36bbfe04a905ac90caa91">throwLogicError</a>(std::string <span class="keyword">const</span>&amp; msg)</div>
<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;{</div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;  <span class="keywordflow">throw</span> <a class="code" href="class_json_1_1_logic_error.html">LogicError</a>(msg);</div>
<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;}</div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;<span class="comment">// //////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;<span class="comment">// //////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<span class="comment">// //////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;<span class="comment">// class Value::CommentInfo</span></div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;<span class="comment">// //////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;<span class="comment">// //////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;<span class="comment">// //////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;</div>
<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;Value::CommentInfo::CommentInfo() : comment_(0) {}</div>
<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;</div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;Value::CommentInfo::~CommentInfo() {</div>
<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;  <span class="keywordflow">if</span> (comment_)</div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    <a class="code" href="namespace_json.html#acf8dd162c01e37846e129556c50e4037">releaseStringValue</a>(comment_);</div>
<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;}</div>
<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;</div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;<span class="keywordtype">void</span> Value::CommentInfo::setComment(<span class="keyword">const</span> <span class="keywordtype">char</span>* text, <span class="keywordtype">size_t</span> len) {</div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;  <span class="keywordflow">if</span> (comment_) {</div>
<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    <a class="code" href="namespace_json.html#acf8dd162c01e37846e129556c50e4037">releaseStringValue</a>(comment_);</div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    comment_ = 0;</div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;  }</div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;  <a class="code" href="assertions_8h.html#a188941dcc789ccb6539c3d6f41405582">JSON_ASSERT</a>(text != 0);</div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;  <a class="code" href="assertions_8h.html#ad7facdeeca0f495765e3b204c265eadb">JSON_ASSERT_MESSAGE</a>(</div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;      text[0] == <span class="charliteral">&#39;\0&#39;</span> || text[0] == <span class="charliteral">&#39;/&#39;</span>,</div>
<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;      <span class="stringliteral">&quot;in Json::Value::setComment(): Comments must start with /&quot;</span>);</div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;  <span class="comment">// It seems that /**/ style comments are acceptable as well.</span></div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;  comment_ = <a class="code" href="namespace_json.html#a678ac3a60cd70ec0fb4c9abfd40eb0c4">duplicateStringValue</a>(text, len);</div>
<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;}</div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;</div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;<span class="comment">// //////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;<span class="comment">// //////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;<span class="comment">// //////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;<span class="comment">// class Value::CZString</span></div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;<span class="comment">// //////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;<span class="comment">// //////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;<span class="comment">// //////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;</div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;<span class="comment">// Notes: policy_ indicates if the string was allocated when</span></div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;<span class="comment">// a string is stored.</span></div>
<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;</div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;Value::CZString::CZString(<a class="code" href="namespace_json.html#a8048e741f2177c3b5d9ede4a5b8c53c2">ArrayIndex</a> aindex) : cstr_(0), index_(aindex) {}</div>
<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;</div>
<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;Value::CZString::CZString(<span class="keywordtype">char</span> <span class="keyword">const</span>* str, <span class="keywordtype">unsigned</span> ulength, DuplicationPolicy allocate)</div>
<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    : cstr_(str)</div>
<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;{</div>
<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;  <span class="comment">// allocate != duplicate</span></div>
<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;  storage_.policy_ = allocate &amp; 0x3;</div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;  storage_.length_ = ulength &amp; 0x3FFFFFFF;</div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;}</div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;</div>
<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;Value::CZString::CZString(<span class="keyword">const</span> CZString&amp; other)</div>
<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    : cstr_(other.storage_.policy_ != noDuplication &amp;&amp; other.cstr_ != 0</div>
<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;                ? <a class="code" href="namespace_json.html#a678ac3a60cd70ec0fb4c9abfd40eb0c4">duplicateStringValue</a>(other.cstr_, other.storage_.length_)</div>
<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;                : other.cstr_)</div>
<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;{</div>
<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;  storage_.policy_ = (other.cstr_</div>
<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;                 ? (<span class="keyword">static_cast&lt;</span>DuplicationPolicy<span class="keyword">&gt;</span>(other.storage_.policy_) == noDuplication</div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;                     ? noDuplication : duplicate)</div>
<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;                 : <span class="keyword">static_cast&lt;</span>DuplicationPolicy<span class="keyword">&gt;</span>(other.storage_.policy_));</div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;  storage_.length_ = other.storage_.length_;</div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;}</div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;Value::CZString::~CZString() {</div>
<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;  <span class="keywordflow">if</span> (cstr_ &amp;&amp; storage_.policy_ == duplicate)</div>
<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    <a class="code" href="namespace_json.html#acf8dd162c01e37846e129556c50e4037">releaseStringValue</a>(const_cast&lt;char*&gt;(cstr_));</div>
<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;}</div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;</div>
<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="keywordtype">void</span> Value::CZString::swap(CZString&amp; other) {</div>
<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;  std::swap(cstr_, other.cstr_);</div>
<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;  std::swap(index_, other.index_);</div>
<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;}</div>
<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;</div>
<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;Value::CZString&amp; Value::CZString::operator=(CZString other) {</div>
<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;  swap(other);</div>
<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;}</div>
<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;</div>
<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;<span class="keywordtype">bool</span> Value::CZString::operator&lt;(<span class="keyword">const</span> CZString&amp; other)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;  <span class="keywordflow">if</span> (!cstr_) <span class="keywordflow">return</span> index_ &lt; other.index_;</div>
<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;  <span class="comment">//return strcmp(cstr_, other.cstr_) &lt; 0;</span></div>
<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;  <span class="comment">// Assume both are strings.</span></div>
<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;  <span class="keywordtype">unsigned</span> this_len = this-&gt;storage_.length_;</div>
<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;  <span class="keywordtype">unsigned</span> other_len = other.storage_.length_;</div>
<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;  <span class="keywordtype">unsigned</span> min_len = std::min(this_len, other_len);</div>
<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;  <span class="keywordtype">int</span> comp = memcmp(this-&gt;cstr_, other.cstr_, min_len);</div>
<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;  <span class="keywordflow">if</span> (comp &lt; 0) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;  <span class="keywordflow">if</span> (comp &gt; 0) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;  <span class="keywordflow">return</span> (this_len &lt; other_len);</div>
<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;}</div>
<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;</div>
<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;<span class="keywordtype">bool</span> Value::CZString::operator==(<span class="keyword">const</span> CZString&amp; other)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;  <span class="keywordflow">if</span> (!cstr_) <span class="keywordflow">return</span> index_ == other.index_;</div>
<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;  <span class="comment">//return strcmp(cstr_, other.cstr_) == 0;</span></div>
<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;  <span class="comment">// Assume both are strings.</span></div>
<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;  <span class="keywordtype">unsigned</span> this_len = this-&gt;storage_.length_;</div>
<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;  <span class="keywordtype">unsigned</span> other_len = other.storage_.length_;</div>
<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;  <span class="keywordflow">if</span> (this_len != other_len) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;  <span class="keywordtype">int</span> comp = memcmp(this-&gt;cstr_, other.cstr_, this_len);</div>
<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;  <span class="keywordflow">return</span> comp == 0;</div>
<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;}</div>
<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;</div>
<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;<a class="code" href="namespace_json.html#a8048e741f2177c3b5d9ede4a5b8c53c2">ArrayIndex</a> Value::CZString::index()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> index_; }</div>
<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;</div>
<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;<span class="comment">//const char* Value::CZString::c_str() const { return cstr_; }</span></div>
<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* Value::CZString::data()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> cstr_; }</div>
<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;<span class="keywordtype">unsigned</span> Value::CZString::length()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> storage_.length_; }</div>
<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;<span class="keywordtype">bool</span> Value::CZString::isStaticString()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> storage_.policy_ == noDuplication; }</div>
<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;</div>
<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;<span class="comment">// //////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;<span class="comment">// //////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;<span class="comment">// //////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;<span class="comment">// class Value::Value</span></div>
<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;<span class="comment">// //////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;<span class="comment">// //////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;<span class="comment">// //////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;</div>
<div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#ada6ba1369448fb0240bccc36efaa46f7">  298</a></span>&#160;Value::Value(<a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4e">ValueType</a> vtype) {</div>
<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;  initBasic(vtype);</div>
<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;  <span class="keywordflow">switch</span> (vtype) {</div>
<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>:</div>
<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae5a9d708d5c9e23ae9bf98898522512d">intValue</a>:</div>
<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eaea788d9a3bb00adc6d68d97d43e1ccd3">uintValue</a>:</div>
<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;    value_.int_ = 0;</div>
<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eab837c7b869c14d8be712deb45c9e490e">realValue</a>:</div>
<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;    value_.real_ = 0.0;</div>
<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea804ef857affea2d415843c73f261c258">stringValue</a>:</div>
<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;    value_.string_ = 0;</div>
<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">arrayValue</a>:</div>
<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">objectValue</a>:</div>
<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;    value_.map_ = <span class="keyword">new</span> ObjectValues();</div>
<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea14c30dbf4da86f7b809be299f671f7fd">booleanValue</a>:</div>
<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;    value_.bool_ = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;  <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;    <a class="code" href="json__value_8cpp.html#aa5e619e3e9388f6376a344dd8462c9cc">JSON_ASSERT_UNREACHABLE</a>;</div>
<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;  }</div>
<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;}</div>
<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;</div>
<div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a4744ae571fcf34f4b16a2257b3b3b585">  325</a></span>&#160;Value::Value(<a class="code" href="class_json_1_1_value.html#abdf7a7ff73eb130ffcab28504ffdb405">Int</a> value) {</div>
<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;  initBasic(<a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae5a9d708d5c9e23ae9bf98898522512d">intValue</a>);</div>
<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;  value_.int_ = value;</div>
<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;}</div>
<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;</div>
<div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#ae67a857b01286e3499a87e95be848d20">  330</a></span>&#160;Value::Value(<a class="code" href="class_json_1_1_value.html#a0933d59b45793ae4aade1757c322a98d">UInt</a> value) {</div>
<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;  initBasic(<a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eaea788d9a3bb00adc6d68d97d43e1ccd3">uintValue</a>);</div>
<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;  value_.uint_ = value;</div>
<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;}</div>
<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;<span class="preprocessor">#if defined(JSON_HAS_INT64)</span></div>
<div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#ab1cdc3d9a4d4cc03fa01439d43ceb1b5">  335</a></span>&#160;Value::Value(<a class="code" href="class_json_1_1_value.html#a1b86af9f85f0f1baa972c3319fa22695">Int64</a> value) {</div>
<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;  initBasic(<a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae5a9d708d5c9e23ae9bf98898522512d">intValue</a>);</div>
<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;  value_.int_ = value;</div>
<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;}</div>
<div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a8adda58d5ae17bf7ca6a53bab4a7b69c">  339</a></span>&#160;Value::Value(<a class="code" href="class_json_1_1_value.html#a8b62564be8c087c6d18de180ff4e13e3">UInt64</a> value) {</div>
<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;  initBasic(<a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eaea788d9a3bb00adc6d68d97d43e1ccd3">uintValue</a>);</div>
<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;  value_.uint_ = value;</div>
<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;}</div>
<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;<span class="preprocessor">#endif // defined(JSON_HAS_INT64)</span></div>
<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;</div>
<div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a32228cc84d83200cca8441451997996c">  345</a></span>&#160;Value::Value(<span class="keywordtype">double</span> value) {</div>
<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;  initBasic(<a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eab837c7b869c14d8be712deb45c9e490e">realValue</a>);</div>
<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;  value_.real_ = value;</div>
<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;}</div>
<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;</div>
<div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#ad87b849356816aca75995dd07302e49d">  350</a></span>&#160;Value::Value(<span class="keyword">const</span> <span class="keywordtype">char</span>* value) {</div>
<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;  initBasic(<a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea804ef857affea2d415843c73f261c258">stringValue</a>, <span class="keyword">true</span>);</div>
<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;  value_.string_ = <a class="code" href="namespace_json.html#a9795a09a0141d1f12d307c4386aeaee6">duplicateAndPrefixStringValue</a>(value, static_cast&lt;unsigned&gt;(strlen(value)));</div>
<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;}</div>
<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;</div>
<div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a39fa09d1902efbd4350e1236db920571">  355</a></span>&#160;Value::Value(<span class="keyword">const</span> <span class="keywordtype">char</span>* beginValue, <span class="keyword">const</span> <span class="keywordtype">char</span>* endValue) {</div>
<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;  initBasic(<a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea804ef857affea2d415843c73f261c258">stringValue</a>, <span class="keyword">true</span>);</div>
<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;  value_.string_ =</div>
<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;      <a class="code" href="namespace_json.html#a9795a09a0141d1f12d307c4386aeaee6">duplicateAndPrefixStringValue</a>(beginValue, static_cast&lt;unsigned&gt;(endValue - beginValue));</div>
<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;}</div>
<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;</div>
<div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#aa4501dd4edf3ce3d5145fc656f088b21">  361</a></span>&#160;Value::Value(<span class="keyword">const</span> std::string&amp; value) {</div>
<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;  initBasic(<a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea804ef857affea2d415843c73f261c258">stringValue</a>, <span class="keyword">true</span>);</div>
<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;  value_.string_ =</div>
<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;      <a class="code" href="namespace_json.html#a9795a09a0141d1f12d307c4386aeaee6">duplicateAndPrefixStringValue</a>(value.data(), <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(value.length()));</div>
<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;}</div>
<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;</div>
<div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a081830e95f88a37054da7e46c65b0766">  367</a></span>&#160;Value::Value(<span class="keyword">const</span> <a class="code" href="class_json_1_1_static_string.html">StaticString</a>&amp; value) {</div>
<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;  initBasic(<a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea804ef857affea2d415843c73f261c258">stringValue</a>);</div>
<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;  value_.string_ = <span class="keyword">const_cast&lt;</span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(value.<a class="code" href="class_json_1_1_static_string.html#ab86fc6a3183adf12fdba4b370acf1754">c_str</a>());</div>
<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;}</div>
<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;</div>
<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;<span class="preprocessor">#ifdef JSON_USE_CPPTL</span></div>
<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;Value::Value(<span class="keyword">const</span> CppTL::ConstString&amp; value) {</div>
<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;  initBasic(<a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea804ef857affea2d415843c73f261c258">stringValue</a>, <span class="keyword">true</span>);</div>
<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;  value_.string_ = <a class="code" href="namespace_json.html#a9795a09a0141d1f12d307c4386aeaee6">duplicateAndPrefixStringValue</a>(value, static_cast&lt;unsigned&gt;(value.length()));</div>
<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;}</div>
<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;</div>
<div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a350a31ea4a30d384994b0bc010b17495">  379</a></span>&#160;Value::Value(<span class="keywordtype">bool</span> value) {</div>
<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;  initBasic(<a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea14c30dbf4da86f7b809be299f671f7fd">booleanValue</a>);</div>
<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;  value_.bool_ = value;</div>
<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;}</div>
<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;</div>
<div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a436dfd3670f95fd665f680eba5cebcf0">  384</a></span>&#160;Value::Value(<a class="code" href="class_json_1_1_value.html">Value</a> <span class="keyword">const</span>&amp; other)</div>
<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;    : type_(other.type_), allocated_(false)</div>
<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;      ,</div>
<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;      comments_(0), start_(other.start_), limit_(other.limit_)</div>
<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;{</div>
<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;  <span class="keywordflow">switch</span> (type_) {</div>
<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>:</div>
<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae5a9d708d5c9e23ae9bf98898522512d">intValue</a>:</div>
<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eaea788d9a3bb00adc6d68d97d43e1ccd3">uintValue</a>:</div>
<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eab837c7b869c14d8be712deb45c9e490e">realValue</a>:</div>
<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea14c30dbf4da86f7b809be299f671f7fd">booleanValue</a>:</div>
<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;    value_ = other.value_;</div>
<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea804ef857affea2d415843c73f261c258">stringValue</a>:</div>
<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;    <span class="keywordflow">if</span> (other.value_.string_ &amp;&amp; other.allocated_) {</div>
<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;      <span class="keywordtype">unsigned</span> len;</div>
<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;      <span class="keywordtype">char</span> <span class="keyword">const</span>* str;</div>
<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;      <a class="code" href="namespace_json.html#aad8b4982c1acd164f541fba396ac9fb1">decodePrefixedString</a>(other.allocated_, other.value_.string_,</div>
<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;          &amp;len, &amp;str);</div>
<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;      value_.string_ = <a class="code" href="namespace_json.html#a9795a09a0141d1f12d307c4386aeaee6">duplicateAndPrefixStringValue</a>(str, len);</div>
<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;      allocated_ = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;      value_.string_ = other.value_.string_;</div>
<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;      allocated_ = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;    }</div>
<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">arrayValue</a>:</div>
<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">objectValue</a>:</div>
<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;    value_.map_ = <span class="keyword">new</span> ObjectValues(*other.value_.map_);</div>
<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;  <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;    <a class="code" href="json__value_8cpp.html#aa5e619e3e9388f6376a344dd8462c9cc">JSON_ASSERT_UNREACHABLE</a>;</div>
<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;  }</div>
<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;  <span class="keywordflow">if</span> (other.comments_) {</div>
<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;    comments_ = <span class="keyword">new</span> CommentInfo[<a class="code" href="namespace_json.html#a4fc417c23905b2ae9e2c47d197a45351abcbd3eb00417335e094e4a03379659b5">numberOfCommentPlacement</a>];</div>
<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> comment = 0; comment &lt; <a class="code" href="namespace_json.html#a4fc417c23905b2ae9e2c47d197a45351abcbd3eb00417335e094e4a03379659b5">numberOfCommentPlacement</a>; ++comment) {</div>
<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;      <span class="keyword">const</span> CommentInfo&amp; otherComment = other.comments_[comment];</div>
<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;      <span class="keywordflow">if</span> (otherComment.comment_)</div>
<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;        comments_[comment].setComment(</div>
<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;            otherComment.comment_, strlen(otherComment.comment_));</div>
<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    }</div>
<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;  }</div>
<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;}</div>
<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;</div>
<div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a287dea48da3912d02756735bf677b27b">  428</a></span>&#160;<a class="code" href="class_json_1_1_value.html#a287dea48da3912d02756735bf677b27b">Value::~Value</a>() {</div>
<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;  <span class="keywordflow">switch</span> (type_) {</div>
<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>:</div>
<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae5a9d708d5c9e23ae9bf98898522512d">intValue</a>:</div>
<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eaea788d9a3bb00adc6d68d97d43e1ccd3">uintValue</a>:</div>
<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eab837c7b869c14d8be712deb45c9e490e">realValue</a>:</div>
<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea14c30dbf4da86f7b809be299f671f7fd">booleanValue</a>:</div>
<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea804ef857affea2d415843c73f261c258">stringValue</a>:</div>
<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;    <span class="keywordflow">if</span> (allocated_)</div>
<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;      <a class="code" href="namespace_json.html#acf8dd162c01e37846e129556c50e4037">releaseStringValue</a>(value_.string_);</div>
<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">arrayValue</a>:</div>
<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">objectValue</a>:</div>
<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;    <span class="keyword">delete</span> value_.map_;</div>
<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;  <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;    <a class="code" href="json__value_8cpp.html#aa5e619e3e9388f6376a344dd8462c9cc">JSON_ASSERT_UNREACHABLE</a>;</div>
<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;  }</div>
<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;</div>
<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;  <span class="keywordflow">if</span> (comments_)</div>
<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;    <span class="keyword">delete</span>[] comments_;</div>
<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;}</div>
<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;</div>
<div class="line"><a name="l00452"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a795acb28772da4c5d85ae8f4af36c69f">  452</a></span>&#160;<a class="code" href="class_json_1_1_value.html">Value</a>&amp; <a class="code" href="class_json_1_1_value.html#a795acb28772da4c5d85ae8f4af36c69f">Value::operator=</a>(<a class="code" href="class_json_1_1_value.html">Value</a> other) {</div>
<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;  <a class="code" href="class_json_1_1_value.html#aab841120d78e296e1bc06a373345e822">swap</a>(other);</div>
<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;}</div>
<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;</div>
<div class="line"><a name="l00457"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a5263476047f20e2fc6de470e4de34fe5">  457</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_json_1_1_value.html#a5263476047f20e2fc6de470e4de34fe5">Value::swapPayload</a>(<a class="code" href="class_json_1_1_value.html">Value</a>&amp; other) {</div>
<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;  <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4e">ValueType</a> temp = type_;</div>
<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;  type_ = other.type_;</div>
<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;  other.type_ = temp;</div>
<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;  std::swap(value_, other.value_);</div>
<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;  <span class="keywordtype">int</span> temp2 = allocated_;</div>
<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;  allocated_ = other.allocated_;</div>
<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;  other.allocated_ = temp2 &amp; 0x1;</div>
<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;}</div>
<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;</div>
<div class="line"><a name="l00467"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#aab841120d78e296e1bc06a373345e822">  467</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_json_1_1_value.html#aab841120d78e296e1bc06a373345e822">Value::swap</a>(<a class="code" href="class_json_1_1_value.html">Value</a>&amp; other) {</div>
<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;  <a class="code" href="class_json_1_1_value.html#a5263476047f20e2fc6de470e4de34fe5">swapPayload</a>(other);</div>
<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;  std::swap(comments_, other.comments_);</div>
<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;  std::swap(start_, other.start_);</div>
<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;  std::swap(limit_, other.limit_);</div>
<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;}</div>
<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;</div>
<div class="line"><a name="l00474"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a695ef31fad36b4712918b3ff80158479">  474</a></span>&#160;<a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4e">ValueType</a> <a class="code" href="class_json_1_1_value.html#a695ef31fad36b4712918b3ff80158479">Value::type</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> type_; }</div>
<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;</div>
<div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a899214ed2253d3f4f061b922b0e622b5">  476</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="class_json_1_1_value.html#a899214ed2253d3f4f061b922b0e622b5">Value::compare</a>(<span class="keyword">const</span> <a class="code" href="class_json_1_1_value.html">Value</a>&amp; other)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;  <span class="keywordflow">if</span> (*<span class="keyword">this</span> &lt; other)</div>
<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;    <span class="keywordflow">return</span> -1;</div>
<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;  <span class="keywordflow">if</span> (*<span class="keyword">this</span> &gt; other)</div>
<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;    <span class="keywordflow">return</span> 1;</div>
<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;  <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;}</div>
<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;</div>
<div class="line"><a name="l00484"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#af0ad8aa027575c3277296458f3fb7b0a">  484</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#af0ad8aa027575c3277296458f3fb7b0a">Value::operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="class_json_1_1_value.html">Value</a>&amp; other)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;  <span class="keywordtype">int</span> typeDelta = type_ - other.type_;</div>
<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;  <span class="keywordflow">if</span> (typeDelta)</div>
<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;    <span class="keywordflow">return</span> typeDelta &lt; 0 ? <span class="keyword">true</span> : <span class="keyword">false</span>;</div>
<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;  <span class="keywordflow">switch</span> (type_) {</div>
<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>:</div>
<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae5a9d708d5c9e23ae9bf98898522512d">intValue</a>:</div>
<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;    <span class="keywordflow">return</span> value_.int_ &lt; other.value_.int_;</div>
<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eaea788d9a3bb00adc6d68d97d43e1ccd3">uintValue</a>:</div>
<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;    <span class="keywordflow">return</span> value_.uint_ &lt; other.value_.uint_;</div>
<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eab837c7b869c14d8be712deb45c9e490e">realValue</a>:</div>
<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;    <span class="keywordflow">return</span> value_.real_ &lt; other.value_.real_;</div>
<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea14c30dbf4da86f7b809be299f671f7fd">booleanValue</a>:</div>
<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;    <span class="keywordflow">return</span> value_.bool_ &lt; other.value_.bool_;</div>
<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea804ef857affea2d415843c73f261c258">stringValue</a>:</div>
<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;  {</div>
<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;    <span class="keywordflow">if</span> ((value_.string_ == 0) || (other.value_.string_ == 0)) {</div>
<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;      <span class="keywordflow">if</span> (other.value_.string_) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;      <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;    }</div>
<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;    <span class="keywordtype">unsigned</span> this_len;</div>
<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;    <span class="keywordtype">unsigned</span> other_len;</div>
<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;    <span class="keywordtype">char</span> <span class="keyword">const</span>* this_str;</div>
<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;    <span class="keywordtype">char</span> <span class="keyword">const</span>* other_str;</div>
<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;    <a class="code" href="namespace_json.html#aad8b4982c1acd164f541fba396ac9fb1">decodePrefixedString</a>(this-&gt;allocated_, this-&gt;value_.string_, &amp;this_len, &amp;this_str);</div>
<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;    <a class="code" href="namespace_json.html#aad8b4982c1acd164f541fba396ac9fb1">decodePrefixedString</a>(other.allocated_, other.value_.string_, &amp;other_len, &amp;other_str);</div>
<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;    <span class="keywordtype">unsigned</span> min_len = std::min(this_len, other_len);</div>
<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;    <span class="keywordtype">int</span> comp = memcmp(this_str, other_str, min_len);</div>
<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;    <span class="keywordflow">if</span> (comp &lt; 0) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;    <span class="keywordflow">if</span> (comp &gt; 0) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;    <span class="keywordflow">return</span> (this_len &lt; other_len);</div>
<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;  }</div>
<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">arrayValue</a>:</div>
<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">objectValue</a>: {</div>
<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;    <span class="keywordtype">int</span> delta = int(value_.map_-&gt;size() - other.value_.map_-&gt;size());</div>
<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;    <span class="keywordflow">if</span> (delta)</div>
<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;      <span class="keywordflow">return</span> delta &lt; 0;</div>
<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;    <span class="keywordflow">return</span> (*value_.map_) &lt; (*other.value_.map_);</div>
<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;  }</div>
<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;  <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;    <a class="code" href="json__value_8cpp.html#aa5e619e3e9388f6376a344dd8462c9cc">JSON_ASSERT_UNREACHABLE</a>;</div>
<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;  }</div>
<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// unreachable</span></div>
<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;}</div>
<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;</div>
<div class="line"><a name="l00530"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#afb99dd3628fe44244b32007f9b4f369a">  530</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#afb99dd3628fe44244b32007f9b4f369a">Value::operator&lt;=</a>(<span class="keyword">const</span> <a class="code" href="class_json_1_1_value.html">Value</a>&amp; other)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !(other &lt; *<span class="keyword">this</span>); }</div>
<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;</div>
<div class="line"><a name="l00532"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#acc13fc47d55abd6e2327b090b83d2911">  532</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#acc13fc47d55abd6e2327b090b83d2911">Value::operator&gt;=</a>(<span class="keyword">const</span> <a class="code" href="class_json_1_1_value.html">Value</a>&amp; other)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !(*<span class="keyword">this</span> &lt; other); }</div>
<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;</div>
<div class="line"><a name="l00534"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a3124a26067bdfde9571bc89527fc6931">  534</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#a3124a26067bdfde9571bc89527fc6931">Value::operator&gt;</a>(<span class="keyword">const</span> <a class="code" href="class_json_1_1_value.html">Value</a>&amp; other)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> other &lt; *<span class="keyword">this</span>; }</div>
<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;</div>
<div class="line"><a name="l00536"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a14363dda23a6ae2def9afd1590ae85d3">  536</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#a14363dda23a6ae2def9afd1590ae85d3">Value::operator==</a>(<span class="keyword">const</span> <a class="code" href="class_json_1_1_value.html">Value</a>&amp; other)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;  <span class="comment">// if ( type_ != other.type_ )</span></div>
<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;  <span class="comment">// GCC 2.95.3 says:</span></div>
<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;  <span class="comment">// attempt to take address of bit-field structure member `Json::Value::type_&#39;</span></div>
<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;  <span class="comment">// Beats me, but a temp solves the problem.</span></div>
<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;  <span class="keywordtype">int</span> temp = other.type_;</div>
<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;  <span class="keywordflow">if</span> (type_ != temp)</div>
<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;  <span class="keywordflow">switch</span> (type_) {</div>
<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>:</div>
<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae5a9d708d5c9e23ae9bf98898522512d">intValue</a>:</div>
<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;    <span class="keywordflow">return</span> value_.int_ == other.value_.int_;</div>
<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eaea788d9a3bb00adc6d68d97d43e1ccd3">uintValue</a>:</div>
<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;    <span class="keywordflow">return</span> value_.uint_ == other.value_.uint_;</div>
<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eab837c7b869c14d8be712deb45c9e490e">realValue</a>:</div>
<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;    <span class="keywordflow">return</span> value_.real_ == other.value_.real_;</div>
<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea14c30dbf4da86f7b809be299f671f7fd">booleanValue</a>:</div>
<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;    <span class="keywordflow">return</span> value_.bool_ == other.value_.bool_;</div>
<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea804ef857affea2d415843c73f261c258">stringValue</a>:</div>
<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;  {</div>
<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;    <span class="keywordflow">if</span> ((value_.string_ == 0) || (other.value_.string_ == 0)) {</div>
<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;      <span class="keywordflow">return</span> (value_.string_ == other.value_.string_);</div>
<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;    }</div>
<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;    <span class="keywordtype">unsigned</span> this_len;</div>
<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;    <span class="keywordtype">unsigned</span> other_len;</div>
<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;    <span class="keywordtype">char</span> <span class="keyword">const</span>* this_str;</div>
<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;    <span class="keywordtype">char</span> <span class="keyword">const</span>* other_str;</div>
<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;    <a class="code" href="namespace_json.html#aad8b4982c1acd164f541fba396ac9fb1">decodePrefixedString</a>(this-&gt;allocated_, this-&gt;value_.string_, &amp;this_len, &amp;this_str);</div>
<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;    <a class="code" href="namespace_json.html#aad8b4982c1acd164f541fba396ac9fb1">decodePrefixedString</a>(other.allocated_, other.value_.string_, &amp;other_len, &amp;other_str);</div>
<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;    <span class="keywordflow">if</span> (this_len != other_len) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;    <span class="keywordtype">int</span> comp = memcmp(this_str, other_str, this_len);</div>
<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;    <span class="keywordflow">return</span> comp == 0;</div>
<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;  }</div>
<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">arrayValue</a>:</div>
<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">objectValue</a>:</div>
<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;    <span class="keywordflow">return</span> value_.map_-&gt;size() == other.value_.map_-&gt;size() &amp;&amp;</div>
<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;           (*value_.map_) == (*other.value_.map_);</div>
<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;  <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;    <a class="code" href="json__value_8cpp.html#aa5e619e3e9388f6376a344dd8462c9cc">JSON_ASSERT_UNREACHABLE</a>;</div>
<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;  }</div>
<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// unreachable</span></div>
<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;}</div>
<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;</div>
<div class="line"><a name="l00580"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#ad0f12d2a4ab74bbef08a05504b2cb81d">  580</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#ad0f12d2a4ab74bbef08a05504b2cb81d">Value::operator!=</a>(<span class="keyword">const</span> <a class="code" href="class_json_1_1_value.html">Value</a>&amp; other)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !(*<span class="keyword">this</span> == other); }</div>
<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;</div>
<div class="line"><a name="l00582"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a5b7da48b163bcec63b1424f1608b7da6">  582</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_json_1_1_value.html#a5b7da48b163bcec63b1424f1608b7da6">Value::asCString</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;  <a class="code" href="assertions_8h.html#ad7facdeeca0f495765e3b204c265eadb">JSON_ASSERT_MESSAGE</a>(type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea804ef857affea2d415843c73f261c258">stringValue</a>,</div>
<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;                      <span class="stringliteral">&quot;in Json::Value::asCString(): requires stringValue&quot;</span>);</div>
<div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;  <span class="keywordflow">if</span> (value_.string_ == 0) <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;  <span class="keywordtype">unsigned</span> this_len;</div>
<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;  <span class="keywordtype">char</span> <span class="keyword">const</span>* this_str;</div>
<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;  <a class="code" href="namespace_json.html#aad8b4982c1acd164f541fba396ac9fb1">decodePrefixedString</a>(this-&gt;allocated_, this-&gt;value_.string_, &amp;this_len, &amp;this_str);</div>
<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;  <span class="keywordflow">return</span> this_str;</div>
<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;}</div>
<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;</div>
<div class="line"><a name="l00592"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a1e0263113ae247a632afac43ebc4149f">  592</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#a1e0263113ae247a632afac43ebc4149f">Value::getString</a>(<span class="keywordtype">char</span> <span class="keyword">const</span>** str, <span class="keywordtype">char</span> <span class="keyword">const</span>** cend)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;  <span class="keywordflow">if</span> (type_ != <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea804ef857affea2d415843c73f261c258">stringValue</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;  <span class="keywordflow">if</span> (value_.string_ == 0) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;  <span class="keywordtype">unsigned</span> length;</div>
<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;  <a class="code" href="namespace_json.html#aad8b4982c1acd164f541fba396ac9fb1">decodePrefixedString</a>(this-&gt;allocated_, this-&gt;value_.string_, &amp;length, str);</div>
<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;  *cend = *str + length;</div>
<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;}</div>
<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;</div>
<div class="line"><a name="l00601"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a03ee3d5df576640c93ba683f140828bd">  601</a></span>&#160;std::string <a class="code" href="class_json_1_1_value.html#a03ee3d5df576640c93ba683f140828bd">Value::asString</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;  <span class="keywordflow">switch</span> (type_) {</div>
<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>:</div>
<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;    <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div>
<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea804ef857affea2d415843c73f261c258">stringValue</a>:</div>
<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;  {</div>
<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;    <span class="keywordflow">if</span> (value_.string_ == 0) <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div>
<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;    <span class="keywordtype">unsigned</span> this_len;</div>
<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;    <span class="keywordtype">char</span> <span class="keyword">const</span>* this_str;</div>
<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;    <a class="code" href="namespace_json.html#aad8b4982c1acd164f541fba396ac9fb1">decodePrefixedString</a>(this-&gt;allocated_, this-&gt;value_.string_, &amp;this_len, &amp;this_str);</div>
<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;    <span class="keywordflow">return</span> std::string(this_str, this_len);</div>
<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;  }</div>
<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea14c30dbf4da86f7b809be299f671f7fd">booleanValue</a>:</div>
<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;    <span class="keywordflow">return</span> value_.bool_ ? <span class="stringliteral">&quot;true&quot;</span> : <span class="stringliteral">&quot;false&quot;</span>;</div>
<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae5a9d708d5c9e23ae9bf98898522512d">intValue</a>:</div>
<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespace_json.html#a5d3eba6789f9a9c1ab563ff8b4a5090f">valueToString</a>(value_.int_);</div>
<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eaea788d9a3bb00adc6d68d97d43e1ccd3">uintValue</a>:</div>
<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespace_json.html#a5d3eba6789f9a9c1ab563ff8b4a5090f">valueToString</a>(value_.uint_);</div>
<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eab837c7b869c14d8be712deb45c9e490e">realValue</a>:</div>
<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespace_json.html#a5d3eba6789f9a9c1ab563ff8b4a5090f">valueToString</a>(value_.real_);</div>
<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;  <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;    <a class="code" href="assertions_8h.html#a67007439f94bc6afc465923f56147ba1">JSON_FAIL_MESSAGE</a>(<span class="stringliteral">&quot;Type is not convertible to string&quot;</span>);</div>
<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;  }</div>
<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;}</div>
<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;</div>
<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;<span class="preprocessor">#ifdef JSON_USE_CPPTL</span></div>
<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;CppTL::ConstString Value::asConstString()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;  <span class="keywordtype">unsigned</span> len;</div>
<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;  <span class="keywordtype">char</span> <span class="keyword">const</span>* str;</div>
<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;  <a class="code" href="namespace_json.html#aad8b4982c1acd164f541fba396ac9fb1">decodePrefixedString</a>(allocated_, value_.string_,</div>
<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;      &amp;len, &amp;str);</div>
<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;  <span class="keywordflow">return</span> CppTL::ConstString(str, len);</div>
<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;}</div>
<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;</div>
<div class="line"><a name="l00636"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#ac786e35b860b1d700cb3d3e56dd6a235">  636</a></span>&#160;<a class="code" href="class_json_1_1_value.html#abdf7a7ff73eb130ffcab28504ffdb405">Value::Int</a> <a class="code" href="class_json_1_1_value.html#ac786e35b860b1d700cb3d3e56dd6a235">Value::asInt</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;  <span class="keywordflow">switch</span> (type_) {</div>
<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae5a9d708d5c9e23ae9bf98898522512d">intValue</a>:</div>
<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;    <a class="code" href="assertions_8h.html#ad7facdeeca0f495765e3b204c265eadb">JSON_ASSERT_MESSAGE</a>(<a class="code" href="class_json_1_1_value.html#ab0df4746d6787d2ce1db1a156c118f14">isInt</a>(), <span class="stringliteral">&quot;LargestInt out of Int range&quot;</span>);</div>
<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#abdf7a7ff73eb130ffcab28504ffdb405">Int</a>(value_.int_);</div>
<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eaea788d9a3bb00adc6d68d97d43e1ccd3">uintValue</a>:</div>
<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;    <a class="code" href="assertions_8h.html#ad7facdeeca0f495765e3b204c265eadb">JSON_ASSERT_MESSAGE</a>(<a class="code" href="class_json_1_1_value.html#ab0df4746d6787d2ce1db1a156c118f14">isInt</a>(), <span class="stringliteral">&quot;LargestUInt out of Int range&quot;</span>);</div>
<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#abdf7a7ff73eb130ffcab28504ffdb405">Int</a>(value_.uint_);</div>
<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eab837c7b869c14d8be712deb45c9e490e">realValue</a>:</div>
<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;    <a class="code" href="assertions_8h.html#ad7facdeeca0f495765e3b204c265eadb">JSON_ASSERT_MESSAGE</a>(<a class="code" href="namespace_json.html#aff0180507262a244de61b961178d7443">InRange</a>(value_.real_, <a class="code" href="class_json_1_1_value.html#a7df8a39e2502b8c92a6a41e3d752d2c8">minInt</a>, <a class="code" href="class_json_1_1_value.html#a978c799a8af3114ef7dab6fd0a310a1b">maxInt</a>),</div>
<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;                        <span class="stringliteral">&quot;double out of Int range&quot;</span>);</div>
<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#abdf7a7ff73eb130ffcab28504ffdb405">Int</a>(value_.real_);</div>
<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>:</div>
<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;    <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea14c30dbf4da86f7b809be299f671f7fd">booleanValue</a>:</div>
<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;    <span class="keywordflow">return</span> value_.bool_ ? 1 : 0;</div>
<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;  <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;  }</div>
<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;  <a class="code" href="assertions_8h.html#a67007439f94bc6afc465923f56147ba1">JSON_FAIL_MESSAGE</a>(<span class="stringliteral">&quot;Value is not convertible to Int.&quot;</span>);</div>
<div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;}</div>
<div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;</div>
<div class="line"><a name="l00658"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a2019d1bd296b89356c1b0da5970c918c">  658</a></span>&#160;<a class="code" href="class_json_1_1_value.html#a0933d59b45793ae4aade1757c322a98d">Value::UInt</a> <a class="code" href="class_json_1_1_value.html#a2019d1bd296b89356c1b0da5970c918c">Value::asUInt</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;  <span class="keywordflow">switch</span> (type_) {</div>
<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae5a9d708d5c9e23ae9bf98898522512d">intValue</a>:</div>
<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;    <a class="code" href="assertions_8h.html#ad7facdeeca0f495765e3b204c265eadb">JSON_ASSERT_MESSAGE</a>(<a class="code" href="class_json_1_1_value.html#ae814ca1796fe2d43ac09898b70213989">isUInt</a>(), <span class="stringliteral">&quot;LargestInt out of UInt range&quot;</span>);</div>
<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#a0933d59b45793ae4aade1757c322a98d">UInt</a>(value_.int_);</div>
<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eaea788d9a3bb00adc6d68d97d43e1ccd3">uintValue</a>:</div>
<div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;    <a class="code" href="assertions_8h.html#ad7facdeeca0f495765e3b204c265eadb">JSON_ASSERT_MESSAGE</a>(<a class="code" href="class_json_1_1_value.html#ae814ca1796fe2d43ac09898b70213989">isUInt</a>(), <span class="stringliteral">&quot;LargestUInt out of UInt range&quot;</span>);</div>
<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#a0933d59b45793ae4aade1757c322a98d">UInt</a>(value_.uint_);</div>
<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eab837c7b869c14d8be712deb45c9e490e">realValue</a>:</div>
<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;    <a class="code" href="assertions_8h.html#ad7facdeeca0f495765e3b204c265eadb">JSON_ASSERT_MESSAGE</a>(<a class="code" href="namespace_json.html#aff0180507262a244de61b961178d7443">InRange</a>(value_.real_, 0, <a class="code" href="class_json_1_1_value.html#ac79e63ee68d3aa914bfd6988be669b87">maxUInt</a>),</div>
<div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;                        <span class="stringliteral">&quot;double out of UInt range&quot;</span>);</div>
<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#a0933d59b45793ae4aade1757c322a98d">UInt</a>(value_.real_);</div>
<div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>:</div>
<div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;    <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea14c30dbf4da86f7b809be299f671f7fd">booleanValue</a>:</div>
<div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;    <span class="keywordflow">return</span> value_.bool_ ? 1 : 0;</div>
<div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;  <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;  }</div>
<div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;  <a class="code" href="assertions_8h.html#a67007439f94bc6afc465923f56147ba1">JSON_FAIL_MESSAGE</a>(<span class="stringliteral">&quot;Value is not convertible to UInt.&quot;</span>);</div>
<div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;}</div>
<div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;</div>
<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;<span class="preprocessor">#if defined(JSON_HAS_INT64)</span></div>
<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;</div>
<div class="line"><a name="l00682"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a7f739b55aef060f4ab6360bfe1912b77">  682</a></span>&#160;<a class="code" href="class_json_1_1_value.html#a1b86af9f85f0f1baa972c3319fa22695">Value::Int64</a> <a class="code" href="class_json_1_1_value.html#a7f739b55aef060f4ab6360bfe1912b77">Value::asInt64</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;  <span class="keywordflow">switch</span> (type_) {</div>
<div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae5a9d708d5c9e23ae9bf98898522512d">intValue</a>:</div>
<div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#a1b86af9f85f0f1baa972c3319fa22695">Int64</a>(value_.int_);</div>
<div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eaea788d9a3bb00adc6d68d97d43e1ccd3">uintValue</a>:</div>
<div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;    <a class="code" href="assertions_8h.html#ad7facdeeca0f495765e3b204c265eadb">JSON_ASSERT_MESSAGE</a>(<a class="code" href="class_json_1_1_value.html#aba89690e5fd72d0f7121a30013470423">isInt64</a>(), <span class="stringliteral">&quot;LargestUInt out of Int64 range&quot;</span>);</div>
<div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#a1b86af9f85f0f1baa972c3319fa22695">Int64</a>(value_.uint_);</div>
<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eab837c7b869c14d8be712deb45c9e490e">realValue</a>:</div>
<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;    <a class="code" href="assertions_8h.html#ad7facdeeca0f495765e3b204c265eadb">JSON_ASSERT_MESSAGE</a>(<a class="code" href="namespace_json.html#aff0180507262a244de61b961178d7443">InRange</a>(value_.real_, <a class="code" href="class_json_1_1_value.html#a815ef899bc312c93bc426511acfe31a7">minInt64</a>, <a class="code" href="class_json_1_1_value.html#a4492634870b8c5709ce967b384ac6006">maxInt64</a>),</div>
<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;                        <span class="stringliteral">&quot;double out of Int64 range&quot;</span>);</div>
<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#a1b86af9f85f0f1baa972c3319fa22695">Int64</a>(value_.real_);</div>
<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>:</div>
<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;    <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea14c30dbf4da86f7b809be299f671f7fd">booleanValue</a>:</div>
<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;    <span class="keywordflow">return</span> value_.bool_ ? 1 : 0;</div>
<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;  <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;  }</div>
<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;  <a class="code" href="assertions_8h.html#a67007439f94bc6afc465923f56147ba1">JSON_FAIL_MESSAGE</a>(<span class="stringliteral">&quot;Value is not convertible to Int64.&quot;</span>);</div>
<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;}</div>
<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;</div>
<div class="line"><a name="l00703"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a65acdab039f60ff0da15e622f2e17739">  703</a></span>&#160;<a class="code" href="class_json_1_1_value.html#a8b62564be8c087c6d18de180ff4e13e3">Value::UInt64</a> <a class="code" href="class_json_1_1_value.html#a65acdab039f60ff0da15e622f2e17739">Value::asUInt64</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;  <span class="keywordflow">switch</span> (type_) {</div>
<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae5a9d708d5c9e23ae9bf98898522512d">intValue</a>:</div>
<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;    <a class="code" href="assertions_8h.html#ad7facdeeca0f495765e3b204c265eadb">JSON_ASSERT_MESSAGE</a>(<a class="code" href="class_json_1_1_value.html#aa35efece2a6cba4d988d7d5b54db2fb8">isUInt64</a>(), <span class="stringliteral">&quot;LargestInt out of UInt64 range&quot;</span>);</div>
<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#a8b62564be8c087c6d18de180ff4e13e3">UInt64</a>(value_.int_);</div>
<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eaea788d9a3bb00adc6d68d97d43e1ccd3">uintValue</a>:</div>
<div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#a8b62564be8c087c6d18de180ff4e13e3">UInt64</a>(value_.uint_);</div>
<div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eab837c7b869c14d8be712deb45c9e490e">realValue</a>:</div>
<div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;    <a class="code" href="assertions_8h.html#ad7facdeeca0f495765e3b204c265eadb">JSON_ASSERT_MESSAGE</a>(<a class="code" href="namespace_json.html#aff0180507262a244de61b961178d7443">InRange</a>(value_.real_, 0, <a class="code" href="class_json_1_1_value.html#ae1eb89c305c39516696ff305cffa01da">maxUInt64</a>),</div>
<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;                        <span class="stringliteral">&quot;double out of UInt64 range&quot;</span>);</div>
<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#a8b62564be8c087c6d18de180ff4e13e3">UInt64</a>(value_.real_);</div>
<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>:</div>
<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;    <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea14c30dbf4da86f7b809be299f671f7fd">booleanValue</a>:</div>
<div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;    <span class="keywordflow">return</span> value_.bool_ ? 1 : 0;</div>
<div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;  <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;  }</div>
<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;  <a class="code" href="assertions_8h.html#a67007439f94bc6afc465923f56147ba1">JSON_FAIL_MESSAGE</a>(<span class="stringliteral">&quot;Value is not convertible to UInt64.&quot;</span>);</div>
<div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;}</div>
<div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;<span class="preprocessor">#endif // if defined(JSON_HAS_INT64)</span></div>
<div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;</div>
<div class="line"><a name="l00725"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a3786bb100c5cf9a98eb6d13784968956">  725</a></span>&#160;<a class="code" href="class_json_1_1_value.html#a1cbb82642ed05109b9833e49f042ece7">LargestInt</a> <a class="code" href="class_json_1_1_value.html#a3786bb100c5cf9a98eb6d13784968956">Value::asLargestInt</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;<span class="preprocessor">#if defined(JSON_NO_INT64)</span></div>
<div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#ac786e35b860b1d700cb3d3e56dd6a235">asInt</a>();</div>
<div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#a7f739b55aef060f4ab6360bfe1912b77">asInt64</a>();</div>
<div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;}</div>
<div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;</div>
<div class="line"><a name="l00733"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a692b88345a745b2f89ca5d94b52e94d4">  733</a></span>&#160;<a class="code" href="class_json_1_1_value.html#a6682a3684d635e03fc06ba229fa24eec">LargestUInt</a> <a class="code" href="class_json_1_1_value.html#a692b88345a745b2f89ca5d94b52e94d4">Value::asLargestUInt</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;<span class="preprocessor">#if defined(JSON_NO_INT64)</span></div>
<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#a2019d1bd296b89356c1b0da5970c918c">asUInt</a>();</div>
<div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#a65acdab039f60ff0da15e622f2e17739">asUInt64</a>();</div>
<div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;}</div>
<div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;</div>
<div class="line"><a name="l00741"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a33434ed1c0217a34d04c95fa5342fd37">  741</a></span>&#160;<span class="keywordtype">double</span> <a class="code" href="class_json_1_1_value.html#a33434ed1c0217a34d04c95fa5342fd37">Value::asDouble</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;  <span class="keywordflow">switch</span> (type_) {</div>
<div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae5a9d708d5c9e23ae9bf98898522512d">intValue</a>:</div>
<div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(value_.int_);</div>
<div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eaea788d9a3bb00adc6d68d97d43e1ccd3">uintValue</a>:</div>
<div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;<span class="preprocessor">#if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)</span></div>
<div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(value_.uint_);</div>
<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;<span class="preprocessor">#else  // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)</span></div>
<div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;    <span class="keywordflow">return</span> integerToDouble(value_.uint_);</div>
<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;<span class="preprocessor">#endif // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)</span></div>
<div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eab837c7b869c14d8be712deb45c9e490e">realValue</a>:</div>
<div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;    <span class="keywordflow">return</span> value_.real_;</div>
<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>:</div>
<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;    <span class="keywordflow">return</span> 0.0;</div>
<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea14c30dbf4da86f7b809be299f671f7fd">booleanValue</a>:</div>
<div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;    <span class="keywordflow">return</span> value_.bool_ ? 1.0 : 0.0;</div>
<div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;  <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;  }</div>
<div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;  <a class="code" href="assertions_8h.html#a67007439f94bc6afc465923f56147ba1">JSON_FAIL_MESSAGE</a>(<span class="stringliteral">&quot;Value is not convertible to double.&quot;</span>);</div>
<div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;}</div>
<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;</div>
<div class="line"><a name="l00763"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#ac2128d7080499daf8c5b1c71da243f63">  763</a></span>&#160;<span class="keywordtype">float</span> <a class="code" href="class_json_1_1_value.html#ac2128d7080499daf8c5b1c71da243f63">Value::asFloat</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;  <span class="keywordflow">switch</span> (type_) {</div>
<div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae5a9d708d5c9e23ae9bf98898522512d">intValue</a>:</div>
<div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(value_.int_);</div>
<div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eaea788d9a3bb00adc6d68d97d43e1ccd3">uintValue</a>:</div>
<div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;<span class="preprocessor">#if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)</span></div>
<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(value_.uint_);</div>
<div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;<span class="preprocessor">#else  // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)</span></div>
<div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;    <span class="keywordflow">return</span> integerToDouble(value_.uint_);</div>
<div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;<span class="preprocessor">#endif // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)</span></div>
<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eab837c7b869c14d8be712deb45c9e490e">realValue</a>:</div>
<div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(value_.real_);</div>
<div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>:</div>
<div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;    <span class="keywordflow">return</span> 0.0;</div>
<div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea14c30dbf4da86f7b809be299f671f7fd">booleanValue</a>:</div>
<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;    <span class="keywordflow">return</span> value_.bool_ ? 1.0f : 0.0f;</div>
<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;  <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;  }</div>
<div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;  <a class="code" href="assertions_8h.html#a67007439f94bc6afc465923f56147ba1">JSON_FAIL_MESSAGE</a>(<span class="stringliteral">&quot;Value is not convertible to float.&quot;</span>);</div>
<div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;}</div>
<div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;</div>
<div class="line"><a name="l00785"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a7402c797285c020566c3db5f8ae4e940">  785</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#a7402c797285c020566c3db5f8ae4e940">Value::asBool</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;  <span class="keywordflow">switch</span> (type_) {</div>
<div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea14c30dbf4da86f7b809be299f671f7fd">booleanValue</a>:</div>
<div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;    <span class="keywordflow">return</span> value_.bool_;</div>
<div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>:</div>
<div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae5a9d708d5c9e23ae9bf98898522512d">intValue</a>:</div>
<div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;    <span class="keywordflow">return</span> value_.int_ ? <span class="keyword">true</span> : <span class="keyword">false</span>;</div>
<div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eaea788d9a3bb00adc6d68d97d43e1ccd3">uintValue</a>:</div>
<div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;    <span class="keywordflow">return</span> value_.uint_ ? <span class="keyword">true</span> : <span class="keyword">false</span>;</div>
<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eab837c7b869c14d8be712deb45c9e490e">realValue</a>:</div>
<div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;    <span class="comment">// This is kind of strange. Not recommended.</span></div>
<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;    <span class="keywordflow">return</span> (value_.real_ != 0.0) ? <span class="keyword">true</span> : <span class="keyword">false</span>;</div>
<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;  <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;  }</div>
<div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;  <a class="code" href="assertions_8h.html#a67007439f94bc6afc465923f56147ba1">JSON_FAIL_MESSAGE</a>(<span class="stringliteral">&quot;Value is not convertible to bool.&quot;</span>);</div>
<div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;}</div>
<div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;</div>
<div class="line"><a name="l00804"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a7ec153803631a27abf58cba2bb1af70c">  804</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#a7ec153803631a27abf58cba2bb1af70c">Value::isConvertibleTo</a>(<a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4e">ValueType</a> other)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;  <span class="keywordflow">switch</span> (other) {</div>
<div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>:</div>
<div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;    <span class="keywordflow">return</span> (<a class="code" href="class_json_1_1_value.html#a8ce848900e2e8fa23a41fcc2c1409fab">isNumeric</a>() &amp;&amp; <a class="code" href="class_json_1_1_value.html#a33434ed1c0217a34d04c95fa5342fd37">asDouble</a>() == 0.0) ||</div>
<div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;           (type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea14c30dbf4da86f7b809be299f671f7fd">booleanValue</a> &amp;&amp; value_.bool_ == <span class="keyword">false</span>) ||</div>
<div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;           (type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea804ef857affea2d415843c73f261c258">stringValue</a> &amp;&amp; <a class="code" href="class_json_1_1_value.html#a03ee3d5df576640c93ba683f140828bd">asString</a>() == <span class="stringliteral">&quot;&quot;</span>) ||</div>
<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;           (type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">arrayValue</a> &amp;&amp; value_.map_-&gt;size() == 0) ||</div>
<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;           (type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">objectValue</a> &amp;&amp; value_.map_-&gt;size() == 0) ||</div>
<div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;           type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>;</div>
<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae5a9d708d5c9e23ae9bf98898522512d">intValue</a>:</div>
<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#ab0df4746d6787d2ce1db1a156c118f14">isInt</a>() ||</div>
<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;           (type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eab837c7b869c14d8be712deb45c9e490e">realValue</a> &amp;&amp; <a class="code" href="namespace_json.html#aff0180507262a244de61b961178d7443">InRange</a>(value_.real_, <a class="code" href="class_json_1_1_value.html#a7df8a39e2502b8c92a6a41e3d752d2c8">minInt</a>, <a class="code" href="class_json_1_1_value.html#a978c799a8af3114ef7dab6fd0a310a1b">maxInt</a>)) ||</div>
<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;           type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea14c30dbf4da86f7b809be299f671f7fd">booleanValue</a> || type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>;</div>
<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eaea788d9a3bb00adc6d68d97d43e1ccd3">uintValue</a>:</div>
<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#ae814ca1796fe2d43ac09898b70213989">isUInt</a>() ||</div>
<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;           (type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eab837c7b869c14d8be712deb45c9e490e">realValue</a> &amp;&amp; <a class="code" href="namespace_json.html#aff0180507262a244de61b961178d7443">InRange</a>(value_.real_, 0, <a class="code" href="class_json_1_1_value.html#ac79e63ee68d3aa914bfd6988be669b87">maxUInt</a>)) ||</div>
<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;           type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea14c30dbf4da86f7b809be299f671f7fd">booleanValue</a> || type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>;</div>
<div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eab837c7b869c14d8be712deb45c9e490e">realValue</a>:</div>
<div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#a8ce848900e2e8fa23a41fcc2c1409fab">isNumeric</a>() || type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea14c30dbf4da86f7b809be299f671f7fd">booleanValue</a> || type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>;</div>
<div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea14c30dbf4da86f7b809be299f671f7fd">booleanValue</a>:</div>
<div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#a8ce848900e2e8fa23a41fcc2c1409fab">isNumeric</a>() || type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea14c30dbf4da86f7b809be299f671f7fd">booleanValue</a> || type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>;</div>
<div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea804ef857affea2d415843c73f261c258">stringValue</a>:</div>
<div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#a8ce848900e2e8fa23a41fcc2c1409fab">isNumeric</a>() || type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea14c30dbf4da86f7b809be299f671f7fd">booleanValue</a> || type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea804ef857affea2d415843c73f261c258">stringValue</a> ||</div>
<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;           type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>;</div>
<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">arrayValue</a>:</div>
<div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;    <span class="keywordflow">return</span> type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">arrayValue</a> || type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>;</div>
<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">objectValue</a>:</div>
<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;    <span class="keywordflow">return</span> type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">objectValue</a> || type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>;</div>
<div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;  }</div>
<div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;  <a class="code" href="json__value_8cpp.html#aa5e619e3e9388f6376a344dd8462c9cc">JSON_ASSERT_UNREACHABLE</a>;</div>
<div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;}</div>
<div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;</div>
<div class="line"><a name="l00838"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a4ca8ee6c48a34ca6c2f131956bab5e05">  838</a></span>&#160;<a class="code" href="class_json_1_1_value.html#a184a91566cccca7b819240f0d5561c7d">ArrayIndex</a> <a class="code" href="class_json_1_1_value.html#a4ca8ee6c48a34ca6c2f131956bab5e05">Value::size</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;  <span class="keywordflow">switch</span> (type_) {</div>
<div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>:</div>
<div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae5a9d708d5c9e23ae9bf98898522512d">intValue</a>:</div>
<div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eaea788d9a3bb00adc6d68d97d43e1ccd3">uintValue</a>:</div>
<div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eab837c7b869c14d8be712deb45c9e490e">realValue</a>:</div>
<div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea14c30dbf4da86f7b809be299f671f7fd">booleanValue</a>:</div>
<div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea804ef857affea2d415843c73f261c258">stringValue</a>:</div>
<div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;    <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">arrayValue</a>: <span class="comment">// size of the array is highest index + 1</span></div>
<div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;    <span class="keywordflow">if</span> (!value_.map_-&gt;empty()) {</div>
<div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;      ObjectValues::const_iterator itLast = value_.map_-&gt;end();</div>
<div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;      --itLast;</div>
<div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;      <span class="keywordflow">return</span> (*itLast).first.index() + 1;</div>
<div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;    }</div>
<div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;    <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">objectValue</a>:</div>
<div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#a184a91566cccca7b819240f0d5561c7d">ArrayIndex</a>(value_.map_-&gt;size());</div>
<div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160;  }</div>
<div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160;  <a class="code" href="json__value_8cpp.html#aa5e619e3e9388f6376a344dd8462c9cc">JSON_ASSERT_UNREACHABLE</a>;</div>
<div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160;  <span class="keywordflow">return</span> 0; <span class="comment">// unreachable;</span></div>
<div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;}</div>
<div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;</div>
<div class="line"><a name="l00861"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a99c42d3ff8495dad1e91b43e66553c36">  861</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#a99c42d3ff8495dad1e91b43e66553c36">Value::empty</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="class_json_1_1_value.html#aeb9ad8b1bb91bdd72203dc884b3f4362">isNull</a>() || <a class="code" href="class_json_1_1_value.html#ac8c898f93543e55b67418f94bced20af">isArray</a>() || <a class="code" href="class_json_1_1_value.html#a80cffaa0402b80317c0437216bbb6d92">isObject</a>())</div>
<div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#a4ca8ee6c48a34ca6c2f131956bab5e05">size</a>() == 0u;</div>
<div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;  <span class="keywordflow">else</span></div>
<div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;}</div>
<div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;</div>
<div class="line"><a name="l00868"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a021ab0d15a807fbe051446c9c545ab61">  868</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#a021ab0d15a807fbe051446c9c545ab61">Value::operator!</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#aeb9ad8b1bb91bdd72203dc884b3f4362">isNull</a>(); }</div>
<div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;</div>
<div class="line"><a name="l00870"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a501a4d67e6c875255c2ecc03ccd2019b">  870</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_json_1_1_value.html#a501a4d67e6c875255c2ecc03ccd2019b">Value::clear</a>() {</div>
<div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160;  <a class="code" href="assertions_8h.html#ad7facdeeca0f495765e3b204c265eadb">JSON_ASSERT_MESSAGE</a>(type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a> || type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">arrayValue</a> ||</div>
<div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160;                          type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">objectValue</a>,</div>
<div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;                      <span class="stringliteral">&quot;in Json::Value::clear(): requires complex value&quot;</span>);</div>
<div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;  start_ = 0;</div>
<div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;  limit_ = 0;</div>
<div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;  <span class="keywordflow">switch</span> (type_) {</div>
<div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">arrayValue</a>:</div>
<div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">objectValue</a>:</div>
<div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;    value_.map_-&gt;clear();</div>
<div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;  <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;  }</div>
<div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;}</div>
<div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;</div>
<div class="line"><a name="l00886"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#aa284353271ada427dbfa04a42f2be407">  886</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_json_1_1_value.html#aa284353271ada427dbfa04a42f2be407">Value::resize</a>(<a class="code" href="class_json_1_1_value.html#a184a91566cccca7b819240f0d5561c7d">ArrayIndex</a> newSize) {</div>
<div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;  <a class="code" href="assertions_8h.html#ad7facdeeca0f495765e3b204c265eadb">JSON_ASSERT_MESSAGE</a>(type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a> || type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">arrayValue</a>,</div>
<div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;                      <span class="stringliteral">&quot;in Json::Value::resize(): requires arrayValue&quot;</span>);</div>
<div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;  <span class="keywordflow">if</span> (type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>)</div>
<div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;    *<span class="keyword">this</span> = <a class="code" href="class_json_1_1_value.html#ada6ba1369448fb0240bccc36efaa46f7">Value</a>(<a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">arrayValue</a>);</div>
<div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;  <a class="code" href="class_json_1_1_value.html#a184a91566cccca7b819240f0d5561c7d">ArrayIndex</a> oldSize = <a class="code" href="class_json_1_1_value.html#a4ca8ee6c48a34ca6c2f131956bab5e05">size</a>();</div>
<div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;  <span class="keywordflow">if</span> (newSize == 0)</div>
<div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;    <a class="code" href="class_json_1_1_value.html#a501a4d67e6c875255c2ecc03ccd2019b">clear</a>();</div>
<div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (newSize &gt; oldSize)</div>
<div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;    (*this)[newSize - 1];</div>
<div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;  <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;    <span class="keywordflow">for</span> (<a class="code" href="class_json_1_1_value.html#a184a91566cccca7b819240f0d5561c7d">ArrayIndex</a> index = newSize; index &lt; oldSize; ++index) {</div>
<div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;      value_.map_-&gt;erase(index);</div>
<div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;    }</div>
<div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;    assert(<a class="code" href="class_json_1_1_value.html#a4ca8ee6c48a34ca6c2f131956bab5e05">size</a>() == newSize);</div>
<div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;  }</div>
<div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;}</div>
<div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;</div>
<div class="line"><a name="l00904"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a7d99f5dba388cdaa152ce6ef933d64ef">  904</a></span>&#160;<a class="code" href="class_json_1_1_value.html">Value</a>&amp; <a class="code" href="class_json_1_1_value.html#a7d99f5dba388cdaa152ce6ef933d64ef">Value::operator[]</a>(<a class="code" href="class_json_1_1_value.html#a184a91566cccca7b819240f0d5561c7d">ArrayIndex</a> index) {</div>
<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;  <a class="code" href="assertions_8h.html#ad7facdeeca0f495765e3b204c265eadb">JSON_ASSERT_MESSAGE</a>(</div>
<div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;      type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a> || type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">arrayValue</a>,</div>
<div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;      <span class="stringliteral">&quot;in Json::Value::operator[](ArrayIndex): requires arrayValue&quot;</span>);</div>
<div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;  <span class="keywordflow">if</span> (type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>)</div>
<div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;    *<span class="keyword">this</span> = <a class="code" href="class_json_1_1_value.html#ada6ba1369448fb0240bccc36efaa46f7">Value</a>(<a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">arrayValue</a>);</div>
<div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;  CZString key(index);</div>
<div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;  ObjectValues::iterator it = value_.map_-&gt;lower_bound(key);</div>
<div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;  <span class="keywordflow">if</span> (it != value_.map_-&gt;end() &amp;&amp; (*it).first == key)</div>
<div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;    <span class="keywordflow">return</span> (*it).second;</div>
<div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;</div>
<div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;  ObjectValues::value_type defaultValue(key, <a class="code" href="class_json_1_1_value.html#aaa4ffd4e53967170c3e8c9abf682b5cd">nullRef</a>);</div>
<div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;  it = value_.map_-&gt;insert(it, defaultValue);</div>
<div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;  <span class="keywordflow">return</span> (*it).second;</div>
<div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;}</div>
<div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;</div>
<div class="line"><a name="l00920"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#ac9182982c361e0ab621134d406e5f250">  920</a></span>&#160;<a class="code" href="class_json_1_1_value.html">Value</a>&amp; <a class="code" href="class_json_1_1_value.html#a7d99f5dba388cdaa152ce6ef933d64ef">Value::operator[]</a>(<span class="keywordtype">int</span> index) {</div>
<div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;  <a class="code" href="assertions_8h.html#ad7facdeeca0f495765e3b204c265eadb">JSON_ASSERT_MESSAGE</a>(</div>
<div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160;      index &gt;= 0,</div>
<div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;      <span class="stringliteral">&quot;in Json::Value::operator[](int index): index cannot be negative&quot;</span>);</div>
<div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;  <span class="keywordflow">return</span> (*<span class="keyword">this</span>)[<a class="code" href="class_json_1_1_value.html#a184a91566cccca7b819240f0d5561c7d">ArrayIndex</a>(index)];</div>
<div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;}</div>
<div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;</div>
<div class="line"><a name="l00927"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#af151919e8947c430e34bed2b0b128601">  927</a></span>&#160;<span class="keyword">const</span> <a class="code" href="class_json_1_1_value.html">Value</a>&amp; <a class="code" href="class_json_1_1_value.html#a7d99f5dba388cdaa152ce6ef933d64ef">Value::operator[]</a>(<a class="code" href="class_json_1_1_value.html#a184a91566cccca7b819240f0d5561c7d">ArrayIndex</a> index)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;  <a class="code" href="assertions_8h.html#ad7facdeeca0f495765e3b204c265eadb">JSON_ASSERT_MESSAGE</a>(</div>
<div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;      type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a> || type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">arrayValue</a>,</div>
<div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;      <span class="stringliteral">&quot;in Json::Value::operator[](ArrayIndex)const: requires arrayValue&quot;</span>);</div>
<div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;  <span class="keywordflow">if</span> (type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>)</div>
<div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#aaa4ffd4e53967170c3e8c9abf682b5cd">nullRef</a>;</div>
<div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;  CZString key(index);</div>
<div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;  ObjectValues::const_iterator it = value_.map_-&gt;find(key);</div>
<div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;  <span class="keywordflow">if</span> (it == value_.map_-&gt;end())</div>
<div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#aaa4ffd4e53967170c3e8c9abf682b5cd">nullRef</a>;</div>
<div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;  <span class="keywordflow">return</span> (*it).second;</div>
<div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;}</div>
<div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;</div>
<div class="line"><a name="l00940"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#af9e02b38f4e63e491c300c20b275bdd7">  940</a></span>&#160;<span class="keyword">const</span> <a class="code" href="class_json_1_1_value.html">Value</a>&amp; <a class="code" href="class_json_1_1_value.html#a7d99f5dba388cdaa152ce6ef933d64ef">Value::operator[]</a>(<span class="keywordtype">int</span> index)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;  <a class="code" href="assertions_8h.html#ad7facdeeca0f495765e3b204c265eadb">JSON_ASSERT_MESSAGE</a>(</div>
<div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;      index &gt;= 0,</div>
<div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;      <span class="stringliteral">&quot;in Json::Value::operator[](int index) const: index cannot be negative&quot;</span>);</div>
<div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;  <span class="keywordflow">return</span> (*<span class="keyword">this</span>)[<a class="code" href="class_json_1_1_value.html#a184a91566cccca7b819240f0d5561c7d">ArrayIndex</a>(index)];</div>
<div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;}</div>
<div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;</div>
<div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;<span class="keywordtype">void</span> Value::initBasic(<a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4e">ValueType</a> vtype, <span class="keywordtype">bool</span> allocated) {</div>
<div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;  type_ = vtype;</div>
<div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;  allocated_ = allocated;</div>
<div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;  comments_ = 0;</div>
<div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;  start_ = 0;</div>
<div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;  limit_ = 0;</div>
<div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;}</div>
<div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;</div>
<div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;<span class="comment">// Access an object value by name, create a null member if it does not exist.</span></div>
<div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;<span class="comment">// @pre Type of &#39;*this&#39; is object or null.</span></div>
<div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;<span class="comment">// @param key is null-terminated.</span></div>
<div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;Value&amp; Value::resolveReference(<span class="keyword">const</span> <span class="keywordtype">char</span>* key) {</div>
<div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;  <a class="code" href="assertions_8h.html#ad7facdeeca0f495765e3b204c265eadb">JSON_ASSERT_MESSAGE</a>(</div>
<div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;      type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a> || type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">objectValue</a>,</div>
<div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;      <span class="stringliteral">&quot;in Json::Value::resolveReference(): requires objectValue&quot;</span>);</div>
<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;  <span class="keywordflow">if</span> (type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>)</div>
<div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;    *<span class="keyword">this</span> = <a class="code" href="class_json_1_1_value.html#ada6ba1369448fb0240bccc36efaa46f7">Value</a>(<a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">objectValue</a>);</div>
<div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;  CZString actualKey(</div>
<div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;      key, static_cast&lt;unsigned&gt;(strlen(key)), CZString::noDuplication); <span class="comment">// NOTE!</span></div>
<div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;  ObjectValues::iterator it = value_.map_-&gt;lower_bound(actualKey);</div>
<div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;  <span class="keywordflow">if</span> (it != value_.map_-&gt;end() &amp;&amp; (*it).first == actualKey)</div>
<div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;    <span class="keywordflow">return</span> (*it).second;</div>
<div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;</div>
<div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;  ObjectValues::value_type defaultValue(actualKey, <a class="code" href="class_json_1_1_value.html#aaa4ffd4e53967170c3e8c9abf682b5cd">nullRef</a>);</div>
<div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;  it = value_.map_-&gt;insert(it, defaultValue);</div>
<div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;  <a class="code" href="class_json_1_1_value.html#ada6ba1369448fb0240bccc36efaa46f7">Value</a>&amp; value = (*it).second;</div>
<div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;  <span class="keywordflow">return</span> value;</div>
<div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;}</div>
<div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;</div>
<div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;<span class="comment">// @param key is not null-terminated.</span></div>
<div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;Value&amp; Value::resolveReference(<span class="keywordtype">char</span> <span class="keyword">const</span>* key, <span class="keywordtype">char</span> <span class="keyword">const</span>* cend)</div>
<div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;{</div>
<div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;  <a class="code" href="assertions_8h.html#ad7facdeeca0f495765e3b204c265eadb">JSON_ASSERT_MESSAGE</a>(</div>
<div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;      type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a> || type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">objectValue</a>,</div>
<div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;      <span class="stringliteral">&quot;in Json::Value::resolveReference(key, end): requires objectValue&quot;</span>);</div>
<div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;  <span class="keywordflow">if</span> (type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>)</div>
<div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;    *<span class="keyword">this</span> = <a class="code" href="class_json_1_1_value.html#ada6ba1369448fb0240bccc36efaa46f7">Value</a>(<a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">objectValue</a>);</div>
<div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;  CZString actualKey(</div>
<div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;      key, static_cast&lt;unsigned&gt;(cend-key), CZString::duplicateOnCopy);</div>
<div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;  ObjectValues::iterator it = value_.map_-&gt;lower_bound(actualKey);</div>
<div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;  <span class="keywordflow">if</span> (it != value_.map_-&gt;end() &amp;&amp; (*it).first == actualKey)</div>
<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;    <span class="keywordflow">return</span> (*it).second;</div>
<div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;</div>
<div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;  ObjectValues::value_type defaultValue(actualKey, <a class="code" href="class_json_1_1_value.html#aaa4ffd4e53967170c3e8c9abf682b5cd">nullRef</a>);</div>
<div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;  it = value_.map_-&gt;insert(it, defaultValue);</div>
<div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;  <a class="code" href="class_json_1_1_value.html#ada6ba1369448fb0240bccc36efaa46f7">Value</a>&amp; value = (*it).second;</div>
<div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;  <span class="keywordflow">return</span> value;</div>
<div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;}</div>
<div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;</div>
<div class="line"><a name="l00996"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a28282c9b76fa031eba7a1843c47c16fe">  996</a></span>&#160;<a class="code" href="class_json_1_1_value.html">Value</a> <a class="code" href="class_json_1_1_value.html#a28282c9b76fa031eba7a1843c47c16fe">Value::get</a>(<a class="code" href="class_json_1_1_value.html#a184a91566cccca7b819240f0d5561c7d">ArrayIndex</a> index, <span class="keyword">const</span> <a class="code" href="class_json_1_1_value.html">Value</a>&amp; defaultValue)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;  <span class="keyword">const</span> <a class="code" href="class_json_1_1_value.html">Value</a>* value = &amp;((*this)[index]);</div>
<div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;  <span class="keywordflow">return</span> value == &amp;<a class="code" href="class_json_1_1_value.html#aaa4ffd4e53967170c3e8c9abf682b5cd">nullRef</a> ? defaultValue : *value;</div>
<div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;}</div>
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;</div>
<div class="line"><a name="l01001"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#aaa82ebb4b730ea1567d310874f47d147"> 1001</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#aaa82ebb4b730ea1567d310874f47d147">Value::isValidIndex</a>(<a class="code" href="class_json_1_1_value.html#a184a91566cccca7b819240f0d5561c7d">ArrayIndex</a> index)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> index &lt; <a class="code" href="class_json_1_1_value.html#a4ca8ee6c48a34ca6c2f131956bab5e05">size</a>(); }</div>
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;</div>
<div class="line"><a name="l01003"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a184bf49ec5da7ec31af089cf6f458f99"> 1003</a></span>&#160;<a class="code" href="class_json_1_1_value.html">Value</a> <span class="keyword">const</span>* <a class="code" href="class_json_1_1_value.html#a184bf49ec5da7ec31af089cf6f458f99">Value::find</a>(<span class="keywordtype">char</span> <span class="keyword">const</span>* key, <span class="keywordtype">char</span> <span class="keyword">const</span>* cend)<span class="keyword"> const</span></div>
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;  <a class="code" href="assertions_8h.html#ad7facdeeca0f495765e3b204c265eadb">JSON_ASSERT_MESSAGE</a>(</div>
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;      type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a> || type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">objectValue</a>,</div>
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;      <span class="stringliteral">&quot;in Json::Value::find(key, end, found): requires objectValue or nullValue&quot;</span>);</div>
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;  <span class="keywordflow">if</span> (type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>) <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;  CZString actualKey(key, static_cast&lt;unsigned&gt;(cend-key), CZString::noDuplication);</div>
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;  ObjectValues::const_iterator it = value_.map_-&gt;find(actualKey);</div>
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;  <span class="keywordflow">if</span> (it == value_.map_-&gt;end()) <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;  <span class="keywordflow">return</span> &amp;(*it).second;</div>
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;}</div>
<div class="line"><a name="l01014"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#ae5f73ffc7a039bca81b7ca771bc5db55"> 1014</a></span>&#160;<span class="keyword">const</span> <a class="code" href="class_json_1_1_value.html">Value</a>&amp; <a class="code" href="class_json_1_1_value.html#a7d99f5dba388cdaa152ce6ef933d64ef">Value::operator[]</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* key)<span class="keyword"> const</span></div>
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;  <a class="code" href="class_json_1_1_value.html">Value</a> <span class="keyword">const</span>* found = <a class="code" href="class_json_1_1_value.html#a184bf49ec5da7ec31af089cf6f458f99">find</a>(key, key + strlen(key));</div>
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;  <span class="keywordflow">if</span> (!found) <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#aaa4ffd4e53967170c3e8c9abf682b5cd">nullRef</a>;</div>
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;  <span class="keywordflow">return</span> *found;</div>
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;}</div>
<div class="line"><a name="l01020"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a26dc88ac5be67772374898655744fdc4"> 1020</a></span>&#160;<a class="code" href="class_json_1_1_value.html">Value</a> <span class="keyword">const</span>&amp; <a class="code" href="class_json_1_1_value.html#a7d99f5dba388cdaa152ce6ef933d64ef">Value::operator[]</a>(std::string <span class="keyword">const</span>&amp; key)<span class="keyword"> const</span></div>
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;  <a class="code" href="class_json_1_1_value.html">Value</a> <span class="keyword">const</span>* found = <a class="code" href="class_json_1_1_value.html#a184bf49ec5da7ec31af089cf6f458f99">find</a>(key.data(), key.data() + key.length());</div>
<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;  <span class="keywordflow">if</span> (!found) <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#aaa4ffd4e53967170c3e8c9abf682b5cd">nullRef</a>;</div>
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;  <span class="keywordflow">return</span> *found;</div>
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;}</div>
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;</div>
<div class="line"><a name="l01027"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#acb912f4ec40a25ea6eb387730885f3d9"> 1027</a></span>&#160;<a class="code" href="class_json_1_1_value.html">Value</a>&amp; <a class="code" href="class_json_1_1_value.html#a7d99f5dba388cdaa152ce6ef933d64ef">Value::operator[]</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* key) {</div>
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;  <span class="keywordflow">return</span> resolveReference(key, key + strlen(key));</div>
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;}</div>
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;</div>
<div class="line"><a name="l01031"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#ae511c7d46bf457412fb55c9471af9f50"> 1031</a></span>&#160;<a class="code" href="class_json_1_1_value.html">Value</a>&amp; <a class="code" href="class_json_1_1_value.html#a7d99f5dba388cdaa152ce6ef933d64ef">Value::operator[]</a>(<span class="keyword">const</span> std::string&amp; key) {</div>
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;  <span class="keywordflow">return</span> resolveReference(key.data(), key.data() + key.length());</div>
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;}</div>
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;</div>
<div class="line"><a name="l01035"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#ac3763d7d315ca65dc188e273722f7955"> 1035</a></span>&#160;<a class="code" href="class_json_1_1_value.html">Value</a>&amp; <a class="code" href="class_json_1_1_value.html#a7d99f5dba388cdaa152ce6ef933d64ef">Value::operator[]</a>(<span class="keyword">const</span> <a class="code" href="class_json_1_1_static_string.html">StaticString</a>&amp; key) {</div>
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;  <span class="keywordflow">return</span> resolveReference(key.<a class="code" href="class_json_1_1_static_string.html#ab86fc6a3183adf12fdba4b370acf1754">c_str</a>());</div>
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;}</div>
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;</div>
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;<span class="preprocessor">#ifdef JSON_USE_CPPTL</span></div>
<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;<a class="code" href="class_json_1_1_value.html">Value</a>&amp; <a class="code" href="class_json_1_1_value.html#a7d99f5dba388cdaa152ce6ef933d64ef">Value::operator[]</a>(<span class="keyword">const</span> CppTL::ConstString&amp; key) {</div>
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;  <span class="keywordflow">return</span> resolveReference(key.c_str(), key.end_c_str());</div>
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;}</div>
<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;Value <span class="keyword">const</span>&amp; <a class="code" href="class_json_1_1_value.html#a7d99f5dba388cdaa152ce6ef933d64ef">Value::operator[]</a>(CppTL::ConstString <span class="keyword">const</span>&amp; key)<span class="keyword"> const</span></div>
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;  <a class="code" href="class_json_1_1_value.html#ada6ba1369448fb0240bccc36efaa46f7">Value</a> <span class="keyword">const</span>* found = <a class="code" href="class_json_1_1_value.html#a184bf49ec5da7ec31af089cf6f458f99">find</a>(key.c_str(), key.end_c_str());</div>
<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;  <span class="keywordflow">if</span> (!found) <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#aaa4ffd4e53967170c3e8c9abf682b5cd">nullRef</a>;</div>
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;  <span class="keywordflow">return</span> *found;</div>
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;}</div>
<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;</div>
<div class="line"><a name="l01051"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a7e49ac977e4bcf59745a09d426669f75"> 1051</a></span>&#160;<a class="code" href="class_json_1_1_value.html">Value</a>&amp; <a class="code" href="class_json_1_1_value.html#a7e49ac977e4bcf59745a09d426669f75">Value::append</a>(<span class="keyword">const</span> <a class="code" href="class_json_1_1_value.html">Value</a>&amp; value) { <span class="keywordflow">return</span> (*<span class="keyword">this</span>)[<a class="code" href="class_json_1_1_value.html#a4ca8ee6c48a34ca6c2f131956bab5e05">size</a>()] = value; }</div>
<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;</div>
<div class="line"><a name="l01053"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#abcb2289c005bc0befdedaa94f662f63f"> 1053</a></span>&#160;<a class="code" href="class_json_1_1_value.html">Value</a> <a class="code" href="class_json_1_1_value.html#a28282c9b76fa031eba7a1843c47c16fe">Value::get</a>(<span class="keywordtype">char</span> <span class="keyword">const</span>* key, <span class="keywordtype">char</span> <span class="keyword">const</span>* cend, <a class="code" href="class_json_1_1_value.html">Value</a> <span class="keyword">const</span>&amp; defaultValue)<span class="keyword"> const</span></div>
<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;  <a class="code" href="class_json_1_1_value.html">Value</a> <span class="keyword">const</span>* found = <a class="code" href="class_json_1_1_value.html#a184bf49ec5da7ec31af089cf6f458f99">find</a>(key, cend);</div>
<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;  <span class="keywordflow">return</span> !found ? defaultValue : *found;</div>
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;}</div>
<div class="line"><a name="l01058"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#ab76b3323cde14c7db20676d07b260ce7"> 1058</a></span>&#160;<a class="code" href="class_json_1_1_value.html">Value</a> <a class="code" href="class_json_1_1_value.html#a28282c9b76fa031eba7a1843c47c16fe">Value::get</a>(<span class="keywordtype">char</span> <span class="keyword">const</span>* key, <a class="code" href="class_json_1_1_value.html">Value</a> <span class="keyword">const</span>&amp; defaultValue)<span class="keyword"> const</span></div>
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">get</span>(key, key + strlen(key), defaultValue);</div>
<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;}</div>
<div class="line"><a name="l01062"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a54a34264356e01ee9c21a75ccfc809e9"> 1062</a></span>&#160;<a class="code" href="class_json_1_1_value.html">Value</a> <a class="code" href="class_json_1_1_value.html#a28282c9b76fa031eba7a1843c47c16fe">Value::get</a>(std::string <span class="keyword">const</span>&amp; key, <a class="code" href="class_json_1_1_value.html">Value</a> <span class="keyword">const</span>&amp; defaultValue)<span class="keyword"> const</span></div>
<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">get</span>(key.data(), key.data() + key.length(), defaultValue);</div>
<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;}</div>
<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;</div>
<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;</div>
<div class="line"><a name="l01068"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a49c91af727d6b4eb0af02a81bb2def87"> 1068</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#aa52f7873b95d29627d6e83ba96f69aaa">Value::removeMember</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* key, <span class="keyword">const</span> <span class="keywordtype">char</span>* cend, <a class="code" href="class_json_1_1_value.html">Value</a>* removed)</div>
<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;{</div>
<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;  <span class="keywordflow">if</span> (type_ != <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">objectValue</a>) {</div>
<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;  }</div>
<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;  CZString actualKey(key, static_cast&lt;unsigned&gt;(cend-key), CZString::noDuplication);</div>
<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;  ObjectValues::iterator it = value_.map_-&gt;find(actualKey);</div>
<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;  <span class="keywordflow">if</span> (it == value_.map_-&gt;end())</div>
<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;  *removed = it-&gt;second;</div>
<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;  value_.map_-&gt;erase(it);</div>
<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;}</div>
<div class="line"><a name="l01081"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a708e599489adf30d65bf85a8ee16e6fb"> 1081</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#aa52f7873b95d29627d6e83ba96f69aaa">Value::removeMember</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* key, <a class="code" href="class_json_1_1_value.html">Value</a>* removed)</div>
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;{</div>
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#aa52f7873b95d29627d6e83ba96f69aaa">removeMember</a>(key, key + strlen(key), removed);</div>
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;}</div>
<div class="line"><a name="l01085"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a3749dae413a73eac05b7f8dc6deeb6a2"> 1085</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#aa52f7873b95d29627d6e83ba96f69aaa">Value::removeMember</a>(std::string <span class="keyword">const</span>&amp; key, <a class="code" href="class_json_1_1_value.html">Value</a>* removed)</div>
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;{</div>
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#aa52f7873b95d29627d6e83ba96f69aaa">removeMember</a>(key.data(), key.data() + key.length(), removed);</div>
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;}</div>
<div class="line"><a name="l01089"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#aa52f7873b95d29627d6e83ba96f69aaa"> 1089</a></span>&#160;<a class="code" href="class_json_1_1_value.html">Value</a> <a class="code" href="class_json_1_1_value.html#aa52f7873b95d29627d6e83ba96f69aaa">Value::removeMember</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* key)</div>
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;{</div>
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;  <a class="code" href="assertions_8h.html#ad7facdeeca0f495765e3b204c265eadb">JSON_ASSERT_MESSAGE</a>(type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a> || type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">objectValue</a>,</div>
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;                      <span class="stringliteral">&quot;in Json::Value::removeMember(): requires objectValue&quot;</span>);</div>
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;  <span class="keywordflow">if</span> (type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>)</div>
<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#aaa4ffd4e53967170c3e8c9abf682b5cd">nullRef</a>;</div>
<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;</div>
<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;  <a class="code" href="class_json_1_1_value.html">Value</a> removed;  <span class="comment">// null</span></div>
<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;  <a class="code" href="class_json_1_1_value.html#aa52f7873b95d29627d6e83ba96f69aaa">removeMember</a>(key, key + strlen(key), &amp;removed);</div>
<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;  <span class="keywordflow">return</span> removed; <span class="comment">// still null if removeMember() did nothing</span></div>
<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;}</div>
<div class="line"><a name="l01100"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#ae1f95f7ca3906e6bcc2a7be93210ecba"> 1100</a></span>&#160;<a class="code" href="class_json_1_1_value.html">Value</a> <a class="code" href="class_json_1_1_value.html#aa52f7873b95d29627d6e83ba96f69aaa">Value::removeMember</a>(<span class="keyword">const</span> std::string&amp; key)</div>
<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;{</div>
<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#aa52f7873b95d29627d6e83ba96f69aaa">removeMember</a>(key.c_str());</div>
<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;}</div>
<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;</div>
<div class="line"><a name="l01105"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#ae9e67e08a85a2f3be3396ec0f4c47f65"> 1105</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#ae9e67e08a85a2f3be3396ec0f4c47f65">Value::removeIndex</a>(<a class="code" href="class_json_1_1_value.html#a184a91566cccca7b819240f0d5561c7d">ArrayIndex</a> index, <a class="code" href="class_json_1_1_value.html">Value</a>* removed) {</div>
<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;  <span class="keywordflow">if</span> (type_ != <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">arrayValue</a>) {</div>
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;  }</div>
<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;  CZString key(index);</div>
<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;  ObjectValues::iterator it = value_.map_-&gt;find(key);</div>
<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;  <span class="keywordflow">if</span> (it == value_.map_-&gt;end()) {</div>
<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;  }</div>
<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;  *removed = it-&gt;second;</div>
<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;  <a class="code" href="class_json_1_1_value.html#a184a91566cccca7b819240f0d5561c7d">ArrayIndex</a> oldSize = <a class="code" href="class_json_1_1_value.html#a4ca8ee6c48a34ca6c2f131956bab5e05">size</a>();</div>
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;  <span class="comment">// shift left all items left, into the place of the &quot;removed&quot;</span></div>
<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;  <span class="keywordflow">for</span> (<a class="code" href="class_json_1_1_value.html#a184a91566cccca7b819240f0d5561c7d">ArrayIndex</a> i = index; i &lt; (oldSize - 1); ++i){</div>
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;    CZString keey(i);</div>
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;    (*value_.map_)[keey] = (*<span class="keyword">this</span>)[i + 1];</div>
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;  }</div>
<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;  <span class="comment">// erase the last one (&quot;leftover&quot;)</span></div>
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;  CZString keyLast(oldSize - 1);</div>
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;  ObjectValues::iterator itLast = value_.map_-&gt;find(keyLast);</div>
<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;  value_.map_-&gt;erase(itLast);</div>
<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;}</div>
<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;</div>
<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;<span class="preprocessor">#ifdef JSON_USE_CPPTL</span></div>
<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;<a class="code" href="class_json_1_1_value.html">Value</a> <a class="code" href="class_json_1_1_value.html#a28282c9b76fa031eba7a1843c47c16fe">Value::get</a>(<span class="keyword">const</span> CppTL::ConstString&amp; key,</div>
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;                 <span class="keyword">const</span> <a class="code" href="class_json_1_1_value.html">Value</a>&amp; defaultValue)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">get</span>(key.c_str(), key.end_c_str(), defaultValue);</div>
<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;}</div>
<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;</div>
<div class="line"><a name="l01135"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a077604b87a79d75543a1b5438eb9d8ab"> 1135</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#a196defba501d70ea2b6793afb04108e3">Value::isMember</a>(<span class="keywordtype">char</span> <span class="keyword">const</span>* key, <span class="keywordtype">char</span> <span class="keyword">const</span>* cend)<span class="keyword"> const</span></div>
<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;  <a class="code" href="class_json_1_1_value.html">Value</a> <span class="keyword">const</span>* value = <a class="code" href="class_json_1_1_value.html#a184bf49ec5da7ec31af089cf6f458f99">find</a>(key, cend);</div>
<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;  <span class="keywordflow">return</span> NULL != value;</div>
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;}</div>
<div class="line"><a name="l01140"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a196defba501d70ea2b6793afb04108e3"> 1140</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#a196defba501d70ea2b6793afb04108e3">Value::isMember</a>(<span class="keywordtype">char</span> <span class="keyword">const</span>* key)<span class="keyword"> const</span></div>
<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#a196defba501d70ea2b6793afb04108e3">isMember</a>(key, key + strlen(key));</div>
<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;}</div>
<div class="line"><a name="l01144"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#af728b5738aaa133f3aad2e39dc4f415e"> 1144</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#a196defba501d70ea2b6793afb04108e3">Value::isMember</a>(std::string <span class="keyword">const</span>&amp; key)<span class="keyword"> const</span></div>
<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#a196defba501d70ea2b6793afb04108e3">isMember</a>(key.data(), key.data() + key.length());</div>
<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;}</div>
<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;</div>
<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;<span class="preprocessor">#ifdef JSON_USE_CPPTL</span></div>
<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#a196defba501d70ea2b6793afb04108e3">Value::isMember</a>(<span class="keyword">const</span> CppTL::ConstString&amp; key)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#a196defba501d70ea2b6793afb04108e3">isMember</a>(key.c_str(), key.end_c_str());</div>
<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;}</div>
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;</div>
<div class="line"><a name="l01155"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a30fa08af88f2d0a038b22ba9f4e88b2a"> 1155</a></span>&#160;<a class="code" href="class_json_1_1_value.html#ac61bab5a465848b57610379cc07995c3">Value::Members</a> <a class="code" href="class_json_1_1_value.html#a30fa08af88f2d0a038b22ba9f4e88b2a">Value::getMemberNames</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;  <a class="code" href="assertions_8h.html#ad7facdeeca0f495765e3b204c265eadb">JSON_ASSERT_MESSAGE</a>(</div>
<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;      type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a> || type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">objectValue</a>,</div>
<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;      <span class="stringliteral">&quot;in Json::Value::getMemberNames(), value must be objectValue&quot;</span>);</div>
<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;  <span class="keywordflow">if</span> (type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>)</div>
<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#ac61bab5a465848b57610379cc07995c3">Value::Members</a>();</div>
<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;  <a class="code" href="class_json_1_1_value.html#ac61bab5a465848b57610379cc07995c3">Members</a> members;</div>
<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;  members.reserve(value_.map_-&gt;size());</div>
<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;  ObjectValues::const_iterator it = value_.map_-&gt;begin();</div>
<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;  ObjectValues::const_iterator itEnd = value_.map_-&gt;end();</div>
<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;  <span class="keywordflow">for</span> (; it != itEnd; ++it) {</div>
<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;    members.push_back(std::string((*it).first.data(),</div>
<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;                                  (*it).first.length()));</div>
<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;  }</div>
<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;  <span class="keywordflow">return</span> members;</div>
<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;}</div>
<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;<span class="comment">//# ifdef JSON_USE_CPPTL</span></div>
<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;<span class="comment">// EnumMemberNames</span></div>
<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;<span class="comment">// Value::enumMemberNames() const</span></div>
<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;<span class="comment">//{</span></div>
<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;<span class="comment">//   if ( type_ == objectValue )</span></div>
<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;<span class="comment">//   {</span></div>
<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;<span class="comment">//      return CppTL::Enum::any(  CppTL::Enum::transform(</span></div>
<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;<span class="comment">//         CppTL::Enum::keys( *(value_.map_), CppTL::Type&lt;const CZString &amp;&gt;() ),</span></div>
<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;<span class="comment">//         MemberNamesTransform() ) );</span></div>
<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;<span class="comment">//   }</span></div>
<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;<span class="comment">//   return EnumMemberNames();</span></div>
<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;<span class="comment">//}</span></div>
<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;<span class="comment">// EnumValues</span></div>
<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;<span class="comment">// Value::enumValues() const</span></div>
<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;<span class="comment">//{</span></div>
<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;<span class="comment">//   if ( type_ == objectValue  ||  type_ == arrayValue )</span></div>
<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;<span class="comment">//      return CppTL::Enum::anyValues( *(value_.map_),</span></div>
<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;<span class="comment">//                                     CppTL::Type&lt;const Value &amp;&gt;() );</span></div>
<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;<span class="comment">//   return EnumValues();</span></div>
<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;<span class="comment">//}</span></div>
<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;<span class="comment">//# endif</span></div>
<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;</div>
<div class="line"><a name="l01197"></a><span class="lineno"><a class="line" href="namespace_json.html#a1a04cc9d31e64b5912dade003c9b99b5"> 1197</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="namespace_json.html#a1a04cc9d31e64b5912dade003c9b99b5">IsIntegral</a>(<span class="keywordtype">double</span> d) {</div>
<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;  <span class="keywordtype">double</span> integral_part;</div>
<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;  <span class="keywordflow">return</span> modf(d, &amp;integral_part) == 0.0;</div>
<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;}</div>
<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;</div>
<div class="line"><a name="l01202"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#aeb9ad8b1bb91bdd72203dc884b3f4362"> 1202</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#aeb9ad8b1bb91bdd72203dc884b3f4362">Value::isNull</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">nullValue</a>; }</div>
<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;</div>
<div class="line"><a name="l01204"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a3c3716cc7a0216cb1b654bb8f61c8d13"> 1204</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#a3c3716cc7a0216cb1b654bb8f61c8d13">Value::isBool</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea14c30dbf4da86f7b809be299f671f7fd">booleanValue</a>; }</div>
<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;</div>
<div class="line"><a name="l01206"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#ab0df4746d6787d2ce1db1a156c118f14"> 1206</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#ab0df4746d6787d2ce1db1a156c118f14">Value::isInt</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;  <span class="keywordflow">switch</span> (type_) {</div>
<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae5a9d708d5c9e23ae9bf98898522512d">intValue</a>:</div>
<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;    <span class="keywordflow">return</span> value_.int_ &gt;= <a class="code" href="class_json_1_1_value.html#a7df8a39e2502b8c92a6a41e3d752d2c8">minInt</a> &amp;&amp; value_.int_ &lt;= <a class="code" href="class_json_1_1_value.html#a978c799a8af3114ef7dab6fd0a310a1b">maxInt</a>;</div>
<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eaea788d9a3bb00adc6d68d97d43e1ccd3">uintValue</a>:</div>
<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;    <span class="keywordflow">return</span> value_.uint_ &lt;= <a class="code" href="class_json_1_1_value.html#a0933d59b45793ae4aade1757c322a98d">UInt</a>(<a class="code" href="class_json_1_1_value.html#a978c799a8af3114ef7dab6fd0a310a1b">maxInt</a>);</div>
<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eab837c7b869c14d8be712deb45c9e490e">realValue</a>:</div>
<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;    <span class="keywordflow">return</span> value_.real_ &gt;= <a class="code" href="class_json_1_1_value.html#a7df8a39e2502b8c92a6a41e3d752d2c8">minInt</a> &amp;&amp; value_.real_ &lt;= <a class="code" href="class_json_1_1_value.html#a978c799a8af3114ef7dab6fd0a310a1b">maxInt</a> &amp;&amp;</div>
<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;           <a class="code" href="namespace_json.html#a1a04cc9d31e64b5912dade003c9b99b5">IsIntegral</a>(value_.real_);</div>
<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;  <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;  }</div>
<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;}</div>
<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;</div>
<div class="line"><a name="l01221"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#ae814ca1796fe2d43ac09898b70213989"> 1221</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#ae814ca1796fe2d43ac09898b70213989">Value::isUInt</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160;  <span class="keywordflow">switch</span> (type_) {</div>
<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae5a9d708d5c9e23ae9bf98898522512d">intValue</a>:</div>
<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160;    <span class="keywordflow">return</span> value_.int_ &gt;= 0 &amp;&amp; <a class="code" href="class_json_1_1_value.html#a6682a3684d635e03fc06ba229fa24eec">LargestUInt</a>(value_.int_) &lt;= <a class="code" href="class_json_1_1_value.html#a6682a3684d635e03fc06ba229fa24eec">LargestUInt</a>(<a class="code" href="class_json_1_1_value.html#ac79e63ee68d3aa914bfd6988be669b87">maxUInt</a>);</div>
<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eaea788d9a3bb00adc6d68d97d43e1ccd3">uintValue</a>:</div>
<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;    <span class="keywordflow">return</span> value_.uint_ &lt;= <a class="code" href="class_json_1_1_value.html#ac79e63ee68d3aa914bfd6988be669b87">maxUInt</a>;</div>
<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eab837c7b869c14d8be712deb45c9e490e">realValue</a>:</div>
<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;    <span class="keywordflow">return</span> value_.real_ &gt;= 0 &amp;&amp; value_.real_ &lt;= <a class="code" href="class_json_1_1_value.html#ac79e63ee68d3aa914bfd6988be669b87">maxUInt</a> &amp;&amp;</div>
<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;           <a class="code" href="namespace_json.html#a1a04cc9d31e64b5912dade003c9b99b5">IsIntegral</a>(value_.real_);</div>
<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;  <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;  }</div>
<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;}</div>
<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;</div>
<div class="line"><a name="l01236"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#aba89690e5fd72d0f7121a30013470423"> 1236</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#aba89690e5fd72d0f7121a30013470423">Value::isInt64</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;<span class="preprocessor">#if defined(JSON_HAS_INT64)</span></div>
<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;  <span class="keywordflow">switch</span> (type_) {</div>
<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae5a9d708d5c9e23ae9bf98898522512d">intValue</a>:</div>
<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eaea788d9a3bb00adc6d68d97d43e1ccd3">uintValue</a>:</div>
<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;    <span class="keywordflow">return</span> value_.uint_ &lt;= <a class="code" href="class_json_1_1_value.html#a8b62564be8c087c6d18de180ff4e13e3">UInt64</a>(<a class="code" href="class_json_1_1_value.html#a4492634870b8c5709ce967b384ac6006">maxInt64</a>);</div>
<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eab837c7b869c14d8be712deb45c9e490e">realValue</a>:</div>
<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;    <span class="comment">// Note that maxInt64 (= 2^63 - 1) is not exactly representable as a</span></div>
<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;    <span class="comment">// double, so double(maxInt64) will be rounded up to 2^63. Therefore we</span></div>
<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;    <span class="comment">// require the value to be strictly less than the limit.</span></div>
<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;    <span class="keywordflow">return</span> value_.real_ &gt;= double(<a class="code" href="class_json_1_1_value.html#a815ef899bc312c93bc426511acfe31a7">minInt64</a>) &amp;&amp;</div>
<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;           value_.real_ &lt; double(<a class="code" href="class_json_1_1_value.html#a4492634870b8c5709ce967b384ac6006">maxInt64</a>) &amp;&amp; <a class="code" href="namespace_json.html#a1a04cc9d31e64b5912dade003c9b99b5">IsIntegral</a>(value_.real_);</div>
<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160;  <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;  }</div>
<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;<span class="preprocessor">#endif // JSON_HAS_INT64</span></div>
<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;}</div>
<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;</div>
<div class="line"><a name="l01256"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#aa35efece2a6cba4d988d7d5b54db2fb8"> 1256</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#aa35efece2a6cba4d988d7d5b54db2fb8">Value::isUInt64</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;<span class="preprocessor">#if defined(JSON_HAS_INT64)</span></div>
<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;  <span class="keywordflow">switch</span> (type_) {</div>
<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae5a9d708d5c9e23ae9bf98898522512d">intValue</a>:</div>
<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;    <span class="keywordflow">return</span> value_.int_ &gt;= 0;</div>
<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eaea788d9a3bb00adc6d68d97d43e1ccd3">uintValue</a>:</div>
<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eab837c7b869c14d8be712deb45c9e490e">realValue</a>:</div>
<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;    <span class="comment">// Note that maxUInt64 (= 2^64 - 1) is not exactly representable as a</span></div>
<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;    <span class="comment">// double, so double(maxUInt64) will be rounded up to 2^64. Therefore we</span></div>
<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;    <span class="comment">// require the value to be strictly less than the limit.</span></div>
<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;    <span class="keywordflow">return</span> value_.real_ &gt;= 0 &amp;&amp; value_.real_ &lt; maxUInt64AsDouble &amp;&amp;</div>
<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;           <a class="code" href="namespace_json.html#a1a04cc9d31e64b5912dade003c9b99b5">IsIntegral</a>(value_.real_);</div>
<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;  <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160;  }</div>
<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;<span class="preprocessor">#endif // JSON_HAS_INT64</span></div>
<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;}</div>
<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;</div>
<div class="line"><a name="l01276"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#aec4f74ef7b776b1d9c8a10fc3bb4add5"> 1276</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#aec4f74ef7b776b1d9c8a10fc3bb4add5">Value::isIntegral</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;<span class="preprocessor">#if defined(JSON_HAS_INT64)</span></div>
<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#aba89690e5fd72d0f7121a30013470423">isInt64</a>() || <a class="code" href="class_json_1_1_value.html#aa35efece2a6cba4d988d7d5b54db2fb8">isUInt64</a>();</div>
<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#ab0df4746d6787d2ce1db1a156c118f14">isInt</a>() || <a class="code" href="class_json_1_1_value.html#ae814ca1796fe2d43ac09898b70213989">isUInt</a>();</div>
<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;}</div>
<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;</div>
<div class="line"><a name="l01284"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a0ea567fa51fc808851698bef59b43626"> 1284</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#a0ea567fa51fc808851698bef59b43626">Value::isDouble</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eab837c7b869c14d8be712deb45c9e490e">realValue</a> || <a class="code" href="class_json_1_1_value.html#aec4f74ef7b776b1d9c8a10fc3bb4add5">isIntegral</a>(); }</div>
<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160;</div>
<div class="line"><a name="l01286"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a8ce848900e2e8fa23a41fcc2c1409fab"> 1286</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#a8ce848900e2e8fa23a41fcc2c1409fab">Value::isNumeric</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#aec4f74ef7b776b1d9c8a10fc3bb4add5">isIntegral</a>() || <a class="code" href="class_json_1_1_value.html#a0ea567fa51fc808851698bef59b43626">isDouble</a>(); }</div>
<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160;</div>
<div class="line"><a name="l01288"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a06c01d7c1e8151a5844b595ab00f46c7"> 1288</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#a06c01d7c1e8151a5844b595ab00f46c7">Value::isString</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea804ef857affea2d415843c73f261c258">stringValue</a>; }</div>
<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;</div>
<div class="line"><a name="l01290"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#ac8c898f93543e55b67418f94bced20af"> 1290</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#ac8c898f93543e55b67418f94bced20af">Value::isArray</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">arrayValue</a>; }</div>
<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;</div>
<div class="line"><a name="l01292"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a80cffaa0402b80317c0437216bbb6d92"> 1292</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#a80cffaa0402b80317c0437216bbb6d92">Value::isObject</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> type_ == <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">objectValue</a>; }</div>
<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160;</div>
<div class="line"><a name="l01294"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a2900152a2887b410a9ddabe278b9d492"> 1294</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_json_1_1_value.html#a29f3a30f7e5d3af6f38d57999bf5b480">Value::setComment</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* comment, <span class="keywordtype">size_t</span> len, <a class="code" href="namespace_json.html#a4fc417c23905b2ae9e2c47d197a45351">CommentPlacement</a> placement) {</div>
<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160;  <span class="keywordflow">if</span> (!comments_)</div>
<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;    comments_ = <span class="keyword">new</span> CommentInfo[<a class="code" href="namespace_json.html#a4fc417c23905b2ae9e2c47d197a45351abcbd3eb00417335e094e4a03379659b5">numberOfCommentPlacement</a>];</div>
<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;  <span class="keywordflow">if</span> ((len &gt; 0) &amp;&amp; (comment[len-1] == <span class="charliteral">&#39;\n&#39;</span>)) {</div>
<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;    <span class="comment">// Always discard trailing newline, to aid indentation.</span></div>
<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;    len -= 1;</div>
<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;  }</div>
<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;  comments_[placement].setComment(comment, len);</div>
<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;}</div>
<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;</div>
<div class="line"><a name="l01304"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a29f3a30f7e5d3af6f38d57999bf5b480"> 1304</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_json_1_1_value.html#a29f3a30f7e5d3af6f38d57999bf5b480">Value::setComment</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* comment, <a class="code" href="namespace_json.html#a4fc417c23905b2ae9e2c47d197a45351">CommentPlacement</a> placement) {</div>
<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;  <a class="code" href="class_json_1_1_value.html#a29f3a30f7e5d3af6f38d57999bf5b480">setComment</a>(comment, strlen(comment), placement);</div>
<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;}</div>
<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;</div>
<div class="line"><a name="l01308"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a6d68a2e7d4e1e317cd9e812e12181689"> 1308</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_json_1_1_value.html#a29f3a30f7e5d3af6f38d57999bf5b480">Value::setComment</a>(<span class="keyword">const</span> std::string&amp; comment, <a class="code" href="namespace_json.html#a4fc417c23905b2ae9e2c47d197a45351">CommentPlacement</a> placement) {</div>
<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;  <a class="code" href="class_json_1_1_value.html#a29f3a30f7e5d3af6f38d57999bf5b480">setComment</a>(comment.c_str(), comment.length(), placement);</div>
<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;}</div>
<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;</div>
<div class="line"><a name="l01312"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a06567a00363cab9601be7e31336db03a"> 1312</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_json_1_1_value.html#a06567a00363cab9601be7e31336db03a">Value::hasComment</a>(<a class="code" href="namespace_json.html#a4fc417c23905b2ae9e2c47d197a45351">CommentPlacement</a> placement)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;  <span class="keywordflow">return</span> comments_ != 0 &amp;&amp; comments_[placement].comment_ != 0;</div>
<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;}</div>
<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;</div>
<div class="line"><a name="l01316"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#aa1e105b5d7f55d6e42f4fb2f3674116f"> 1316</a></span>&#160;std::string <a class="code" href="class_json_1_1_value.html#aa1e105b5d7f55d6e42f4fb2f3674116f">Value::getComment</a>(<a class="code" href="namespace_json.html#a4fc417c23905b2ae9e2c47d197a45351">CommentPlacement</a> placement)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="class_json_1_1_value.html#a06567a00363cab9601be7e31336db03a">hasComment</a>(placement))</div>
<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;    <span class="keywordflow">return</span> comments_[placement].comment_;</div>
<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;  <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div>
<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;}</div>
<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;</div>
<div class="line"><a name="l01322"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a6d741407c3d784360c200f181b0d6d64"> 1322</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_json_1_1_value.html#a6d741407c3d784360c200f181b0d6d64">Value::setOffsetStart</a>(<span class="keywordtype">size_t</span> start) { start_ = start; }</div>
<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;</div>
<div class="line"><a name="l01324"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#ac6d858b5fd4d5fe6ca84f697def8c5ea"> 1324</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_json_1_1_value.html#ac6d858b5fd4d5fe6ca84f697def8c5ea">Value::setOffsetLimit</a>(<span class="keywordtype">size_t</span> limit) { limit_ = limit; }</div>
<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;</div>
<div class="line"><a name="l01326"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a10142eda11ae0b1caecbcc9f436854d1"> 1326</a></span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="class_json_1_1_value.html#a10142eda11ae0b1caecbcc9f436854d1">Value::getOffsetStart</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> start_; }</div>
<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;</div>
<div class="line"><a name="l01328"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#acd7114469bc39368e9d93c29b54d8c8f"> 1328</a></span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="class_json_1_1_value.html#acd7114469bc39368e9d93c29b54d8c8f">Value::getOffsetLimit</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> limit_; }</div>
<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;</div>
<div class="line"><a name="l01330"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a05357cf78959b790337fae4e5580ee4f"> 1330</a></span>&#160;std::string <a class="code" href="class_json_1_1_value.html#a05357cf78959b790337fae4e5580ee4f">Value::toStyledString</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;  <a class="code" href="class_json_1_1_styled_writer.html">StyledWriter</a> writer;</div>
<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;  <span class="keywordflow">return</span> writer.<a class="code" href="class_json_1_1_styled_writer.html#a56f0fd80f60272b3f3c85690aae66e7d">write</a>(*<span class="keyword">this</span>);</div>
<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;}</div>
<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;</div>
<div class="line"><a name="l01335"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#ac12df0d6980600c5bac908ed0f64856e"> 1335</a></span>&#160;<a class="code" href="class_json_1_1_value_const_iterator.html">Value::const_iterator</a> <a class="code" href="class_json_1_1_value.html#ac12df0d6980600c5bac908ed0f64856e">Value::begin</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;  <span class="keywordflow">switch</span> (type_) {</div>
<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">arrayValue</a>:</div>
<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">objectValue</a>:</div>
<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;    <span class="keywordflow">if</span> (value_.map_)</div>
<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#af92282ca92b58b320debd486afb7696a">const_iterator</a>(value_.map_-&gt;begin());</div>
<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;  <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;  }</div>
<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#af92282ca92b58b320debd486afb7696a">const_iterator</a>();</div>
<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;}</div>
<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;</div>
<div class="line"><a name="l01348"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a596da1926b2f2a4056bff2edb713eb0b"> 1348</a></span>&#160;<a class="code" href="class_json_1_1_value_const_iterator.html">Value::const_iterator</a> <a class="code" href="class_json_1_1_value.html#a596da1926b2f2a4056bff2edb713eb0b">Value::end</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160;  <span class="keywordflow">switch</span> (type_) {</div>
<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">arrayValue</a>:</div>
<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">objectValue</a>:</div>
<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160;    <span class="keywordflow">if</span> (value_.map_)</div>
<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#af92282ca92b58b320debd486afb7696a">const_iterator</a>(value_.map_-&gt;end());</div>
<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;  <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;  }</div>
<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#af92282ca92b58b320debd486afb7696a">const_iterator</a>();</div>
<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;}</div>
<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;</div>
<div class="line"><a name="l01361"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a2d45bb2e68e8f22fe356d7d955ebd3c9"> 1361</a></span>&#160;<a class="code" href="class_json_1_1_value_iterator.html">Value::iterator</a> <a class="code" href="class_json_1_1_value.html#ac12df0d6980600c5bac908ed0f64856e">Value::begin</a>() {</div>
<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;  <span class="keywordflow">switch</span> (type_) {</div>
<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">arrayValue</a>:</div>
<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">objectValue</a>:</div>
<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160;    <span class="keywordflow">if</span> (value_.map_)</div>
<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#a341cdf2e01f8b3c5b7317aa2f0768c53">iterator</a>(value_.map_-&gt;begin());</div>
<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;  <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;  }</div>
<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#a341cdf2e01f8b3c5b7317aa2f0768c53">iterator</a>();</div>
<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160;}</div>
<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160;</div>
<div class="line"><a name="l01374"></a><span class="lineno"><a class="line" href="class_json_1_1_value.html#a2f961eff73f7f79cd29260b6cbd42558"> 1374</a></span>&#160;<a class="code" href="class_json_1_1_value_iterator.html">Value::iterator</a> <a class="code" href="class_json_1_1_value.html#a596da1926b2f2a4056bff2edb713eb0b">Value::end</a>() {</div>
<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160;  <span class="keywordflow">switch</span> (type_) {</div>
<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">arrayValue</a>:</div>
<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160;  <span class="keywordflow">case</span> <a class="code" href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">objectValue</a>:</div>
<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;    <span class="keywordflow">if</span> (value_.map_)</div>
<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#a341cdf2e01f8b3c5b7317aa2f0768c53">iterator</a>(value_.map_-&gt;end());</div>
<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;  <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160;  }</div>
<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="class_json_1_1_value.html#a341cdf2e01f8b3c5b7317aa2f0768c53">iterator</a>();</div>
<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;}</div>
<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;</div>
<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;<span class="comment">// class PathArgument</span></div>
<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;<span class="comment">// //////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160;</div>
<div class="line"><a name="l01390"></a><span class="lineno"><a class="line" href="class_json_1_1_path_argument.html#a3c96ed20c56a55eb76d37a11553c528e"> 1390</a></span>&#160;<a class="code" href="class_json_1_1_path_argument.html#a3c96ed20c56a55eb76d37a11553c528e">PathArgument::PathArgument</a>() : key_(), index_(), kind_(kindNone) {}</div>
<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;</div>
<div class="line"><a name="l01392"></a><span class="lineno"><a class="line" href="class_json_1_1_path_argument.html#a53c5b27143b161301b95fd544c139ecf"> 1392</a></span>&#160;<a class="code" href="class_json_1_1_path_argument.html#a3c96ed20c56a55eb76d37a11553c528e">PathArgument::PathArgument</a>(<a class="code" href="namespace_json.html#a8048e741f2177c3b5d9ede4a5b8c53c2">ArrayIndex</a> index)</div>
<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;    : key_(), index_(index), kind_(kindIndex) {}</div>
<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;</div>
<div class="line"><a name="l01395"></a><span class="lineno"><a class="line" href="class_json_1_1_path_argument.html#a9690417a8a40e6e49f2acdf6c9281345"> 1395</a></span>&#160;<a class="code" href="class_json_1_1_path_argument.html#a3c96ed20c56a55eb76d37a11553c528e">PathArgument::PathArgument</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* key)</div>
<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;    : key_(key), index_(), kind_(kindKey) {}</div>
<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;</div>
<div class="line"><a name="l01398"></a><span class="lineno"><a class="line" href="class_json_1_1_path_argument.html#a08f872cfee4fc600f7fa3bcaaff0d41c"> 1398</a></span>&#160;<a class="code" href="class_json_1_1_path_argument.html#a3c96ed20c56a55eb76d37a11553c528e">PathArgument::PathArgument</a>(<span class="keyword">const</span> std::string&amp; key)</div>
<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;    : key_(key.c_str()), index_(), kind_(kindKey) {}</div>
<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;</div>
<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;<span class="comment">// class Path</span></div>
<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;<span class="comment">// //////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160;</div>
<div class="line"><a name="l01404"></a><span class="lineno"><a class="line" href="class_json_1_1_path.html#aaa37a99650e770d0cd680bf53585ec99"> 1404</a></span>&#160;<a class="code" href="class_json_1_1_path.html#aaa37a99650e770d0cd680bf53585ec99">Path::Path</a>(<span class="keyword">const</span> std::string&amp; path,</div>
<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;           <span class="keyword">const</span> <a class="code" href="class_json_1_1_path_argument.html">PathArgument</a>&amp; a1,</div>
<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;           <span class="keyword">const</span> <a class="code" href="class_json_1_1_path_argument.html">PathArgument</a>&amp; a2,</div>
<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;           <span class="keyword">const</span> <a class="code" href="class_json_1_1_path_argument.html">PathArgument</a>&amp; a3,</div>
<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;           <span class="keyword">const</span> <a class="code" href="class_json_1_1_path_argument.html">PathArgument</a>&amp; a4,</div>
<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160;           <span class="keyword">const</span> <a class="code" href="class_json_1_1_path_argument.html">PathArgument</a>&amp; a5) {</div>
<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160;  InArgs in;</div>
<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;  in.push_back(&amp;a1);</div>
<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160;  in.push_back(&amp;a2);</div>
<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;  in.push_back(&amp;a3);</div>
<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;  in.push_back(&amp;a4);</div>
<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;  in.push_back(&amp;a5);</div>
<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;  makePath(path, in);</div>
<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160;}</div>
<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;</div>
<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;<span class="keywordtype">void</span> Path::makePath(<span class="keyword">const</span> std::string&amp; path, <span class="keyword">const</span> InArgs&amp; in) {</div>
<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">char</span>* current = path.c_str();</div>
<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">char</span>* end = current + path.length();</div>
<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160;  InArgs::const_iterator itInArg = in.begin();</div>
<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;  <span class="keywordflow">while</span> (current != end) {</div>
<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160;    <span class="keywordflow">if</span> (*current == <span class="charliteral">&#39;[&#39;</span>) {</div>
<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;      ++current;</div>
<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;      <span class="keywordflow">if</span> (*current == <span class="charliteral">&#39;%&#39;</span>)</div>
<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160;        addPathInArg(path, in, itInArg, PathArgument::kindIndex);</div>
<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;      <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160;        <a class="code" href="namespace_json.html#a8048e741f2177c3b5d9ede4a5b8c53c2">ArrayIndex</a> index = 0;</div>
<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;        <span class="keywordflow">for</span> (; current != end &amp;&amp; *current &gt;= <span class="charliteral">&#39;0&#39;</span> &amp;&amp; *current &lt;= <span class="charliteral">&#39;9&#39;</span>; ++current)</div>
<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160;          index = index * 10 + <a class="code" href="namespace_json.html#a8048e741f2177c3b5d9ede4a5b8c53c2">ArrayIndex</a>(*current - <span class="charliteral">&#39;0&#39;</span>);</div>
<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160;        args_.push_back(index);</div>
<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160;      }</div>
<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160;      <span class="keywordflow">if</span> (current == end || *current++ != <span class="charliteral">&#39;]&#39;</span>)</div>
<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160;        invalidPath(path, <span class="keywordtype">int</span>(current - path.c_str()));</div>
<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160;    } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*current == <span class="charliteral">&#39;%&#39;</span>) {</div>
<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160;      addPathInArg(path, in, itInArg, PathArgument::kindKey);</div>
<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160;      ++current;</div>
<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160;    } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*current == <span class="charliteral">&#39;.&#39;</span>) {</div>
<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160;      ++current;</div>
<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160;      <span class="keyword">const</span> <span class="keywordtype">char</span>* beginName = current;</div>
<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160;      <span class="keywordflow">while</span> (current != end &amp;&amp; !strchr(<span class="stringliteral">&quot;[.&quot;</span>, *current))</div>
<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160;        ++current;</div>
<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160;      args_.push_back(std::string(beginName, current));</div>
<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160;    }</div>
<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160;  }</div>
<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160;}</div>
<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160;</div>
<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160;<span class="keywordtype">void</span> Path::addPathInArg(<span class="keyword">const</span> std::string&amp; <span class="comment">/*path*/</span>,</div>
<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160;                        <span class="keyword">const</span> InArgs&amp; in,</div>
<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;                        InArgs::const_iterator&amp; itInArg,</div>
<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160;                        PathArgument::Kind kind) {</div>
<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160;  <span class="keywordflow">if</span> (itInArg == in.end()) {</div>
<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160;    <span class="comment">// Error: missing argument %d</span></div>
<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((*itInArg)-&gt;kind_ != kind) {</div>
<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160;    <span class="comment">// Error: bad argument type</span></div>
<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160;  } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160;    args_.push_back(**itInArg);</div>
<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160;  }</div>
<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160;}</div>
<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;</div>
<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160;<span class="keywordtype">void</span> Path::invalidPath(<span class="keyword">const</span> std::string&amp; <span class="comment">/*path*/</span>, <span class="keywordtype">int</span> <span class="comment">/*location*/</span>) {</div>
<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;  <span class="comment">// Error: invalid path.</span></div>
<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160;}</div>
<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160;</div>
<div class="line"><a name="l01467"></a><span class="lineno"><a class="line" href="class_json_1_1_path.html#ae1d05fa985a6ee3c57f2b8ed186b5982"> 1467</a></span>&#160;<span class="keyword">const</span> <a class="code" href="class_json_1_1_value.html">Value</a>&amp; <a class="code" href="class_json_1_1_path.html#ae1d05fa985a6ee3c57f2b8ed186b5982">Path::resolve</a>(<span class="keyword">const</span> <a class="code" href="class_json_1_1_value.html">Value</a>&amp; root)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;  <span class="keyword">const</span> <a class="code" href="class_json_1_1_value.html">Value</a>* node = &amp;root;</div>
<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160;  <span class="keywordflow">for</span> (Args::const_iterator it = args_.begin(); it != args_.end(); ++it) {</div>
<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160;    <span class="keyword">const</span> <a class="code" href="class_json_1_1_path_argument.html">PathArgument</a>&amp; arg = *it;</div>
<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160;    <span class="keywordflow">if</span> (arg.kind_ == PathArgument::kindIndex) {</div>
<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;      <span class="keywordflow">if</span> (!node-&gt;<a class="code" href="class_json_1_1_value.html#ac8c898f93543e55b67418f94bced20af">isArray</a>() || !node-&gt;<a class="code" href="class_json_1_1_value.html#aaa82ebb4b730ea1567d310874f47d147">isValidIndex</a>(arg.index_)) {</div>
<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160;        <span class="comment">// Error: unable to resolve path (array value expected at position...</span></div>
<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160;      }</div>
<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;      node = &amp;((*node)[arg.index_]);</div>
<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;    } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (arg.kind_ == PathArgument::kindKey) {</div>
<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160;      <span class="keywordflow">if</span> (!node-&gt;<a class="code" href="class_json_1_1_value.html#a80cffaa0402b80317c0437216bbb6d92">isObject</a>()) {</div>
<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160;        <span class="comment">// Error: unable to resolve path (object value expected at position...)</span></div>
<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160;      }</div>
<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160;      node = &amp;((*node)[arg.key_]);</div>
<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160;      <span class="keywordflow">if</span> (node == &amp;Value::nullRef) {</div>
<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160;        <span class="comment">// Error: unable to resolve path (object has no member named &#39;&#39; at</span></div>
<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160;        <span class="comment">// position...)</span></div>
<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160;      }</div>
<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160;    }</div>
<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160;  }</div>
<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160;  <span class="keywordflow">return</span> *node;</div>
<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160;}</div>
<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;</div>
<div class="line"><a name="l01490"></a><span class="lineno"><a class="line" href="class_json_1_1_path.html#a33d1749770a4cf74e9a3de419bc7febe"> 1490</a></span>&#160;<a class="code" href="class_json_1_1_value.html">Value</a> <a class="code" href="class_json_1_1_path.html#ae1d05fa985a6ee3c57f2b8ed186b5982">Path::resolve</a>(<span class="keyword">const</span> <a class="code" href="class_json_1_1_value.html">Value</a>&amp; root, <span class="keyword">const</span> <a class="code" href="class_json_1_1_value.html">Value</a>&amp; defaultValue)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160;  <span class="keyword">const</span> <a class="code" href="class_json_1_1_value.html">Value</a>* node = &amp;root;</div>
<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;  <span class="keywordflow">for</span> (Args::const_iterator it = args_.begin(); it != args_.end(); ++it) {</div>
<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160;    <span class="keyword">const</span> <a class="code" href="class_json_1_1_path_argument.html">PathArgument</a>&amp; arg = *it;</div>
<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160;    <span class="keywordflow">if</span> (arg.kind_ == PathArgument::kindIndex) {</div>
<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;      <span class="keywordflow">if</span> (!node-&gt;<a class="code" href="class_json_1_1_value.html#ac8c898f93543e55b67418f94bced20af">isArray</a>() || !node-&gt;<a class="code" href="class_json_1_1_value.html#aaa82ebb4b730ea1567d310874f47d147">isValidIndex</a>(arg.index_))</div>
<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;        <span class="keywordflow">return</span> defaultValue;</div>
<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;      node = &amp;((*node)[arg.index_]);</div>
<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;    } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (arg.kind_ == PathArgument::kindKey) {</div>
<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160;      <span class="keywordflow">if</span> (!node-&gt;<a class="code" href="class_json_1_1_value.html#a80cffaa0402b80317c0437216bbb6d92">isObject</a>())</div>
<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;        <span class="keywordflow">return</span> defaultValue;</div>
<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160;      node = &amp;((*node)[arg.key_]);</div>
<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160;      <span class="keywordflow">if</span> (node == &amp;Value::nullRef)</div>
<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160;        <span class="keywordflow">return</span> defaultValue;</div>
<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160;    }</div>
<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160;  }</div>
<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;  <span class="keywordflow">return</span> *node;</div>
<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160;}</div>
<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;</div>
<div class="line"><a name="l01509"></a><span class="lineno"><a class="line" href="class_json_1_1_path.html#a5289901fc58ad1fdca1de7fb5a0b620c"> 1509</a></span>&#160;<a class="code" href="class_json_1_1_value.html">Value</a>&amp; <a class="code" href="class_json_1_1_path.html#a5289901fc58ad1fdca1de7fb5a0b620c">Path::make</a>(<a class="code" href="class_json_1_1_value.html">Value</a>&amp; root)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160;  <a class="code" href="class_json_1_1_value.html">Value</a>* node = &amp;root;</div>
<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160;  <span class="keywordflow">for</span> (Args::const_iterator it = args_.begin(); it != args_.end(); ++it) {</div>
<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160;    <span class="keyword">const</span> <a class="code" href="class_json_1_1_path_argument.html">PathArgument</a>&amp; arg = *it;</div>
<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160;    <span class="keywordflow">if</span> (arg.kind_ == PathArgument::kindIndex) {</div>
<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160;      <span class="keywordflow">if</span> (!node-&gt;<a class="code" href="class_json_1_1_value.html#ac8c898f93543e55b67418f94bced20af">isArray</a>()) {</div>
<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160;        <span class="comment">// Error: node is not an array at position ...</span></div>
<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160;      }</div>
<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160;      node = &amp;((*node)[arg.index_]);</div>
<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160;    } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (arg.kind_ == PathArgument::kindKey) {</div>
<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160;      <span class="keywordflow">if</span> (!node-&gt;<a class="code" href="class_json_1_1_value.html#a80cffaa0402b80317c0437216bbb6d92">isObject</a>()) {</div>
<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160;        <span class="comment">// Error: node is not an object at position...</span></div>
<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160;      }</div>
<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160;      node = &amp;((*node)[arg.key_]);</div>
<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160;    }</div>
<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160;  }</div>
<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160;  <span class="keywordflow">return</span> *node;</div>
<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160;}</div>
<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160;</div>
<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160;} <span class="comment">// namespace Json</span></div>
<div class="ttc" id="namespace_json_html_ab30055b4bbd82aecaca57ccecd63bbe6"><div class="ttname"><a href="namespace_json.html#ab30055b4bbd82aecaca57ccecd63bbe6">Json::kNullRef</a></div><div class="ttdeci">const unsigned char &amp; kNullRef</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00035">json_value.cpp:35</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a06567a00363cab9601be7e31336db03a"><div class="ttname"><a href="class_json_1_1_value.html#a06567a00363cab9601be7e31336db03a">Json::Value::hasComment</a></div><div class="ttdeci">bool hasComment(CommentPlacement placement) const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01312">json_value.cpp:1312</a></div></div>
<div class="ttc" id="class_json_1_1_path_html_aaa37a99650e770d0cd680bf53585ec99"><div class="ttname"><a href="class_json_1_1_path.html#aaa37a99650e770d0cd680bf53585ec99">Json::Path::Path</a></div><div class="ttdeci">Path(const std::string &amp;path, const PathArgument &amp;a1=PathArgument(), const PathArgument &amp;a2=PathArgument(), const PathArgument &amp;a3=PathArgument(), const PathArgument &amp;a4=PathArgument(), const PathArgument &amp;a5=PathArgument())</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01404">json_value.cpp:1404</a></div></div>
<div class="ttc" id="namespace_json_html_a218d880af853ce786cd985e82571d297"><div class="ttname"><a href="namespace_json.html#a218d880af853ce786cd985e82571d297">Json::LargestInt</a></div><div class="ttdeci">Int64 LargestInt</div><div class="ttdef"><b>Definition:</b> <a href="config_8h_source.html#l00103">config.h:103</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a65acdab039f60ff0da15e622f2e17739"><div class="ttname"><a href="class_json_1_1_value.html#a65acdab039f60ff0da15e622f2e17739">Json::Value::asUInt64</a></div><div class="ttdeci">UInt64 asUInt64() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00703">json_value.cpp:703</a></div></div>
<div class="ttc" id="class_json_1_1_styled_writer_html"><div class="ttname"><a href="class_json_1_1_styled_writer.html">Json::StyledWriter</a></div><div class="ttdoc">Writes a Value in JSON format in a human friendly way. </div><div class="ttdef"><b>Definition:</b> <a href="writer_8h_source.html#l00206">writer.h:206</a></div></div>
<div class="ttc" id="class_json_1_1_path_html_a5289901fc58ad1fdca1de7fb5a0b620c"><div class="ttname"><a href="class_json_1_1_path.html#a5289901fc58ad1fdca1de7fb5a0b620c">Json::Path::make</a></div><div class="ttdeci">Value &amp; make(Value &amp;root) const </div><div class="ttdoc">Creates the "path" to access the specified node and returns a reference on the node. </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01509">json_value.cpp:1509</a></div></div>
<div class="ttc" id="namespace_json_html_a1a04cc9d31e64b5912dade003c9b99b5"><div class="ttname"><a href="namespace_json.html#a1a04cc9d31e64b5912dade003c9b99b5">Json::IsIntegral</a></div><div class="ttdeci">static bool IsIntegral(double d)</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01197">json_value.cpp:1197</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_ac786e35b860b1d700cb3d3e56dd6a235"><div class="ttname"><a href="class_json_1_1_value.html#ac786e35b860b1d700cb3d3e56dd6a235">Json::Value::asInt</a></div><div class="ttdeci">Int asInt() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00636">json_value.cpp:636</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a03ee3d5df576640c93ba683f140828bd"><div class="ttname"><a href="class_json_1_1_value.html#a03ee3d5df576640c93ba683f140828bd">Json::Value::asString</a></div><div class="ttdeci">std::string asString() const </div><div class="ttdoc">Embedded zeroes are possible. </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00601">json_value.cpp:601</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a4492634870b8c5709ce967b384ac6006"><div class="ttname"><a href="class_json_1_1_value.html#a4492634870b8c5709ce967b384ac6006">Json::Value::maxInt64</a></div><div class="ttdeci">static const Int64 maxInt64</div><div class="ttdoc">Maximum signed 64 bits int value that can be stored in a Json::Value. </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00198">value.h:198</a></div></div>
<div class="ttc" id="namespace_json_html_a8048e741f2177c3b5d9ede4a5b8c53c2"><div class="ttname"><a href="namespace_json.html#a8048e741f2177c3b5d9ede4a5b8c53c2">Json::ArrayIndex</a></div><div class="ttdeci">unsigned int ArrayIndex</div><div class="ttdef"><b>Definition:</b> <a href="forwards_8h_source.html#l00023">forwards.h:23</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a6d6e9ea6807e46d5b7ded66d3032f607"><div class="ttname"><a href="class_json_1_1_value.html#a6d6e9ea6807e46d5b7ded66d3032f607">Json::Value::null</a></div><div class="ttdeci">static const Value &amp; null</div><div class="ttdoc">We regret this reference to a global instance; prefer the simpler Value(). </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00178">value.h:178</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_aeb9ad8b1bb91bdd72203dc884b3f4362"><div class="ttname"><a href="class_json_1_1_value.html#aeb9ad8b1bb91bdd72203dc884b3f4362">Json::Value::isNull</a></div><div class="ttdeci">bool isNull() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01202">json_value.cpp:1202</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_ac61bab5a465848b57610379cc07995c3"><div class="ttname"><a href="class_json_1_1_value.html#ac61bab5a465848b57610379cc07995c3">Json::Value::Members</a></div><div class="ttdeci">std::vector&lt; std::string &gt; Members</div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00165">value.h:165</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a33434ed1c0217a34d04c95fa5342fd37"><div class="ttname"><a href="class_json_1_1_value.html#a33434ed1c0217a34d04c95fa5342fd37">Json::Value::asDouble</a></div><div class="ttdeci">double asDouble() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00741">json_value.cpp:741</a></div></div>
<div class="ttc" id="namespace_json_html_a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4"><div class="ttname"><a href="namespace_json.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">Json::arrayValue</a></div><div class="ttdoc">array value (ordered list) </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00085">value.h:85</a></div></div>
<div class="ttc" id="namespace_json_html_adabc96b7ce0a8791ec91ea1a3e22c107"><div class="ttname"><a href="namespace_json.html#adabc96b7ce0a8791ec91ea1a3e22c107">Json::UInt64</a></div><div class="ttdeci">unsigned __int64 UInt64</div><div class="ttdef"><b>Definition:</b> <a href="config_8h_source.html#l00098">config.h:98</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a692b88345a745b2f89ca5d94b52e94d4"><div class="ttname"><a href="class_json_1_1_value.html#a692b88345a745b2f89ca5d94b52e94d4">Json::Value::asLargestUInt</a></div><div class="ttdeci">LargestUInt asLargestUInt() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00733">json_value.cpp:733</a></div></div>
<div class="ttc" id="assertions_8h_html_ad7facdeeca0f495765e3b204c265eadb"><div class="ttname"><a href="assertions_8h.html#ad7facdeeca0f495765e3b204c265eadb">JSON_ASSERT_MESSAGE</a></div><div class="ttdeci">#define JSON_ASSERT_MESSAGE(condition, message)</div><div class="ttdef"><b>Definition:</b> <a href="assertions_8h_source.html#l00049">assertions.h:49</a></div></div>
<div class="ttc" id="namespace_json_html_a7d654b75c16a57007925868e38212b4eaea788d9a3bb00adc6d68d97d43e1ccd3"><div class="ttname"><a href="namespace_json.html#a7d654b75c16a57007925868e38212b4eaea788d9a3bb00adc6d68d97d43e1ccd3">Json::uintValue</a></div><div class="ttdoc">unsigned integer value </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00081">value.h:81</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a3c3716cc7a0216cb1b654bb8f61c8d13"><div class="ttname"><a href="class_json_1_1_value.html#a3c3716cc7a0216cb1b654bb8f61c8d13">Json::Value::isBool</a></div><div class="ttdeci">bool isBool() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01204">json_value.cpp:1204</a></div></div>
<div class="ttc" id="json__value_8cpp_html_a08a0024ebd1cc16ccc4a208e1e817f6e"><div class="ttname"><a href="json__value_8cpp.html#a08a0024ebd1cc16ccc4a208e1e817f6e">ALIGNAS</a></div><div class="ttdeci">#define ALIGNAS(byte_alignment)</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00032">json_value.cpp:32</a></div></div>
<div class="ttc" id="namespace_json_html_a27613326e9e36bbfe04a905ac90caa91"><div class="ttname"><a href="namespace_json.html#a27613326e9e36bbfe04a905ac90caa91">Json::throwLogicError</a></div><div class="ttdeci">void throwLogicError(std::string const &amp;msg)</div><div class="ttdoc">used internally </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00174">json_value.cpp:174</a></div></div>
<div class="ttc" id="namespace_json_html_a4fc417c23905b2ae9e2c47d197a45351abcbd3eb00417335e094e4a03379659b5"><div class="ttname"><a href="namespace_json.html#a4fc417c23905b2ae9e2c47d197a45351abcbd3eb00417335e094e4a03379659b5">Json::numberOfCommentPlacement</a></div><div class="ttdoc">root value) </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00094">value.h:94</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_af0ad8aa027575c3277296458f3fb7b0a"><div class="ttname"><a href="class_json_1_1_value.html#af0ad8aa027575c3277296458f3fb7b0a">Json::Value::operator&lt;</a></div><div class="ttdeci">bool operator&lt;(const Value &amp;other) const </div><div class="ttdoc">Compare payload only, not comments etc. </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00484">json_value.cpp:484</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a184a91566cccca7b819240f0d5561c7d"><div class="ttname"><a href="class_json_1_1_value.html#a184a91566cccca7b819240f0d5561c7d">Json::Value::ArrayIndex</a></div><div class="ttdeci">Json::ArrayIndex ArrayIndex</div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00176">value.h:176</a></div></div>
<div class="ttc" id="class_json_1_1_logic_error_html"><div class="ttname"><a href="class_json_1_1_logic_error.html">Json::LogicError</a></div><div class="ttdoc">Exceptions thrown by JSON_ASSERT/JSON_FAIL macros. </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00066">value.h:66</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a899214ed2253d3f4f061b922b0e622b5"><div class="ttname"><a href="class_json_1_1_value.html#a899214ed2253d3f4f061b922b0e622b5">Json::Value::compare</a></div><div class="ttdeci">int compare(const Value &amp;other) const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00476">json_value.cpp:476</a></div></div>
<div class="ttc" id="class_json_1_1_path_argument_html_a3c96ed20c56a55eb76d37a11553c528e"><div class="ttname"><a href="class_json_1_1_path_argument.html#a3c96ed20c56a55eb76d37a11553c528e">Json::PathArgument::PathArgument</a></div><div class="ttdeci">PathArgument()</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01390">json_value.cpp:1390</a></div></div>
<div class="ttc" id="namespace_json_html_a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6"><div class="ttname"><a href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">Json::objectValue</a></div><div class="ttdoc">object value (collection of name/value pairs). </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00086">value.h:86</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a5263476047f20e2fc6de470e4de34fe5"><div class="ttname"><a href="class_json_1_1_value.html#a5263476047f20e2fc6de470e4de34fe5">Json::Value::swapPayload</a></div><div class="ttdeci">void swapPayload(Value &amp;other)</div><div class="ttdoc">Swap values but leave comments and source offsets in place. </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00457">json_value.cpp:457</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a6d741407c3d784360c200f181b0d6d64"><div class="ttname"><a href="class_json_1_1_value.html#a6d741407c3d784360c200f181b0d6d64">Json::Value::setOffsetStart</a></div><div class="ttdeci">void setOffsetStart(size_t start)</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01322">json_value.cpp:1322</a></div></div>
<div class="ttc" id="class_json_1_1_runtime_error_html_ae4f102d5c1efb773887efc8c7911e6f8"><div class="ttname"><a href="class_json_1_1_runtime_error.html#ae4f102d5c1efb773887efc8c7911e6f8">Json::RuntimeError::RuntimeError</a></div><div class="ttdeci">RuntimeError(std::string const &amp;msg)</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00164">json_value.cpp:164</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_ae9e67e08a85a2f3be3396ec0f4c47f65"><div class="ttname"><a href="class_json_1_1_value.html#ae9e67e08a85a2f3be3396ec0f4c47f65">Json::Value::removeIndex</a></div><div class="ttdeci">bool removeIndex(ArrayIndex i, Value *removed)</div><div class="ttdoc">Remove the indexed array element. </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01105">json_value.cpp:1105</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a978c799a8af3114ef7dab6fd0a310a1b"><div class="ttname"><a href="class_json_1_1_value.html#a978c799a8af3114ef7dab6fd0a310a1b">Json::Value::maxInt</a></div><div class="ttdeci">static const Int maxInt</div><div class="ttdoc">Maximum signed int value that can be stored in a Json::Value. </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00190">value.h:190</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a99c42d3ff8495dad1e91b43e66553c36"><div class="ttname"><a href="class_json_1_1_value.html#a99c42d3ff8495dad1e91b43e66553c36">Json::Value::empty</a></div><div class="ttdeci">bool empty() const </div><div class="ttdoc">Return true if empty array, empty object, or null; otherwise, false. </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00861">json_value.cpp:861</a></div></div>
<div class="ttc" id="class_json_1_1_static_string_html"><div class="ttname"><a href="class_json_1_1_static_string.html">Json::StaticString</a></div><div class="ttdoc">Lightweight wrapper to tag static string. </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00116">value.h:116</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_aa52f7873b95d29627d6e83ba96f69aaa"><div class="ttname"><a href="class_json_1_1_value.html#aa52f7873b95d29627d6e83ba96f69aaa">Json::Value::removeMember</a></div><div class="ttdeci">Value removeMember(const char *key)</div><div class="ttdoc">Remove and return the named member. </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01089">json_value.cpp:1089</a></div></div>
<div class="ttc" id="assertions_8h_html_a188941dcc789ccb6539c3d6f41405582"><div class="ttname"><a href="assertions_8h.html#a188941dcc789ccb6539c3d6f41405582">JSON_ASSERT</a></div><div class="ttdeci">#define JSON_ASSERT(condition)</div><div class="ttdoc">It should not be possible for a maliciously designed file to cause an abort() or seg-fault, so these macros are used only for pre-condition violations and internal logic errors. </div><div class="ttdef"><b>Definition:</b> <a href="assertions_8h_source.html#l00023">assertions.h:23</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_ac79e63ee68d3aa914bfd6988be669b87"><div class="ttname"><a href="class_json_1_1_value.html#ac79e63ee68d3aa914bfd6988be669b87">Json::Value::maxUInt</a></div><div class="ttdeci">static const UInt maxUInt</div><div class="ttdoc">Maximum unsigned int value that can be stored in a Json::Value. </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00192">value.h:192</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a6682a3684d635e03fc06ba229fa24eec"><div class="ttname"><a href="class_json_1_1_value.html#a6682a3684d635e03fc06ba229fa24eec">Json::Value::LargestUInt</a></div><div class="ttdeci">Json::LargestUInt LargestUInt</div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00175">value.h:175</a></div></div>
<div class="ttc" id="class_json_1_1_logic_error_html_ae8a834c790017a55df74c70b91f23329"><div class="ttname"><a href="class_json_1_1_logic_error.html#ae8a834c790017a55df74c70b91f23329">Json::LogicError::LogicError</a></div><div class="ttdeci">LogicError(std::string const &amp;msg)</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00167">json_value.cpp:167</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_aa35efece2a6cba4d988d7d5b54db2fb8"><div class="ttname"><a href="class_json_1_1_value.html#aa35efece2a6cba4d988d7d5b54db2fb8">Json::Value::isUInt64</a></div><div class="ttdeci">bool isUInt64() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01256">json_value.cpp:1256</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a795acb28772da4c5d85ae8f4af36c69f"><div class="ttname"><a href="class_json_1_1_value.html#a795acb28772da4c5d85ae8f4af36c69f">Json::Value::operator=</a></div><div class="ttdeci">Value &amp; operator=(Value other)</div><div class="ttdoc">Deep copy, then swap(other). </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00452">json_value.cpp:452</a></div></div>
<div class="ttc" id="class_json_1_1_value_const_iterator_html"><div class="ttname"><a href="class_json_1_1_value_const_iterator.html">Json::ValueConstIterator</a></div><div class="ttdoc">const iterator for object and array value. </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00729">value.h:729</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a7402c797285c020566c3db5f8ae4e940"><div class="ttname"><a href="class_json_1_1_value.html#a7402c797285c020566c3db5f8ae4e940">Json::Value::asBool</a></div><div class="ttdeci">bool asBool() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00785">json_value.cpp:785</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a80cffaa0402b80317c0437216bbb6d92"><div class="ttname"><a href="class_json_1_1_value.html#a80cffaa0402b80317c0437216bbb6d92">Json::Value::isObject</a></div><div class="ttdeci">bool isObject() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01292">json_value.cpp:1292</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_ada6ba1369448fb0240bccc36efaa46f7"><div class="ttname"><a href="class_json_1_1_value.html#ada6ba1369448fb0240bccc36efaa46f7">Json::Value::Value</a></div><div class="ttdeci">Value(ValueType type=nullValue)</div><div class="ttdoc">Create a default Value of the given type. </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00298">json_value.cpp:298</a></div></div>
<div class="ttc" id="class_json_1_1_path_argument_html"><div class="ttname"><a href="class_json_1_1_path_argument.html">Json::PathArgument</a></div><div class="ttdoc">Experimental and untested: represents an element of the "path" to access a node. </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00601">value.h:601</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a29f3a30f7e5d3af6f38d57999bf5b480"><div class="ttname"><a href="class_json_1_1_value.html#a29f3a30f7e5d3af6f38d57999bf5b480">Json::Value::setComment</a></div><div class="ttdeci">void setComment(const char *comment, CommentPlacement placement)</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01304">json_value.cpp:1304</a></div></div>
<div class="ttc" id="namespace_json_html_aff0180507262a244de61b961178d7443"><div class="ttname"><a href="namespace_json.html#aff0180507262a244de61b961178d7443">Json::InRange</a></div><div class="ttdeci">static bool InRange(double d, T min, U max)</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00057">json_value.cpp:57</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a0ea567fa51fc808851698bef59b43626"><div class="ttname"><a href="class_json_1_1_value.html#a0ea567fa51fc808851698bef59b43626">Json::Value::isDouble</a></div><div class="ttdeci">bool isDouble() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01284">json_value.cpp:1284</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_aa1e105b5d7f55d6e42f4fb2f3674116f"><div class="ttname"><a href="class_json_1_1_value.html#aa1e105b5d7f55d6e42f4fb2f3674116f">Json::Value::getComment</a></div><div class="ttdeci">std::string getComment(CommentPlacement placement) const </div><div class="ttdoc">Include delimiters and embedded newlines. </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01316">json_value.cpp:1316</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_af91df130daa50dd43d2cd89e6ee67706"><div class="ttname"><a href="class_json_1_1_value.html#af91df130daa50dd43d2cd89e6ee67706">Json::Value::minLargestInt</a></div><div class="ttdeci">static const LargestInt minLargestInt</div><div class="ttdoc">Minimum signed integer value that can be stored in a Json::Value. </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00181">value.h:181</a></div></div>
<div class="ttc" id="namespace_json_html_a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391"><div class="ttname"><a href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea7d9899633b4409bd3fc107e6737f8391">Json::nullValue</a></div><div class="ttdoc">&#39;null&#39; value </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00079">value.h:79</a></div></div>
<div class="ttc" id="assertions_8h_html"><div class="ttname"><a href="assertions_8h.html">assertions.h</a></div></div>
<div class="ttc" id="namespace_json_html_a4fc417c23905b2ae9e2c47d197a45351"><div class="ttname"><a href="namespace_json.html#a4fc417c23905b2ae9e2c47d197a45351">Json::CommentPlacement</a></div><div class="ttdeci">CommentPlacement</div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00089">value.h:89</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a196defba501d70ea2b6793afb04108e3"><div class="ttname"><a href="class_json_1_1_value.html#a196defba501d70ea2b6793afb04108e3">Json::Value::isMember</a></div><div class="ttdeci">bool isMember(const char *key) const </div><div class="ttdoc">Return true if the object has a member named key. </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01140">json_value.cpp:1140</a></div></div>
<div class="ttc" id="namespace_json_html_aad8b4982c1acd164f541fba396ac9fb1"><div class="ttname"><a href="namespace_json.html#aad8b4982c1acd164f541fba396ac9fb1">Json::decodePrefixedString</a></div><div class="ttdeci">static void decodePrefixedString(bool isPrefixed, char const *prefixed, unsigned *length, char const **value)</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00123">json_value.cpp:123</a></div></div>
<div class="ttc" id="namespace_json_html_a6b6386a40e6c4df0fa209e338b7dfd2e"><div class="ttname"><a href="namespace_json.html#a6b6386a40e6c4df0fa209e338b7dfd2e">Json::kNull</a></div><div class="ttdeci">static const unsigned char kNull[sizeof(Value)]</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00034">json_value.cpp:34</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_aaa4ffd4e53967170c3e8c9abf682b5cd"><div class="ttname"><a href="class_json_1_1_value.html#aaa4ffd4e53967170c3e8c9abf682b5cd">Json::Value::nullRef</a></div><div class="ttdeci">static const Value &amp; nullRef</div><div class="ttdoc">just a kludge for binary-compatibility; same as null </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00179">value.h:179</a></div></div>
<div class="ttc" id="namespace_json_html_ae202ecad69725e23443f465e257456d0"><div class="ttname"><a href="namespace_json.html#ae202ecad69725e23443f465e257456d0">Json::LargestUInt</a></div><div class="ttdeci">UInt64 LargestUInt</div><div class="ttdef"><b>Definition:</b> <a href="config_8h_source.html#l00104">config.h:104</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a7d99f5dba388cdaa152ce6ef933d64ef"><div class="ttname"><a href="class_json_1_1_value.html#a7d99f5dba388cdaa152ce6ef933d64ef">Json::Value::operator[]</a></div><div class="ttdeci">Value &amp; operator[](ArrayIndex index)</div><div class="ttdoc">Access an array element (zero based index ). </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00904">json_value.cpp:904</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_acd7114469bc39368e9d93c29b54d8c8f"><div class="ttname"><a href="class_json_1_1_value.html#acd7114469bc39368e9d93c29b54d8c8f">Json::Value::getOffsetLimit</a></div><div class="ttdeci">size_t getOffsetLimit() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01328">json_value.cpp:1328</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_aec4f74ef7b776b1d9c8a10fc3bb4add5"><div class="ttname"><a href="class_json_1_1_value.html#aec4f74ef7b776b1d9c8a10fc3bb4add5">Json::Value::isIntegral</a></div><div class="ttdeci">bool isIntegral() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01276">json_value.cpp:1276</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_af92282ca92b58b320debd486afb7696a"><div class="ttname"><a href="class_json_1_1_value.html#af92282ca92b58b320debd486afb7696a">Json::Value::const_iterator</a></div><div class="ttdeci">ValueConstIterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00167">value.h:167</a></div></div>
<div class="ttc" id="namespace_json_html_a5d3eba6789f9a9c1ab563ff8b4a5090f"><div class="ttname"><a href="namespace_json.html#a5d3eba6789f9a9c1ab563ff8b4a5090f">Json::valueToString</a></div><div class="ttdeci">std::string valueToString(Int value)</div><div class="ttdef"><b>Definition:</b> <a href="json__writer_8cpp_source.html#l00098">json_writer.cpp:98</a></div></div>
<div class="ttc" id="class_json_1_1_styled_writer_html_a56f0fd80f60272b3f3c85690aae66e7d"><div class="ttname"><a href="class_json_1_1_styled_writer.html#a56f0fd80f60272b3f3c85690aae66e7d">Json::StyledWriter::write</a></div><div class="ttdeci">virtual std::string write(const Value &amp;root)</div><div class="ttdoc">Serialize a Value in JSON format. </div><div class="ttdef"><b>Definition:</b> <a href="json__writer_8cpp_source.html#l00372">json_writer.cpp:372</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a2019d1bd296b89356c1b0da5970c918c"><div class="ttname"><a href="class_json_1_1_value.html#a2019d1bd296b89356c1b0da5970c918c">Json::Value::asUInt</a></div><div class="ttdeci">UInt asUInt() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00658">json_value.cpp:658</a></div></div>
<div class="ttc" id="namespace_json_html"><div class="ttname"><a href="namespace_json.html">Json</a></div><div class="ttdoc">JSON (JavaScript Object Notation). </div><div class="ttdef"><b>Definition:</b> <a href="config_8h_source.html#l00087">config.h:87</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a287dea48da3912d02756735bf677b27b"><div class="ttname"><a href="class_json_1_1_value.html#a287dea48da3912d02756735bf677b27b">Json::Value::~Value</a></div><div class="ttdeci">~Value()</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00428">json_value.cpp:428</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a30fa08af88f2d0a038b22ba9f4e88b2a"><div class="ttname"><a href="class_json_1_1_value.html#a30fa08af88f2d0a038b22ba9f4e88b2a">Json::Value::getMemberNames</a></div><div class="ttdeci">Members getMemberNames() const </div><div class="ttdoc">Return a list of the member names. </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01155">json_value.cpp:1155</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a1b86af9f85f0f1baa972c3319fa22695"><div class="ttname"><a href="class_json_1_1_value.html#a1b86af9f85f0f1baa972c3319fa22695">Json::Value::Int64</a></div><div class="ttdeci">Json::Int64 Int64</div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00172">value.h:172</a></div></div>
<div class="ttc" id="assertions_8h_html_a67007439f94bc6afc465923f56147ba1"><div class="ttname"><a href="assertions_8h.html#a67007439f94bc6afc465923f56147ba1">JSON_FAIL_MESSAGE</a></div><div class="ttdeci">#define JSON_FAIL_MESSAGE(message)</div><div class="ttdef"><b>Definition:</b> <a href="assertions_8h_source.html#l00026">assertions.h:26</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a06c01d7c1e8151a5844b595ab00f46c7"><div class="ttname"><a href="class_json_1_1_value.html#a06c01d7c1e8151a5844b595ab00f46c7">Json::Value::isString</a></div><div class="ttdeci">bool isString() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01288">json_value.cpp:1288</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_aab841120d78e296e1bc06a373345e822"><div class="ttname"><a href="class_json_1_1_value.html#aab841120d78e296e1bc06a373345e822">Json::Value::swap</a></div><div class="ttdeci">void swap(Value &amp;other)</div><div class="ttdoc">Swap everything. </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00467">json_value.cpp:467</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a1cbb82642ed05109b9833e49f042ece7"><div class="ttname"><a href="class_json_1_1_value.html#a1cbb82642ed05109b9833e49f042ece7">Json::Value::LargestInt</a></div><div class="ttdeci">Json::LargestInt LargestInt</div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00174">value.h:174</a></div></div>
<div class="ttc" id="class_json_1_1_static_string_html_ab86fc6a3183adf12fdba4b370acf1754"><div class="ttname"><a href="class_json_1_1_static_string.html#ab86fc6a3183adf12fdba4b370acf1754">Json::StaticString::c_str</a></div><div class="ttdeci">const char * c_str() const </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00122">value.h:122</a></div></div>
<div class="ttc" id="namespace_json_html_aecc0306aa526f25c5156f842182fb7fb"><div class="ttname"><a href="namespace_json.html#aecc0306aa526f25c5156f842182fb7fb">Json::maxUInt64AsDouble</a></div><div class="ttdeci">static const double maxUInt64AsDouble</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00049">json_value.cpp:49</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a5b7da48b163bcec63b1424f1608b7da6"><div class="ttname"><a href="class_json_1_1_value.html#a5b7da48b163bcec63b1424f1608b7da6">Json::Value::asCString</a></div><div class="ttdeci">const char * asCString() const </div><div class="ttdoc">Embedded zeroes could cause you trouble! </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00582">json_value.cpp:582</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_ae1eb89c305c39516696ff305cffa01da"><div class="ttname"><a href="class_json_1_1_value.html#ae1eb89c305c39516696ff305cffa01da">Json::Value::maxUInt64</a></div><div class="ttdeci">static const UInt64 maxUInt64</div><div class="ttdoc">Maximum unsigned 64 bits int value that can be stored in a Json::Value. </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00200">value.h:200</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_ab0df4746d6787d2ce1db1a156c118f14"><div class="ttname"><a href="class_json_1_1_value.html#ab0df4746d6787d2ce1db1a156c118f14">Json::Value::isInt</a></div><div class="ttdeci">bool isInt() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01206">json_value.cpp:1206</a></div></div>
<div class="ttc" id="writer_8h_html"><div class="ttname"><a href="writer_8h.html">writer.h</a></div></div>
<div class="ttc" id="namespace_json_html_a7d654b75c16a57007925868e38212b4eab837c7b869c14d8be712deb45c9e490e"><div class="ttname"><a href="namespace_json.html#a7d654b75c16a57007925868e38212b4eab837c7b869c14d8be712deb45c9e490e">Json::realValue</a></div><div class="ttdoc">double value </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00082">value.h:82</a></div></div>
<div class="ttc" id="namespace_json_html_a97f039a107b3f6cf1c3edee50e978f76"><div class="ttname"><a href="namespace_json.html#a97f039a107b3f6cf1c3edee50e978f76">Json::throwRuntimeError</a></div><div class="ttdeci">void throwRuntimeError(std::string const &amp;msg)</div><div class="ttdoc">used internally </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00170">json_value.cpp:170</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a3124a26067bdfde9571bc89527fc6931"><div class="ttname"><a href="class_json_1_1_value.html#a3124a26067bdfde9571bc89527fc6931">Json::Value::operator&gt;</a></div><div class="ttdeci">bool operator&gt;(const Value &amp;other) const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00534">json_value.cpp:534</a></div></div>
<div class="ttc" id="class_json_1_1_exception_html_a4dd1b9f007bed842e3ef9883d965fe22"><div class="ttname"><a href="class_json_1_1_exception.html#a4dd1b9f007bed842e3ef9883d965fe22">Json::Exception::Exception</a></div><div class="ttdeci">Exception(std::string const &amp;msg)</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00155">json_value.cpp:155</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_acc13fc47d55abd6e2327b090b83d2911"><div class="ttname"><a href="class_json_1_1_value.html#acc13fc47d55abd6e2327b090b83d2911">Json::Value::operator&gt;=</a></div><div class="ttdeci">bool operator&gt;=(const Value &amp;other) const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00532">json_value.cpp:532</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a0933d59b45793ae4aade1757c322a98d"><div class="ttname"><a href="class_json_1_1_value.html#a0933d59b45793ae4aade1757c322a98d">Json::Value::UInt</a></div><div class="ttdeci">Json::UInt UInt</div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00168">value.h:168</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a14363dda23a6ae2def9afd1590ae85d3"><div class="ttname"><a href="class_json_1_1_value.html#a14363dda23a6ae2def9afd1590ae85d3">Json::Value::operator==</a></div><div class="ttdeci">bool operator==(const Value &amp;other) const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00536">json_value.cpp:536</a></div></div>
<div class="ttc" id="class_json_1_1_path_html_ae1d05fa985a6ee3c57f2b8ed186b5982"><div class="ttname"><a href="class_json_1_1_path.html#ae1d05fa985a6ee3c57f2b8ed186b5982">Json::Path::resolve</a></div><div class="ttdeci">const Value &amp; resolve(const Value &amp;root) const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01467">json_value.cpp:1467</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_aaa82ebb4b730ea1567d310874f47d147"><div class="ttname"><a href="class_json_1_1_value.html#aaa82ebb4b730ea1567d310874f47d147">Json::Value::isValidIndex</a></div><div class="ttdeci">bool isValidIndex(ArrayIndex index) const </div><div class="ttdoc">Return true if index < size(). </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01001">json_value.cpp:1001</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a7e49ac977e4bcf59745a09d426669f75"><div class="ttname"><a href="class_json_1_1_value.html#a7e49ac977e4bcf59745a09d426669f75">Json::Value::append</a></div><div class="ttdeci">Value &amp; append(const Value &amp;value)</div><div class="ttdoc">Append value to array at the end. </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01051">json_value.cpp:1051</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_ac2128d7080499daf8c5b1c71da243f63"><div class="ttname"><a href="class_json_1_1_value.html#ac2128d7080499daf8c5b1c71da243f63">Json::Value::asFloat</a></div><div class="ttdeci">float asFloat() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00763">json_value.cpp:763</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a4ca8ee6c48a34ca6c2f131956bab5e05"><div class="ttname"><a href="class_json_1_1_value.html#a4ca8ee6c48a34ca6c2f131956bab5e05">Json::Value::size</a></div><div class="ttdeci">ArrayIndex size() const </div><div class="ttdoc">Number of values in array or object. </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00838">json_value.cpp:838</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a05357cf78959b790337fae4e5580ee4f"><div class="ttname"><a href="class_json_1_1_value.html#a05357cf78959b790337fae4e5580ee4f">Json::Value::toStyledString</a></div><div class="ttdeci">std::string toStyledString() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01330">json_value.cpp:1330</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a8b62564be8c087c6d18de180ff4e13e3"><div class="ttname"><a href="class_json_1_1_value.html#a8b62564be8c087c6d18de180ff4e13e3">Json::Value::UInt64</a></div><div class="ttdeci">Json::UInt64 UInt64</div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00171">value.h:171</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_abdf7a7ff73eb130ffcab28504ffdb405"><div class="ttname"><a href="class_json_1_1_value.html#abdf7a7ff73eb130ffcab28504ffdb405">Json::Value::Int</a></div><div class="ttdeci">Json::Int Int</div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00169">value.h:169</a></div></div>
<div class="ttc" id="namespace_json_html_a9795a09a0141d1f12d307c4386aeaee6"><div class="ttname"><a href="namespace_json.html#a9795a09a0141d1f12d307c4386aeaee6">Json::duplicateAndPrefixStringValue</a></div><div class="ttdeci">static char * duplicateAndPrefixStringValue(const char *value, unsigned int length)</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00102">json_value.cpp:102</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_ae814ca1796fe2d43ac09898b70213989"><div class="ttname"><a href="class_json_1_1_value.html#ae814ca1796fe2d43ac09898b70213989">Json::Value::isUInt</a></div><div class="ttdeci">bool isUInt() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01221">json_value.cpp:1221</a></div></div>
<div class="ttc" id="json__value_8cpp_html_aa5e619e3e9388f6376a344dd8462c9cc"><div class="ttname"><a href="json__value_8cpp.html#aa5e619e3e9388f6376a344dd8462c9cc">JSON_ASSERT_UNREACHABLE</a></div><div class="ttdeci">#define JSON_ASSERT_UNREACHABLE</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00022">json_value.cpp:22</a></div></div>
<div class="ttc" id="class_json_1_1_value_html"><div class="ttname"><a href="class_json_1_1_value.html">Json::Value</a></div><div class="ttdoc">Represents a JSON value. </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00162">value.h:162</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a7f739b55aef060f4ab6360bfe1912b77"><div class="ttname"><a href="class_json_1_1_value.html#a7f739b55aef060f4ab6360bfe1912b77">Json::Value::asInt64</a></div><div class="ttdeci">Int64 asInt64() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00682">json_value.cpp:682</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a695ef31fad36b4712918b3ff80158479"><div class="ttname"><a href="class_json_1_1_value.html#a695ef31fad36b4712918b3ff80158479">Json::Value::type</a></div><div class="ttdeci">ValueType type() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00474">json_value.cpp:474</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a341cdf2e01f8b3c5b7317aa2f0768c53"><div class="ttname"><a href="class_json_1_1_value.html#a341cdf2e01f8b3c5b7317aa2f0768c53">Json::Value::iterator</a></div><div class="ttdeci">ValueIterator iterator</div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00166">value.h:166</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a7ec153803631a27abf58cba2bb1af70c"><div class="ttname"><a href="class_json_1_1_value.html#a7ec153803631a27abf58cba2bb1af70c">Json::Value::isConvertibleTo</a></div><div class="ttdeci">bool isConvertibleTo(ValueType other) const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00804">json_value.cpp:804</a></div></div>
<div class="ttc" id="namespace_json_html_a678ac3a60cd70ec0fb4c9abfd40eb0c4"><div class="ttname"><a href="namespace_json.html#a678ac3a60cd70ec0fb4c9abfd40eb0c4">Json::duplicateStringValue</a></div><div class="ttdeci">static char * duplicateStringValue(const char *value, size_t length)</div><div class="ttdoc">Duplicates the specified string value. </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00082">json_value.cpp:82</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_ac6d858b5fd4d5fe6ca84f697def8c5ea"><div class="ttname"><a href="class_json_1_1_value.html#ac6d858b5fd4d5fe6ca84f697def8c5ea">Json::Value::setOffsetLimit</a></div><div class="ttdeci">void setOffsetLimit(size_t limit)</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01324">json_value.cpp:1324</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a815ef899bc312c93bc426511acfe31a7"><div class="ttname"><a href="class_json_1_1_value.html#a815ef899bc312c93bc426511acfe31a7">Json::Value::minInt64</a></div><div class="ttdeci">static const Int64 minInt64</div><div class="ttdoc">Minimum signed 64 bits int value that can be stored in a Json::Value. </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00196">value.h:196</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a7df8a39e2502b8c92a6a41e3d752d2c8"><div class="ttname"><a href="class_json_1_1_value.html#a7df8a39e2502b8c92a6a41e3d752d2c8">Json::Value::minInt</a></div><div class="ttdeci">static const Int minInt</div><div class="ttdoc">Minimum signed int value that can be stored in a Json::Value. </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00188">value.h:188</a></div></div>
<div class="ttc" id="json__valueiterator_8inl_html"><div class="ttname"><a href="json__valueiterator_8inl.html">json_valueiterator.inl</a></div></div>
<div class="ttc" id="class_json_1_1_runtime_error_html"><div class="ttname"><a href="class_json_1_1_runtime_error.html">Json::RuntimeError</a></div><div class="ttdoc">Exceptions which the user cannot easily avoid. </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00055">value.h:55</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a021ab0d15a807fbe051446c9c545ab61"><div class="ttname"><a href="class_json_1_1_value.html#a021ab0d15a807fbe051446c9c545ab61">Json::Value::operator!</a></div><div class="ttdeci">bool operator!() const </div><div class="ttdoc">Return isNull() </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00868">json_value.cpp:868</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a3786bb100c5cf9a98eb6d13784968956"><div class="ttname"><a href="class_json_1_1_value.html#a3786bb100c5cf9a98eb6d13784968956">Json::Value::asLargestInt</a></div><div class="ttdeci">LargestInt asLargestInt() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00725">json_value.cpp:725</a></div></div>
<div class="ttc" id="namespace_json_html_a800fb90eb6ee8d5d62b600c06f87f7d4"><div class="ttname"><a href="namespace_json.html#a800fb90eb6ee8d5d62b600c06f87f7d4">Json::UInt</a></div><div class="ttdeci">unsigned int UInt</div><div class="ttdef"><b>Definition:</b> <a href="config_8h_source.html#l00089">config.h:89</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a184bf49ec5da7ec31af089cf6f458f99"><div class="ttname"><a href="class_json_1_1_value.html#a184bf49ec5da7ec31af089cf6f458f99">Json::Value::find</a></div><div class="ttdeci">Value const * find(char const *begin, char const *end) const </div><div class="ttdoc">Most general and efficient version of isMember()const, get()const, and operator[]const. </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01003">json_value.cpp:1003</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_aa284353271ada427dbfa04a42f2be407"><div class="ttname"><a href="class_json_1_1_value.html#aa284353271ada427dbfa04a42f2be407">Json::Value::resize</a></div><div class="ttdeci">void resize(ArrayIndex size)</div><div class="ttdoc">Resize the array to size elements. </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00886">json_value.cpp:886</a></div></div>
<div class="ttc" id="value_8h_html"><div class="ttname"><a href="value_8h.html">value.h</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a501a4d67e6c875255c2ecc03ccd2019b"><div class="ttname"><a href="class_json_1_1_value.html#a501a4d67e6c875255c2ecc03ccd2019b">Json::Value::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdoc">Remove all object members and array elements. </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00870">json_value.cpp:870</a></div></div>
<div class="ttc" id="class_json_1_1_value_iterator_html"><div class="ttname"><a href="class_json_1_1_value_iterator.html">Json::ValueIterator</a></div><div class="ttdoc">Iterator for object and array value. </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00778">value.h:778</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_afb99dd3628fe44244b32007f9b4f369a"><div class="ttname"><a href="class_json_1_1_value.html#afb99dd3628fe44244b32007f9b4f369a">Json::Value::operator&lt;=</a></div><div class="ttdeci">bool operator&lt;=(const Value &amp;other) const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00530">json_value.cpp:530</a></div></div>
<div class="ttc" id="namespace_json_html_aba149b1f7d796287667db6c02ff65f64"><div class="ttname"><a href="namespace_json.html#aba149b1f7d796287667db6c02ff65f64">Json::Int64</a></div><div class="ttdeci">__int64 Int64</div><div class="ttdef"><b>Definition:</b> <a href="config_8h_source.html#l00097">config.h:97</a></div></div>
<div class="ttc" id="namespace_json_html_acf8dd162c01e37846e129556c50e4037"><div class="ttname"><a href="namespace_json.html#acf8dd162c01e37846e129556c50e4037">Json::releaseStringValue</a></div><div class="ttdeci">static void releaseStringValue(char *value)</div><div class="ttdoc">Free the string duplicated by duplicateStringValue()/duplicateAndPrefixStringValue(). </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00137">json_value.cpp:137</a></div></div>
<div class="ttc" id="namespace_json_html_a7d654b75c16a57007925868e38212b4e"><div class="ttname"><a href="namespace_json.html#a7d654b75c16a57007925868e38212b4e">Json::ValueType</a></div><div class="ttdeci">ValueType</div><div class="ttdoc">Type of the value held by a Value object. </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00078">value.h:78</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a28282c9b76fa031eba7a1843c47c16fe"><div class="ttname"><a href="class_json_1_1_value.html#a28282c9b76fa031eba7a1843c47c16fe">Json::Value::get</a></div><div class="ttdeci">Value get(ArrayIndex index, const Value &amp;defaultValue) const </div><div class="ttdoc">If the array contains at least index+1 elements, returns the element value, otherwise returns default...</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00996">json_value.cpp:996</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_ac8c898f93543e55b67418f94bced20af"><div class="ttname"><a href="class_json_1_1_value.html#ac8c898f93543e55b67418f94bced20af">Json::Value::isArray</a></div><div class="ttdeci">bool isArray() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01290">json_value.cpp:1290</a></div></div>
<div class="ttc" id="namespace_json_html_a7d654b75c16a57007925868e38212b4ea14c30dbf4da86f7b809be299f671f7fd"><div class="ttname"><a href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea14c30dbf4da86f7b809be299f671f7fd">Json::booleanValue</a></div><div class="ttdoc">bool value </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00084">value.h:84</a></div></div>
<div class="ttc" id="namespace_json_html_a7d654b75c16a57007925868e38212b4eae5a9d708d5c9e23ae9bf98898522512d"><div class="ttname"><a href="namespace_json.html#a7d654b75c16a57007925868e38212b4eae5a9d708d5c9e23ae9bf98898522512d">Json::intValue</a></div><div class="ttdoc">signed integer value </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00080">value.h:80</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a10142eda11ae0b1caecbcc9f436854d1"><div class="ttname"><a href="class_json_1_1_value.html#a10142eda11ae0b1caecbcc9f436854d1">Json::Value::getOffsetStart</a></div><div class="ttdeci">size_t getOffsetStart() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01326">json_value.cpp:1326</a></div></div>
<div class="ttc" id="class_json_1_1_exception_html_af39b318bae8837a3a93f1e4cd689aa48"><div class="ttname"><a href="class_json_1_1_exception.html#af39b318bae8837a3a93f1e4cd689aa48">Json::Exception::~Exception</a></div><div class="ttdeci">virtual ~Exception()</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00158">json_value.cpp:158</a></div></div>
<div class="ttc" id="namespace_json_html_a08122e8005b706d982e48cca1e2119c7"><div class="ttname"><a href="namespace_json.html#a08122e8005b706d982e48cca1e2119c7">Json::Int</a></div><div class="ttdeci">int Int</div><div class="ttdef"><b>Definition:</b> <a href="config_8h_source.html#l00088">config.h:88</a></div></div>
<div class="ttc" id="class_json_1_1_exception_html_a93032b715e86fc37ad318c60eac4cad7"><div class="ttname"><a href="class_json_1_1_exception.html#a93032b715e86fc37ad318c60eac4cad7">Json::Exception::what</a></div><div class="ttdeci">virtual char const * what() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00160">json_value.cpp:160</a></div></div>
<div class="ttc" id="namespace_json_html_a7d654b75c16a57007925868e38212b4ea804ef857affea2d415843c73f261c258"><div class="ttname"><a href="namespace_json.html#a7d654b75c16a57007925868e38212b4ea804ef857affea2d415843c73f261c258">Json::stringValue</a></div><div class="ttdoc">UTF-8 string value. </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00083">value.h:83</a></div></div>
<div class="ttc" id="class_json_1_1_exception_html_a6457bfa979e1bba636ba34605203f6a0"><div class="ttname"><a href="class_json_1_1_exception.html#a6457bfa979e1bba636ba34605203f6a0">Json::Exception::msg_</a></div><div class="ttdeci">std::string const msg_</div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00046">value.h:46</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_ac12df0d6980600c5bac908ed0f64856e"><div class="ttname"><a href="class_json_1_1_value.html#ac12df0d6980600c5bac908ed0f64856e">Json::Value::begin</a></div><div class="ttdeci">const_iterator begin() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01335">json_value.cpp:1335</a></div></div>
<div class="ttc" id="class_json_1_1_exception_html"><div class="ttname"><a href="class_json_1_1_exception.html">Json::Exception</a></div><div class="ttdoc">Base class for all exceptions we throw. </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00040">value.h:40</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a8ce848900e2e8fa23a41fcc2c1409fab"><div class="ttname"><a href="class_json_1_1_value.html#a8ce848900e2e8fa23a41fcc2c1409fab">Json::Value::isNumeric</a></div><div class="ttdeci">bool isNumeric() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01286">json_value.cpp:1286</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_ad0f12d2a4ab74bbef08a05504b2cb81d"><div class="ttname"><a href="class_json_1_1_value.html#ad0f12d2a4ab74bbef08a05504b2cb81d">Json::Value::operator!=</a></div><div class="ttdeci">bool operator!=(const Value &amp;other) const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00580">json_value.cpp:580</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_aba89690e5fd72d0f7121a30013470423"><div class="ttname"><a href="class_json_1_1_value.html#aba89690e5fd72d0f7121a30013470423">Json::Value::isInt64</a></div><div class="ttdeci">bool isInt64() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01236">json_value.cpp:1236</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a8b4977696f13296fa8755c7953fafb2f"><div class="ttname"><a href="class_json_1_1_value.html#a8b4977696f13296fa8755c7953fafb2f">Json::Value::maxLargestInt</a></div><div class="ttdeci">static const LargestInt maxLargestInt</div><div class="ttdoc">Maximum signed integer value that can be stored in a Json::Value. </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00183">value.h:183</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a596da1926b2f2a4056bff2edb713eb0b"><div class="ttname"><a href="class_json_1_1_value.html#a596da1926b2f2a4056bff2edb713eb0b">Json::Value::end</a></div><div class="ttdeci">const_iterator end() const </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01348">json_value.cpp:1348</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a1e0263113ae247a632afac43ebc4149f"><div class="ttname"><a href="class_json_1_1_value.html#a1e0263113ae247a632afac43ebc4149f">Json::Value::getString</a></div><div class="ttdeci">bool getString(char const **begin, char const **end) const </div><div class="ttdoc">Get raw char* of string-value. </div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00592">json_value.cpp:592</a></div></div>
<div class="ttc" id="class_json_1_1_value_html_a8ddb32d9d55fa5323ae5135639dc2e31"><div class="ttname"><a href="class_json_1_1_value.html#a8ddb32d9d55fa5323ae5135639dc2e31">Json::Value::maxLargestUInt</a></div><div class="ttdeci">static const LargestUInt maxLargestUInt</div><div class="ttdoc">Maximum unsigned integer value that can be stored in a Json::Value. </div><div class="ttdef"><b>Definition:</b> <a href="value_8h_source.html#l00185">value.h:185</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<hr>
</body> 
</html>