diff options
Diffstat (limited to 'md_doc_faq.html')
-rw-r--r-- | md_doc_faq.html | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/md_doc_faq.html b/md_doc_faq.html index d9b69469..4605e2f8 100644 --- a/md_doc_faq.html +++ b/md_doc_faq.html @@ -172,17 +172,17 @@ $(document).ready(function(){initNavTree('md_doc_faq.html','');}); <p class="startli">Call one of the <code>SetXXX()</code> methods - they call destructor which deallocates DOM data:</p> </li> </ol> -<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> d;</div> +<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> d;</div> <div class="line">...</div> <div class="line">d.SetObject(); <span class="comment">// clear and minimize</span></div> -</div><!-- fragment --><p>Alternatively, use equivalent of the <a href="https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Clear-and-minimize">C++ swap with temporary idiom</a>: </p><div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">kObjectType</a>).Swap(d);</div> -</div><!-- fragment --><p> or equivalent, but sightly longer to type: </p><div class="fragment"><div class="line">d.Swap(<a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">kObjectType</a>).Move()); </div> +</div><!-- fragment --><p>Alternatively, use equivalent of the <a href="https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Clear-and-minimize">C++ swap with temporary idiom</a>: </p><div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">kObjectType</a>).Swap(d);</div> +</div><!-- fragment --><p> or equivalent, but sightly longer to type: </p><div class="fragment"><div class="line">d.Swap(<a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">kObjectType</a>).Move()); </div> </div><!-- fragment --><ol type="1"> <li><p class="startli">How to insert a document node into another document?</p> -<p class="startli">Let's take the following two DOM trees represented as JSON documents: </p><div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> person;</div> +<p class="startli">Let's take the following two DOM trees represented as JSON documents: </p><div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> person;</div> <div class="line">person.Parse(<span class="stringliteral">"{\"person\":{\"name\":{\"first\":\"Adam\",\"last\":\"Thomas\"}}}"</span>);</div> <div class="line"></div> -<div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> address;</div> +<div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> address;</div> <div class="line">address.Parse(<span class="stringliteral">"{\"address\":{\"city\":\"Moscow\",\"street\":\"Quiet\"}}"</span>);</div> </div><!-- fragment --><p> Let's assume we want to merge them in such way that the whole <code>address</code> document becomes a node of the <code>person</code>: </p><div class="fragment"><div class="line">{ <span class="stringliteral">"person"</span>: {</div> <div class="line"> <span class="stringliteral">"name"</span>: { <span class="stringliteral">"first"</span>: <span class="stringliteral">"Adam"</span>, <span class="stringliteral">"last"</span>: <span class="stringliteral">"Thomas"</span> },</div> @@ -195,7 +195,7 @@ $(document).ready(function(){initNavTree('md_doc_faq.html','');}); <div class="line">person[<span class="stringliteral">"person"</span>].AddMember(<span class="stringliteral">"address"</span>, address[<span class="stringliteral">"address"</span>], person.GetAllocator());</div> </div><!-- fragment --><p> Alternatively, if we don't want to explicitly refer to the root value of <code>address</code> by name, we can refer to it via iterator: </p><div class="fragment"><div class="line"><span class="keyword">auto</span> addressRoot = address.MemberBegin();</div> <div class="line">person[<span class="stringliteral">"person"</span>].AddMember(addressRoot->name, addressRoot->value, person.GetAllocator());</div> -</div><!-- fragment --><p class="startli">Second way is to deep-clone the value from the address document: </p><div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> addressValue = <a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>(address[<span class="stringliteral">"address"</span>], person.GetAllocator());</div> +</div><!-- fragment --><p class="startli">Second way is to deep-clone the value from the address document: </p><div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> addressValue = <a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>(address[<span class="stringliteral">"address"</span>], person.GetAllocator());</div> <div class="line">person[<span class="stringliteral">"person"</span>].AddMember(<span class="stringliteral">"address"</span>, addressValue, person.GetAllocator());</div> </div><!-- fragment --></li> </ol> |