Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/miloyip/rapidjson.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--biginteger_8h_source.html2
-rw-r--r--classrapidjson_1_1_generic_document.html2
-rw-r--r--classrapidjson_1_1_generic_pointer.html59
-rw-r--r--classrapidjson_1_1_generic_reader.html11
-rw-r--r--classrapidjson_1_1_generic_schema_document-members.html26
-rw-r--r--classrapidjson_1_1_generic_schema_document.html67
-rw-r--r--classrapidjson_1_1_generic_schema_document.js20
-rw-r--r--classrapidjson_1_1_generic_schema_validator.html9
-rw-r--r--classrapidjson_1_1_generic_string_buffer.html5
-rw-r--r--classrapidjson_1_1_i_generic_remote_schema_document_provider.html3
-rw-r--r--classrapidjson_1_1_stream.html4
-rw-r--r--classrapidjson_1_1_writer.html13
-rw-r--r--dir_0b07344794a20f8375311f92e90cd9a3.html4
-rw-r--r--dir_0b07344794a20f8375311f92e90cd9a3.js2
-rw-r--r--document_8h.html16
-rw-r--r--document_8h.js4
-rw-r--r--document_8h_source.html38
-rw-r--r--encodedstream_8h_source.html3
-rw-r--r--encodings_8h_source.html4
-rw-r--r--filereadstream_8h_source.html3
-rw-r--r--files.html20
-rw-r--r--filewritestream_8h_source.html9
-rw-r--r--functions_func_g.html4
-rw-r--r--functions_func_~.html2
-rw-r--r--functions_g.html4
-rw-r--r--functions_~.html2
-rw-r--r--fwd_8h_source.html285
-rw-r--r--group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html2
-rw-r--r--hierarchy.html2
-rw-r--r--hierarchy.js2
-rw-r--r--ieee754_8h_source.html4
-rw-r--r--md_doc_dom.html8
-rw-r--r--md_doc_faq.html12
-rw-r--r--md_doc_pointer.html40
-rw-r--r--md_doc_sax.html4
-rw-r--r--md_doc_schema.html24
-rw-r--r--md_doc_stream.html14
-rw-r--r--md_doc_tutorial.html74
-rw-r--r--memorybuffer_8h_source.html15
-rw-r--r--memorystream_8h_source.html3
-rw-r--r--meta_8h_source.html8
-rw-r--r--namespacemembers.html20
-rw-r--r--namespacemembers_func.html2
-rw-r--r--namespacemembers_type.html18
-rw-r--r--namespacerapidjson.html133
-rw-r--r--navtree.js4
-rw-r--r--navtreeindex0.js20
-rw-r--r--navtreeindex1.js2
-rw-r--r--navtreeindex2.js40
-rw-r--r--navtreeindex3.js102
-rw-r--r--pointer_8h_source.html31
-rw-r--r--prettywriter_8h_source.html22
-rw-r--r--rapidjson_8h.html51
-rw-r--r--rapidjson_8h.js12
-rw-r--r--rapidjson_8h_source.html232
-rw-r--r--reader_8h.html13
-rw-r--r--reader_8h.js1
-rw-r--r--reader_8h_source.html39
-rw-r--r--regex_8h_source.html1321
-rw-r--r--schema_8h_source.html71
-rw-r--r--search/all_10.js8
-rw-r--r--search/all_13.js2
-rw-r--r--search/all_15.js2
-rw-r--r--search/all_3.js2
-rw-r--r--search/all_6.js4
-rw-r--r--search/all_8.js4
-rw-r--r--search/all_e.js4
-rw-r--r--search/all_f.js2
-rw-r--r--search/functions_11.js2
-rw-r--r--search/functions_6.js4
-rw-r--r--search/functions_b.js2
-rw-r--r--search/typedefs_2.js2
-rw-r--r--search/typedefs_5.js4
-rw-r--r--search/typedefs_8.js2
-rw-r--r--search/typedefs_9.js2
-rw-r--r--search/typedefs_a.js6
-rw-r--r--search/typedefs_b.js2
-rw-r--r--search/variables_7.js2
-rw-r--r--stack_8h_source.html2
-rw-r--r--stream_8h_source.html305
-rw-r--r--strfunc_8h_source.html2
-rw-r--r--stringbuffer_8h_source.html208
-rw-r--r--strtod_8h_source.html505
-rw-r--r--structrapidjson_1_1_a_s_c_i_i.html4
-rw-r--r--structrapidjson_1_1_a_s_c_i_i.js2
-rw-r--r--structrapidjson_1_1_auto_u_t_f.html4
-rw-r--r--structrapidjson_1_1_auto_u_t_f.js2
-rw-r--r--structrapidjson_1_1_base_reader_handler.html5
-rw-r--r--structrapidjson_1_1_generic_insitu_string_stream.html7
-rw-r--r--structrapidjson_1_1_generic_memory_buffer.html5
-rw-r--r--structrapidjson_1_1_generic_pointer_1_1_token.html2
-rw-r--r--structrapidjson_1_1_generic_string_ref.html6
-rw-r--r--structrapidjson_1_1_generic_string_stream.html7
-rw-r--r--structrapidjson_1_1_stream_traits.html12
-rw-r--r--structrapidjson_1_1_stream_traits.js2
-rw-r--r--structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html6
-rw-r--r--structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.js2
-rw-r--r--structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html6
-rw-r--r--structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.js2
-rw-r--r--structrapidjson_1_1_u_t_f16.html4
-rw-r--r--structrapidjson_1_1_u_t_f16.js2
-rw-r--r--structrapidjson_1_1_u_t_f16_b_e.html4
-rw-r--r--structrapidjson_1_1_u_t_f16_l_e.html4
-rw-r--r--structrapidjson_1_1_u_t_f32.html4
-rw-r--r--structrapidjson_1_1_u_t_f32.js2
-rw-r--r--structrapidjson_1_1_u_t_f32_b_e.html4
-rw-r--r--structrapidjson_1_1_u_t_f32_l_e.html4
-rw-r--r--structrapidjson_1_1_u_t_f8.html4
-rw-r--r--structrapidjson_1_1_u_t_f8.js2
-rw-r--r--structrapidjson_1_1_writer_1_1_level.html2
-rw-r--r--writer_8h_source.html31
-rw-r--r--zh-cn/biginteger_8h_source.html2
-rw-r--r--zh-cn/classrapidjson_1_1_generic_document.html2
-rw-r--r--zh-cn/classrapidjson_1_1_generic_pointer.html57
-rw-r--r--zh-cn/classrapidjson_1_1_generic_reader.html9
-rw-r--r--zh-cn/classrapidjson_1_1_generic_schema_document-members.html26
-rw-r--r--zh-cn/classrapidjson_1_1_generic_schema_document.html65
-rw-r--r--zh-cn/classrapidjson_1_1_generic_schema_document.js20
-rw-r--r--zh-cn/classrapidjson_1_1_generic_schema_validator.html7
-rw-r--r--zh-cn/classrapidjson_1_1_generic_string_buffer.html3
-rw-r--r--zh-cn/classrapidjson_1_1_i_generic_remote_schema_document_provider.html1
-rw-r--r--zh-cn/classrapidjson_1_1_stream.html4
-rw-r--r--zh-cn/classrapidjson_1_1_writer.html11
-rw-r--r--zh-cn/dir_0b07344794a20f8375311f92e90cd9a3.html4
-rw-r--r--zh-cn/dir_0b07344794a20f8375311f92e90cd9a3.js2
-rw-r--r--zh-cn/document_8h.html16
-rw-r--r--zh-cn/document_8h.js4
-rw-r--r--zh-cn/document_8h_source.html38
-rw-r--r--zh-cn/encodedstream_8h_source.html3
-rw-r--r--zh-cn/encodings_8h_source.html4
-rw-r--r--zh-cn/filereadstream_8h_source.html3
-rw-r--r--zh-cn/files.html20
-rw-r--r--zh-cn/filewritestream_8h_source.html9
-rw-r--r--zh-cn/functions_func_g.html4
-rw-r--r--zh-cn/functions_func_~.html2
-rw-r--r--zh-cn/functions_g.html4
-rw-r--r--zh-cn/functions_~.html2
-rw-r--r--zh-cn/fwd_8h_source.html285
-rw-r--r--zh-cn/group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html2
-rw-r--r--zh-cn/hierarchy.html2
-rw-r--r--zh-cn/hierarchy.js2
-rw-r--r--zh-cn/ieee754_8h_source.html4
-rw-r--r--zh-cn/md_doc_dom_8zh-cn.html8
-rw-r--r--zh-cn/md_doc_faq_8zh-cn.html12
-rw-r--r--zh-cn/md_doc_pointer_8zh-cn.html40
-rw-r--r--zh-cn/md_doc_sax_8zh-cn.html4
-rw-r--r--zh-cn/md_doc_schema_8zh-cn.html24
-rw-r--r--zh-cn/md_doc_stream_8zh-cn.html14
-rw-r--r--zh-cn/md_doc_tutorial_8zh-cn.html70
-rw-r--r--zh-cn/memorybuffer_8h_source.html15
-rw-r--r--zh-cn/memorystream_8h_source.html3
-rw-r--r--zh-cn/meta_8h_source.html8
-rw-r--r--zh-cn/namespacemembers.html20
-rw-r--r--zh-cn/namespacemembers_func.html2
-rw-r--r--zh-cn/namespacemembers_type.html18
-rw-r--r--zh-cn/namespacerapidjson.html133
-rw-r--r--zh-cn/navtree.js4
-rw-r--r--zh-cn/navtreeindex0.js20
-rw-r--r--zh-cn/navtreeindex1.js2
-rw-r--r--zh-cn/navtreeindex2.js40
-rw-r--r--zh-cn/navtreeindex3.js102
-rw-r--r--zh-cn/pointer_8h_source.html31
-rw-r--r--zh-cn/prettywriter_8h_source.html22
-rw-r--r--zh-cn/rapidjson_8h.html51
-rw-r--r--zh-cn/rapidjson_8h.js12
-rw-r--r--zh-cn/rapidjson_8h_source.html232
-rw-r--r--zh-cn/reader_8h.html13
-rw-r--r--zh-cn/reader_8h.js1
-rw-r--r--zh-cn/reader_8h_source.html39
-rw-r--r--zh-cn/regex_8h_source.html1321
-rw-r--r--zh-cn/schema_8h_source.html71
-rw-r--r--zh-cn/search/all_10.js8
-rw-r--r--zh-cn/search/all_13.js2
-rw-r--r--zh-cn/search/all_15.js2
-rw-r--r--zh-cn/search/all_3.js2
-rw-r--r--zh-cn/search/all_6.js4
-rw-r--r--zh-cn/search/all_8.js4
-rw-r--r--zh-cn/search/all_e.js4
-rw-r--r--zh-cn/search/all_f.js2
-rw-r--r--zh-cn/search/functions_11.js2
-rw-r--r--zh-cn/search/functions_6.js4
-rw-r--r--zh-cn/search/functions_b.js2
-rw-r--r--zh-cn/search/typedefs_2.js2
-rw-r--r--zh-cn/search/typedefs_5.js4
-rw-r--r--zh-cn/search/typedefs_8.js2
-rw-r--r--zh-cn/search/typedefs_9.js2
-rw-r--r--zh-cn/search/typedefs_a.js6
-rw-r--r--zh-cn/search/typedefs_b.js2
-rw-r--r--zh-cn/search/variables_7.js2
-rw-r--r--zh-cn/stack_8h_source.html2
-rw-r--r--zh-cn/stream_8h_source.html305
-rw-r--r--zh-cn/strfunc_8h_source.html2
-rw-r--r--zh-cn/stringbuffer_8h_source.html208
-rw-r--r--zh-cn/strtod_8h_source.html505
-rw-r--r--zh-cn/structrapidjson_1_1_a_s_c_i_i.html4
-rw-r--r--zh-cn/structrapidjson_1_1_a_s_c_i_i.js2
-rw-r--r--zh-cn/structrapidjson_1_1_auto_u_t_f.html4
-rw-r--r--zh-cn/structrapidjson_1_1_auto_u_t_f.js2
-rw-r--r--zh-cn/structrapidjson_1_1_base_reader_handler.html3
-rw-r--r--zh-cn/structrapidjson_1_1_generic_insitu_string_stream.html5
-rw-r--r--zh-cn/structrapidjson_1_1_generic_memory_buffer.html3
-rw-r--r--zh-cn/structrapidjson_1_1_generic_pointer_1_1_token.html2
-rw-r--r--zh-cn/structrapidjson_1_1_generic_string_ref.html6
-rw-r--r--zh-cn/structrapidjson_1_1_generic_string_stream.html5
-rw-r--r--zh-cn/structrapidjson_1_1_stream_traits.html12
-rw-r--r--zh-cn/structrapidjson_1_1_stream_traits.js2
-rw-r--r--zh-cn/structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html6
-rw-r--r--zh-cn/structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.js2
-rw-r--r--zh-cn/structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html6
-rw-r--r--zh-cn/structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.js2
-rw-r--r--zh-cn/structrapidjson_1_1_u_t_f16.html4
-rw-r--r--zh-cn/structrapidjson_1_1_u_t_f16.js2
-rw-r--r--zh-cn/structrapidjson_1_1_u_t_f16_b_e.html4
-rw-r--r--zh-cn/structrapidjson_1_1_u_t_f16_l_e.html4
-rw-r--r--zh-cn/structrapidjson_1_1_u_t_f32.html4
-rw-r--r--zh-cn/structrapidjson_1_1_u_t_f32.js2
-rw-r--r--zh-cn/structrapidjson_1_1_u_t_f32_b_e.html4
-rw-r--r--zh-cn/structrapidjson_1_1_u_t_f32_l_e.html4
-rw-r--r--zh-cn/structrapidjson_1_1_u_t_f8.html4
-rw-r--r--zh-cn/structrapidjson_1_1_u_t_f8.js2
-rw-r--r--zh-cn/structrapidjson_1_1_writer_1_1_level.html2
-rw-r--r--zh-cn/writer_8h_source.html31
222 files changed, 4527 insertions, 3819 deletions
diff --git a/biginteger_8h_source.html b/biginteger_8h_source.html
index 672dedc8..3c12d144 100644
--- a/biginteger_8h_source.html
+++ b/biginteger_8h_source.html
@@ -379,7 +379,7 @@ $(document).ready(function(){initNavTree('biginteger_8h_source.html','');});
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_BIGINTEGER_H_</span></div>
<div class="ttc" id="rapidjson_8h_html_aaee1245f375a71be1ac9b8a07ba5fb8f"><div class="ttname"><a href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a></div><div class="ttdeci">#define RAPIDJSON_UINT64_C2(high32, low32)</div><div class="ttdoc">Construct a 64-bit literal by a pair of 32-bit integer. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:288</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:716</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:557</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/classrapidjson_1_1_generic_document.html b/classrapidjson_1_1_generic_document.html
index e1d1c366..295c015f 100644
--- a/classrapidjson_1_1_generic_document.html
+++ b/classrapidjson_1_1_generic_document.html
@@ -846,7 +846,7 @@ template&lt;typename Encoding, typename Allocator, typename StackAllocator&gt; <
<p>Implicit conversion to get the last parse result. </p>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html">ParseResult</a> of the last parse operation</dd></dl>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> doc;</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> doc;</div>
<div class="line">ParseResult ok = doc.Parse(json);</div>
<div class="line"><span class="keywordflow">if</span> (!ok)</div>
<div class="line"> printf( <span class="stringliteral">&quot;JSON parse error: %s (%u)\n&quot;</span>, <a class="code" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gabdaf1a7a4db30fb0e3d927fdf0fabe79">GetParseError_En</a>(ok.Code()), ok.Offset());</div>
diff --git a/classrapidjson_1_1_generic_pointer.html b/classrapidjson_1_1_generic_pointer.html
index f9d7abb3..0a64938a 100644
--- a/classrapidjson_1_1_generic_pointer.html
+++ b/classrapidjson_1_1_generic_pointer.html
@@ -317,7 +317,7 @@ template&lt;typename stackAllocator &gt; </td></tr>
<tr class="separator:ad9f28da15453d91c3669618a6f48bfcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><h3>template&lt;typename ValueType, typename Allocator = CrtAllocator&gt;<br />
+<div class="textblock"><h3>template&lt;typename ValueType, typename Allocator&gt;<br />
class rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</h3>
<p>Represents a JSON Pointer. Use Pointer for <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding and default allocator. </p>
@@ -340,7 +340,7 @@ class rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</h3>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -385,7 +385,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -431,7 +431,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -484,7 +484,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -527,7 +527,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="line"><span class="preprocessor">#define INDEX(i) { #i, sizeof(#i) - 1, i }</span></div>
<div class="line"></div>
<div class="line"><span class="keyword">static</span> <span class="keyword">const</span> Pointer::Token kTokens[] = { NAME(<span class="stringliteral">&quot;foo&quot;</span>), INDEX(123) };</div>
-<div class="line"><span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">Pointer</a> p(kTokens, <span class="keyword">sizeof</span>(kTokens) / <span class="keyword">sizeof</span>(kTokens[0]));</div>
+<div class="line"><span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">Pointer</a> p(kTokens, <span class="keyword">sizeof</span>(kTokens) / <span class="keyword">sizeof</span>(kTokens[0]));</div>
<div class="line"><span class="comment">// Equivalent to static const Pointer p(&quot;/foo/123&quot;);</span></div>
<div class="line"></div>
<div class="line"><span class="preprocessor">#undef NAME</span></div>
@@ -540,7 +540,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -586,7 +586,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -639,7 +639,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
@@ -687,7 +687,7 @@ template&lt;typename T &gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -733,7 +733,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -779,7 +779,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -825,7 +825,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -880,7 +880,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<div class="memtemplate">
template&lt;typename stackAllocator &gt; </div>
<table class="mlabels">
@@ -928,7 +928,7 @@ template&lt;typename stackAllocator &gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -964,7 +964,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -999,7 +999,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -1034,7 +1034,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -1088,7 +1088,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
@@ -1140,7 +1140,7 @@ template&lt;typename T &gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<div class="memtemplate">
template&lt;typename T , typename stackAllocator &gt; </div>
<table class="mlabels">
@@ -1186,7 +1186,7 @@ template&lt;typename T , typename stackAllocator &gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -1215,7 +1215,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -1244,7 +1244,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -1298,7 +1298,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
@@ -1350,7 +1350,7 @@ template&lt;typename T &gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<div class="memtemplate">
template&lt;typename T , typename stackAllocator &gt; </div>
<table class="mlabels">
@@ -1396,7 +1396,7 @@ template&lt;typename T , typename stackAllocator &gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<div class="memtemplate">
template&lt;typename OutputStream &gt; </div>
<table class="mlabels">
@@ -1438,7 +1438,7 @@ template&lt;typename OutputStream &gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<div class="memtemplate">
template&lt;typename OutputStream &gt; </div>
<table class="mlabels">
@@ -1480,7 +1480,7 @@ template&lt;typename OutputStream &gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -1530,7 +1530,8 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
</div>
</div>
-<hr/>The documentation for this class was generated from the following file:<ul>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>include/rapidjson/<a class="el" href="fwd_8h_source.html">fwd.h</a></li>
<li>include/rapidjson/<a class="el" href="pointer_8h_source.html">pointer.h</a></li>
</ul>
</div><!-- contents -->
diff --git a/classrapidjson_1_1_generic_reader.html b/classrapidjson_1_1_generic_reader.html
index b8c1e478..6ac4f82d 100644
--- a/classrapidjson_1_1_generic_reader.html
+++ b/classrapidjson_1_1_generic_reader.html
@@ -140,7 +140,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>SetParseError</b> (<a
<tr class="separator:a544704abdce535d93ae0f45d0cf0bc0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><h3>template&lt;typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator&gt;<br />
+<div class="textblock"><h3>template&lt;typename SourceEncoding, typename TargetEncoding, typename StackAllocator&gt;<br />
class rapidjson::GenericReader&lt; SourceEncoding, TargetEncoding, StackAllocator &gt;</h3>
<p>SAX-style JSON parser. Use <a class="el" href="md_doc_sax.html#Reader">Reader</a> for <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding and default allocator. </p>
@@ -161,7 +161,7 @@ class rapidjson::GenericReader&lt; SourceEncoding, TargetEncoding, StackAllocato
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator&gt; </div>
+template&lt;typename SourceEncoding, typename TargetEncoding, typename StackAllocator&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -207,7 +207,7 @@ template&lt;typename SourceEncoding, typename TargetEncoding, typename StackAllo
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator&gt; </div>
+template&lt;typename SourceEncoding, typename TargetEncoding, typename StackAllocator&gt; </div>
<div class="memtemplate">
template&lt;unsigned parseFlags, typename InputStream , typename Handler &gt; </div>
<table class="mlabels">
@@ -263,7 +263,7 @@ template&lt;unsigned parseFlags, typename InputStream , typename Handler &gt; </
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator&gt; </div>
+template&lt;typename SourceEncoding, typename TargetEncoding, typename StackAllocator&gt; </div>
<div class="memtemplate">
template&lt;typename InputStream , typename Handler &gt; </div>
<table class="mlabels">
@@ -314,7 +314,8 @@ template&lt;typename InputStream , typename Handler &gt; </div>
</div>
</div>
-<hr/>The documentation for this class was generated from the following file:<ul>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>include/rapidjson/<a class="el" href="fwd_8h_source.html">fwd.h</a></li>
<li>include/rapidjson/<a class="el" href="reader_8h_source.html">reader.h</a></li>
</ul>
</div><!-- contents -->
diff --git a/classrapidjson_1_1_generic_schema_document-members.html b/classrapidjson_1_1_generic_schema_document-members.html
index 736427bb..3d682f64 100644
--- a/classrapidjson_1_1_generic_schema_document-members.html
+++ b/classrapidjson_1_1_generic_schema_document-members.html
@@ -85,23 +85,23 @@ $(document).ready(function(){initNavTree('classrapidjson_1_1_generic_schema_docu
<div class="header">
<div class="headertitle">
-<div class="title">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt; Member List</div> </div>
+<div class="title">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt; Member List</div> </div>
</div><!--header-->
<div class="contents">
-<p>This is the complete list of members for <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>, including all inherited members.</p>
+<p>This is the complete list of members for <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>, including all inherited members.</p>
<table class="directory">
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>AllocatorType</b> typedef (defined in <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>Ch</b> typedef (defined in <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>EncodingType</b> typedef (defined in <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html#a09c94a10d412ee188de575b82292a90e">GenericSchemaDocument</a>(const ValueType &amp;document, IRemoteSchemaDocumentProviderType *remoteProvider=0, Allocator *allocator=0)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenericSchemaValidator</b> (defined in <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
- <tr><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html#a666d94105aa39c446327105339378320">GetRoot</a>() const </td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>IRemoteSchemaDocumentProviderType</b> typedef (defined in <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>PointerType</b> typedef (defined in <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>SchemaType</b> typedef (defined in <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>ValueType</b> typedef (defined in <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html#ad05d77ee8910b43513acf48fadf99c28">~GenericSchemaDocument</a>()</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>AllocatorType</b> typedef (defined in <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>Ch</b> typedef (defined in <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>EncodingType</b> typedef (defined in <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html#ad200cc7bcb193c8568cdbda7b7fd0496">GenericSchemaDocument</a>(const ValueType &amp;document, IRemoteSchemaDocumentProviderType *remoteProvider=0, Allocator *allocator=0)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenericSchemaValidator</b> (defined in <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html#af64ea17654ab0f1a91e382d422f91daf">GetRoot</a>() const </td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>IRemoteSchemaDocumentProviderType</b> typedef (defined in <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>PointerType</b> typedef (defined in <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>SchemaType</b> typedef (defined in <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>ValueType</b> typedef (defined in <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html#adf6f3372013227873ed392dee1e752bf">~GenericSchemaDocument</a>()</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.7-->
diff --git a/classrapidjson_1_1_generic_schema_document.html b/classrapidjson_1_1_generic_schema_document.html
index 2bcae8e9..1dd41284 100644
--- a/classrapidjson_1_1_generic_schema_document.html
+++ b/classrapidjson_1_1_generic_schema_document.html
@@ -5,7 +5,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
-<title>RapidJSON: rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt; Class Template Reference</title>
+<title>RapidJSON: rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -91,7 +91,7 @@ $(document).ready(function(){initNavTree('classrapidjson_1_1_generic_schema_docu
<a href="#friends">Friends</a> &#124;
<a href="classrapidjson_1_1_generic_schema_document-members.html">List of all members</a> </div>
<div class="headertitle">
-<div class="title">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt; Class Template Reference</div> </div>
+<div class="title">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -102,45 +102,45 @@ $(document).ready(function(){initNavTree('classrapidjson_1_1_generic_schema_docu
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
-<tr class="memitem:a8fa1491b1225a19fbe614bb2d6825222"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8fa1491b1225a19fbe614bb2d6825222"></a>
+<tr class="memitem:a87eb1db271e7f57442802a5f4f6178f3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a87eb1db271e7f57442802a5f4f6178f3"></a>
typedef ValueT&#160;</td><td class="memItemRight" valign="bottom"><b>ValueType</b></td></tr>
-<tr class="separator:a8fa1491b1225a19fbe614bb2d6825222"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a06a3a9f30a63d9da12472fbea7c2c8b1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a06a3a9f30a63d9da12472fbea7c2c8b1"></a>
+<tr class="separator:a87eb1db271e7f57442802a5f4f6178f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab2764f2258889b3262eff6293d7ca015"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab2764f2258889b3262eff6293d7ca015"></a>
typedef <br class="typebreak" />
<a class="el" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IGenericRemoteSchemaDocumentProvider</a><br class="typebreak" />
&lt; <a class="el" href="classrapidjson_1_1_generic_schema_document.html">GenericSchemaDocument</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>IRemoteSchemaDocumentProviderType</b></td></tr>
-<tr class="separator:a06a3a9f30a63d9da12472fbea7c2c8b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a16de40d860a7c8ec1299ad644df43c9f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a16de40d860a7c8ec1299ad644df43c9f"></a>
+<tr class="separator:ab2764f2258889b3262eff6293d7ca015"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6fc497ef6e303b3a3ecec9fefe82eade"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6fc497ef6e303b3a3ecec9fefe82eade"></a>
typedef <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a>&#160;</td><td class="memItemRight" valign="bottom"><b>AllocatorType</b></td></tr>
-<tr class="separator:a16de40d860a7c8ec1299ad644df43c9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aafeabeff1ef66d27738b8ddfad7af9b2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aafeabeff1ef66d27738b8ddfad7af9b2"></a>
+<tr class="separator:a6fc497ef6e303b3a3ecec9fefe82eade"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a019035fd281ca52874ed434ce4f7d4d8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a019035fd281ca52874ed434ce4f7d4d8"></a>
typedef ValueType::EncodingType&#160;</td><td class="memItemRight" valign="bottom"><b>EncodingType</b></td></tr>
-<tr class="separator:aafeabeff1ef66d27738b8ddfad7af9b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a12958fba0cd706113a2825847756ff51"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a12958fba0cd706113a2825847756ff51"></a>
+<tr class="separator:a019035fd281ca52874ed434ce4f7d4d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af9b82162834b30bdcbe93cb065d0aedd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af9b82162834b30bdcbe93cb065d0aedd"></a>
typedef EncodingType::Ch&#160;</td><td class="memItemRight" valign="bottom"><b>Ch</b></td></tr>
-<tr class="separator:a12958fba0cd706113a2825847756ff51"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af9a7be9da5b3f884b83ec39e991ee5bc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af9a7be9da5b3f884b83ec39e991ee5bc"></a>
+<tr class="separator:af9b82162834b30bdcbe93cb065d0aedd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaf4e7f371de938025f7ed4be3b83266e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaf4e7f371de938025f7ed4be3b83266e"></a>
typedef internal::Schema<br class="typebreak" />
&lt; <a class="el" href="classrapidjson_1_1_generic_schema_document.html">GenericSchemaDocument</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>SchemaType</b></td></tr>
-<tr class="separator:af9a7be9da5b3f884b83ec39e991ee5bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7afaa64e663a4119cadd4af488372c68"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7afaa64e663a4119cadd4af488372c68"></a>
+<tr class="separator:aaf4e7f371de938025f7ed4be3b83266e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a61540c0f8aa542760ae03257a0e6dab7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a61540c0f8aa542760ae03257a0e6dab7"></a>
typedef <a class="el" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a><br class="typebreak" />
&lt; ValueType, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointerType</b></td></tr>
-<tr class="separator:a7afaa64e663a4119cadd4af488372c68"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:a61540c0f8aa542760ae03257a0e6dab7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
-<tr class="memitem:a09c94a10d412ee188de575b82292a90e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_schema_document.html#a09c94a10d412ee188de575b82292a90e">GenericSchemaDocument</a> (const ValueType &amp;document, <a class="el" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IRemoteSchemaDocumentProviderType</a> *remoteProvider=0, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> *allocator=0)</td></tr>
-<tr class="memdesc:a09c94a10d412ee188de575b82292a90e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="#a09c94a10d412ee188de575b82292a90e">More...</a><br /></td></tr>
-<tr class="separator:a09c94a10d412ee188de575b82292a90e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad05d77ee8910b43513acf48fadf99c28"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad05d77ee8910b43513acf48fadf99c28"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_schema_document.html#ad05d77ee8910b43513acf48fadf99c28">~GenericSchemaDocument</a> ()</td></tr>
-<tr class="memdesc:ad05d77ee8910b43513acf48fadf99c28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
-<tr class="separator:ad05d77ee8910b43513acf48fadf99c28"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a666d94105aa39c446327105339378320"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a666d94105aa39c446327105339378320"></a>
-const SchemaType &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_schema_document.html#a666d94105aa39c446327105339378320">GetRoot</a> () const </td></tr>
-<tr class="memdesc:a666d94105aa39c446327105339378320"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the root schema. <br /></td></tr>
-<tr class="separator:a666d94105aa39c446327105339378320"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad200cc7bcb193c8568cdbda7b7fd0496"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_schema_document.html#ad200cc7bcb193c8568cdbda7b7fd0496">GenericSchemaDocument</a> (const ValueType &amp;document, <a class="el" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IRemoteSchemaDocumentProviderType</a> *remoteProvider=0, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> *allocator=0)</td></tr>
+<tr class="memdesc:ad200cc7bcb193c8568cdbda7b7fd0496"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="#ad200cc7bcb193c8568cdbda7b7fd0496">More...</a><br /></td></tr>
+<tr class="separator:ad200cc7bcb193c8568cdbda7b7fd0496"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adf6f3372013227873ed392dee1e752bf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adf6f3372013227873ed392dee1e752bf"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_schema_document.html#adf6f3372013227873ed392dee1e752bf">~GenericSchemaDocument</a> ()</td></tr>
+<tr class="memdesc:adf6f3372013227873ed392dee1e752bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
+<tr class="separator:adf6f3372013227873ed392dee1e752bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af64ea17654ab0f1a91e382d422f91daf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af64ea17654ab0f1a91e382d422f91daf"></a>
+const SchemaType &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_schema_document.html#af64ea17654ab0f1a91e382d422f91daf">GetRoot</a> () const </td></tr>
+<tr class="memdesc:af64ea17654ab0f1a91e382d422f91daf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the root schema. <br /></td></tr>
+<tr class="separator:af64ea17654ab0f1a91e382d422f91daf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
@@ -150,8 +150,8 @@ template&lt;typename , typename , typename &gt; </td></tr>
<tr class="separator:afcc03e6ba8f1a819e1a028c31ad38347"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><h3>template&lt;typename ValueType, typename Allocator&gt;<br />
-class rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</h3>
+<div class="textblock"><h3>template&lt;typename ValueT, typename Allocator&gt;<br />
+class rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</h3>
<p>JSON schema document. </p>
<p>A JSON schema document is a compiled version of a JSON schema. It is basically a tree of internal::Schema.</p>
@@ -164,17 +164,17 @@ class rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</h3>
</dd>
</dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="a09c94a10d412ee188de575b82292a90e"></a>
+<a class="anchor" id="ad200cc7bcb193c8568cdbda7b7fd0496"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType , typename Allocator &gt; </div>
+template&lt;typename ValueT , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument</a>&lt; ValueType, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> &gt;::<a class="el" href="classrapidjson_1_1_generic_schema_document.html">GenericSchemaDocument</a> </td>
+ <td class="memname"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument</a>&lt; ValueT, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> &gt;::<a class="el" href="classrapidjson_1_1_generic_schema_document.html">GenericSchemaDocument</a> </td>
<td>(</td>
<td class="paramtype">const ValueType &amp;&#160;</td>
<td class="paramname"><em>document</em>, </td>
@@ -217,7 +217,8 @@ template&lt;typename ValueType , typename Allocator &gt; </div>
</div>
</div>
-<hr/>The documentation for this class was generated from the following file:<ul>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>include/rapidjson/<a class="el" href="fwd_8h_source.html">fwd.h</a></li>
<li>include/rapidjson/<a class="el" href="schema_8h_source.html">schema.h</a></li>
</ul>
</div><!-- contents -->
diff --git a/classrapidjson_1_1_generic_schema_document.js b/classrapidjson_1_1_generic_schema_document.js
index fcd1fb90..c80a835e 100644
--- a/classrapidjson_1_1_generic_schema_document.js
+++ b/classrapidjson_1_1_generic_schema_document.js
@@ -1,14 +1,14 @@
var classrapidjson_1_1_generic_schema_document =
[
- [ "AllocatorType", "classrapidjson_1_1_generic_schema_document.html#a16de40d860a7c8ec1299ad644df43c9f", null ],
- [ "Ch", "classrapidjson_1_1_generic_schema_document.html#a12958fba0cd706113a2825847756ff51", null ],
- [ "EncodingType", "classrapidjson_1_1_generic_schema_document.html#aafeabeff1ef66d27738b8ddfad7af9b2", null ],
- [ "IRemoteSchemaDocumentProviderType", "classrapidjson_1_1_generic_schema_document.html#a06a3a9f30a63d9da12472fbea7c2c8b1", null ],
- [ "PointerType", "classrapidjson_1_1_generic_schema_document.html#a7afaa64e663a4119cadd4af488372c68", null ],
- [ "SchemaType", "classrapidjson_1_1_generic_schema_document.html#af9a7be9da5b3f884b83ec39e991ee5bc", null ],
- [ "ValueType", "classrapidjson_1_1_generic_schema_document.html#a8fa1491b1225a19fbe614bb2d6825222", null ],
- [ "GenericSchemaDocument", "classrapidjson_1_1_generic_schema_document.html#a09c94a10d412ee188de575b82292a90e", null ],
- [ "~GenericSchemaDocument", "classrapidjson_1_1_generic_schema_document.html#ad05d77ee8910b43513acf48fadf99c28", null ],
- [ "GetRoot", "classrapidjson_1_1_generic_schema_document.html#a666d94105aa39c446327105339378320", null ],
+ [ "AllocatorType", "classrapidjson_1_1_generic_schema_document.html#a6fc497ef6e303b3a3ecec9fefe82eade", null ],
+ [ "Ch", "classrapidjson_1_1_generic_schema_document.html#af9b82162834b30bdcbe93cb065d0aedd", null ],
+ [ "EncodingType", "classrapidjson_1_1_generic_schema_document.html#a019035fd281ca52874ed434ce4f7d4d8", null ],
+ [ "IRemoteSchemaDocumentProviderType", "classrapidjson_1_1_generic_schema_document.html#ab2764f2258889b3262eff6293d7ca015", null ],
+ [ "PointerType", "classrapidjson_1_1_generic_schema_document.html#a61540c0f8aa542760ae03257a0e6dab7", null ],
+ [ "SchemaType", "classrapidjson_1_1_generic_schema_document.html#aaf4e7f371de938025f7ed4be3b83266e", null ],
+ [ "ValueType", "classrapidjson_1_1_generic_schema_document.html#a87eb1db271e7f57442802a5f4f6178f3", null ],
+ [ "GenericSchemaDocument", "classrapidjson_1_1_generic_schema_document.html#ad200cc7bcb193c8568cdbda7b7fd0496", null ],
+ [ "~GenericSchemaDocument", "classrapidjson_1_1_generic_schema_document.html#adf6f3372013227873ed392dee1e752bf", null ],
+ [ "GetRoot", "classrapidjson_1_1_generic_schema_document.html#af64ea17654ab0f1a91e382d422f91daf", null ],
[ "GenericSchemaValidator", "classrapidjson_1_1_generic_schema_document.html#afcc03e6ba8f1a819e1a028c31ad38347", null ]
]; \ No newline at end of file
diff --git a/classrapidjson_1_1_generic_schema_validator.html b/classrapidjson_1_1_generic_schema_validator.html
index 2f57e0c1..bb162efb 100644
--- a/classrapidjson_1_1_generic_schema_validator.html
+++ b/classrapidjson_1_1_generic_schema_validator.html
@@ -220,7 +220,7 @@ virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>FreeState</b>
<tr class="separator:acd4ac0e7042c9ab63e5b9e443dbc0d14"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><h3>template&lt;typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler&lt;typename SchemaDocumentType::SchemaType::EncodingType&gt;, typename StateAllocator = CrtAllocator&gt;<br />
+<div class="textblock"><h3>template&lt;typename SchemaDocumentType, typename OutputHandler, typename StateAllocator&gt;<br />
class rapidjson::GenericSchemaValidator&lt; SchemaDocumentType, OutputHandler, StateAllocator &gt;</h3>
<p>JSON Schema Validator. </p>
@@ -238,7 +238,7 @@ class rapidjson::GenericSchemaValidator&lt; SchemaDocumentType, OutputHandler, S
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler&lt;typename SchemaDocumentType::SchemaType::EncodingType&gt;, typename StateAllocator = CrtAllocator&gt; </div>
+template&lt;typename SchemaDocumentType , typename OutputHandler , typename StateAllocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -297,7 +297,7 @@ template&lt;typename SchemaDocumentType, typename OutputHandler = BaseReaderHand
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler&lt;typename SchemaDocumentType::SchemaType::EncodingType&gt;, typename StateAllocator = CrtAllocator&gt; </div>
+template&lt;typename SchemaDocumentType , typename OutputHandler , typename StateAllocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -358,7 +358,8 @@ template&lt;typename SchemaDocumentType, typename OutputHandler = BaseReaderHand
</div>
</div>
-<hr/>The documentation for this class was generated from the following file:<ul>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>include/rapidjson/<a class="el" href="fwd_8h_source.html">fwd.h</a></li>
<li>include/rapidjson/<a class="el" href="schema_8h_source.html">schema.h</a></li>
</ul>
</div><!-- contents -->
diff --git a/classrapidjson_1_1_generic_string_buffer.html b/classrapidjson_1_1_generic_string_buffer.html
index bf6a446f..16692883 100644
--- a/classrapidjson_1_1_generic_string_buffer.html
+++ b/classrapidjson_1_1_generic_string_buffer.html
@@ -155,7 +155,7 @@ static const size_t&#160;</td><td class="memItemRight" valign="bottom"><b>kDefau
<tr class="separator:a56159d25a431109a2873e9455178eff0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><h3>template&lt;typename Encoding, typename Allocator = CrtAllocator&gt;<br />
+<div class="textblock"><h3>template&lt;typename Encoding, typename Allocator&gt;<br />
class rapidjson::GenericStringBuffer&lt; Encoding, Allocator &gt;</h3>
<p>Represents an in-memory output stream. </p>
@@ -167,7 +167,8 @@ class rapidjson::GenericStringBuffer&lt; Encoding, Allocator &gt;</h3>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>implements <a class="el" href="classrapidjson_1_1_stream.html" title="Concept for reading and writing characters. ">Stream</a> concept </dd></dl>
-</div><hr/>The documentation for this class was generated from the following file:<ul>
+</div><hr/>The documentation for this class was generated from the following files:<ul>
+<li>include/rapidjson/<a class="el" href="fwd_8h_source.html">fwd.h</a></li>
<li>include/rapidjson/<a class="el" href="stringbuffer_8h_source.html">stringbuffer.h</a></li>
</ul>
</div><!-- contents -->
diff --git a/classrapidjson_1_1_i_generic_remote_schema_document_provider.html b/classrapidjson_1_1_i_generic_remote_schema_document_provider.html
index acd659e1..4eb85a5a 100644
--- a/classrapidjson_1_1_i_generic_remote_schema_document_provider.html
+++ b/classrapidjson_1_1_i_generic_remote_schema_document_provider.html
@@ -105,7 +105,8 @@ Public Member Functions</h2></td></tr>
virtual const SchemaDocumentType *&#160;</td><td class="memItemRight" valign="bottom"><b>GetRemoteDocument</b> (const Ch *uri, <a class="el" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> length)=0</td></tr>
<tr class="separator:a41dc360abb19df5a09c1ed1a83ec683c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-<hr/>The documentation for this class was generated from the following file:<ul>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>include/rapidjson/<a class="el" href="fwd_8h_source.html">fwd.h</a></li>
<li>include/rapidjson/<a class="el" href="schema_8h_source.html">schema.h</a></li>
</ul>
</div><!-- contents -->
diff --git a/classrapidjson_1_1_stream.html b/classrapidjson_1_1_stream.html
index 54d4fd34..7f6ae8c9 100644
--- a/classrapidjson_1_1_stream.html
+++ b/classrapidjson_1_1_stream.html
@@ -92,7 +92,7 @@ $(document).ready(function(){initNavTree('classrapidjson_1_1_stream.html','');})
<p>Concept for reading and writing characters.
<a href="classrapidjson_1_1_stream.html#details">More...</a></p>
-<p><code>#include &lt;<a class="el" href="rapidjson_8h_source.html">rapidjson.h</a>&gt;</code></p>
+<p><code>#include &lt;<a class="el" href="stream_8h_source.html">stream.h</a>&gt;</code></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Concept for reading and writing characters. </p>
<p>For read-only stream, no need to implement PutBegin(), Put(), Flush() and PutEnd().</p>
@@ -126,7 +126,7 @@ $(document).ready(function(){initNavTree('classrapidjson_1_1_stream.html','');})
<div class="line"><span class="comment"></span> <span class="keywordtype">size_t</span> PutEnd(Ch* begin);</div>
<div class="line">}</div>
</div><!-- fragment --> </div><hr/>The documentation for this class was generated from the following file:<ul>
-<li>include/rapidjson/<a class="el" href="rapidjson_8h_source.html">rapidjson.h</a></li>
+<li>include/rapidjson/<a class="el" href="stream_8h_source.html">stream.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/classrapidjson_1_1_writer.html b/classrapidjson_1_1_writer.html
index 5acac21c..20373bd0 100644
--- a/classrapidjson_1_1_writer.html
+++ b/classrapidjson_1_1_writer.html
@@ -272,7 +272,7 @@ static const size_t&#160;</td><td class="memItemRight" valign="bottom"><b>kDefau
<tr class="separator:a0fafbb3341c0f5d14856a72ec2dcc970"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><h3>template&lt;typename OutputStream, typename SourceEncoding = UTF8&lt;&gt;, typename TargetEncoding = UTF8&lt;&gt;, typename StackAllocator = CrtAllocator&gt;<br />
+<div class="textblock"><h3>template&lt;typename OutputStream, typename SourceEncoding, typename TargetEncoding, typename StackAllocator&gt;<br />
class rapidjson::Writer&lt; OutputStream, SourceEncoding, TargetEncoding, StackAllocator &gt;</h3>
<p>JSON writer. </p>
@@ -295,7 +295,7 @@ class rapidjson::Writer&lt; OutputStream, SourceEncoding, TargetEncoding, StackA
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename OutputStream, typename SourceEncoding = UTF8&lt;&gt;, typename TargetEncoding = UTF8&lt;&gt;, typename StackAllocator = CrtAllocator&gt; </div>
+template&lt;typename OutputStream , typename SourceEncoding , typename TargetEncoding , typename StackAllocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -348,7 +348,7 @@ template&lt;typename OutputStream, typename SourceEncoding = UTF8&lt;&gt;, typen
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename OutputStream, typename SourceEncoding = UTF8&lt;&gt;, typename TargetEncoding = UTF8&lt;&gt;, typename StackAllocator = CrtAllocator&gt; </div>
+template&lt;typename OutputStream , typename SourceEncoding , typename TargetEncoding , typename StackAllocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -383,7 +383,7 @@ template&lt;typename OutputStream, typename SourceEncoding = UTF8&lt;&gt;, typen
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename OutputStream, typename SourceEncoding = UTF8&lt;&gt;, typename TargetEncoding = UTF8&lt;&gt;, typename StackAllocator = CrtAllocator&gt; </div>
+template&lt;typename OutputStream , typename SourceEncoding , typename TargetEncoding , typename StackAllocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -411,7 +411,7 @@ template&lt;typename OutputStream, typename SourceEncoding = UTF8&lt;&gt;, typen
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename OutputStream, typename SourceEncoding = UTF8&lt;&gt;, typename TargetEncoding = UTF8&lt;&gt;, typename StackAllocator = CrtAllocator&gt; </div>
+template&lt;typename OutputStream , typename SourceEncoding , typename TargetEncoding , typename StackAllocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -451,7 +451,8 @@ template&lt;typename OutputStream, typename SourceEncoding = UTF8&lt;&gt;, typen
</div>
</div>
-<hr/>The documentation for this class was generated from the following file:<ul>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>include/rapidjson/<a class="el" href="fwd_8h_source.html">fwd.h</a></li>
<li>include/rapidjson/<a class="el" href="writer_8h_source.html">writer.h</a></li>
</ul>
</div><!-- contents -->
diff --git a/dir_0b07344794a20f8375311f92e90cd9a3.html b/dir_0b07344794a20f8375311f92e90cd9a3.html
index 7034a067..2fa8213a 100644
--- a/dir_0b07344794a20f8375311f92e90cd9a3.html
+++ b/dir_0b07344794a20f8375311f92e90cd9a3.html
@@ -110,6 +110,8 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:filewritestream_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>filewritestream.h</b> <a href="filewritestream_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:fwd_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>fwd.h</b> <a href="fwd_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:memorybuffer_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>memorybuffer.h</b> <a href="memorybuffer_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:memorystream_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>memorystream.h</b> <a href="memorystream_8h_source.html">[code]</a></td></tr>
@@ -125,6 +127,8 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:schema_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>schema.h</b> <a href="schema_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:stream_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>stream.h</b> <a href="stream_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:stringbuffer_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>stringbuffer.h</b> <a href="stringbuffer_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:writer_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>writer.h</b> <a href="writer_8h_source.html">[code]</a></td></tr>
diff --git a/dir_0b07344794a20f8375311f92e90cd9a3.js b/dir_0b07344794a20f8375311f92e90cd9a3.js
index ed39274f..24b69180 100644
--- a/dir_0b07344794a20f8375311f92e90cd9a3.js
+++ b/dir_0b07344794a20f8375311f92e90cd9a3.js
@@ -8,6 +8,7 @@ var dir_0b07344794a20f8375311f92e90cd9a3 =
[ "encodings.h", "encodings_8h_source.html", null ],
[ "filereadstream.h", "filereadstream_8h_source.html", null ],
[ "filewritestream.h", "filewritestream_8h_source.html", null ],
+ [ "fwd.h", "fwd_8h_source.html", null ],
[ "memorybuffer.h", "memorybuffer_8h_source.html", null ],
[ "memorystream.h", "memorystream_8h_source.html", null ],
[ "pointer.h", "pointer_8h_source.html", null ],
@@ -15,6 +16,7 @@ var dir_0b07344794a20f8375311f92e90cd9a3 =
[ "rapidjson.h", "rapidjson_8h.html", "rapidjson_8h" ],
[ "reader.h", "reader_8h.html", "reader_8h" ],
[ "schema.h", "schema_8h_source.html", null ],
+ [ "stream.h", "stream_8h_source.html", null ],
[ "stringbuffer.h", "stringbuffer_8h_source.html", null ],
[ "writer.h", "writer_8h_source.html", null ]
]; \ No newline at end of file
diff --git a/document_8h.html b/document_8h.html
index b398a547..24e00d52 100644
--- a/document_8h.html
+++ b/document_8h.html
@@ -137,14 +137,14 @@ Namespaces</h2></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
-<tr class="memitem:afb3fa116c66d834b6f4289d648cc8d6d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afb3fa116c66d834b6f4289d648cc8d6d"></a>
-typedef GenericValue&lt; UTF8&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">rapidjson::Value</a></td></tr>
-<tr class="memdesc:afb3fa116c66d834b6f4289d648cc8d6d"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_generic_value.html" title="Represents a JSON value. Use Value for UTF8 encoding and default allocator. ">GenericValue</a> with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
-<tr class="separator:afb3fa116c66d834b6f4289d648cc8d6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a660c934c2959121babf799b6cb206659"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a660c934c2959121babf799b6cb206659"></a>
-typedef GenericDocument&lt; UTF8&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">rapidjson::Document</a></td></tr>
-<tr class="memdesc:a660c934c2959121babf799b6cb206659"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_generic_document.html" title="A document for parsing JSON text as DOM. ">GenericDocument</a> with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
-<tr class="separator:a660c934c2959121babf799b6cb206659"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa65fc9fb381b2cbc54f98673eadd6505"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa65fc9fb381b2cbc54f98673eadd6505"></a>
+typedef GenericValue&lt; UTF8&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">rapidjson::Value</a></td></tr>
+<tr class="memdesc:aa65fc9fb381b2cbc54f98673eadd6505"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_generic_value.html" title="Represents a JSON value. Use Value for UTF8 encoding and default allocator. ">GenericValue</a> with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
+<tr class="separator:aa65fc9fb381b2cbc54f98673eadd6505"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace11b5b575baf1cccd5ba5f8586dcdc8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ace11b5b575baf1cccd5ba5f8586dcdc8"></a>
+typedef GenericDocument&lt; UTF8&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">rapidjson::Document</a></td></tr>
+<tr class="memdesc:ace11b5b575baf1cccd5ba5f8586dcdc8"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_generic_document.html" title="A document for parsing JSON text as DOM. ">GenericDocument</a> with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
+<tr class="separator:ace11b5b575baf1cccd5ba5f8586dcdc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
diff --git a/document_8h.js b/document_8h.js
index 974bfe22..b1022390 100644
--- a/document_8h.js
+++ b/document_8h.js
@@ -9,8 +9,8 @@ var document_8h =
[ "I", "structrapidjson_1_1_generic_value_1_1_number_1_1_i.html", "structrapidjson_1_1_generic_value_1_1_number_1_1_i" ],
[ "U", "structrapidjson_1_1_generic_value_1_1_number_1_1_u.html", "structrapidjson_1_1_generic_value_1_1_number_1_1_u" ],
[ "GenericDocument", "classrapidjson_1_1_generic_document.html", "classrapidjson_1_1_generic_document" ],
- [ "Document", "document_8h.html#a660c934c2959121babf799b6cb206659", null ],
- [ "Value", "document_8h.html#afb3fa116c66d834b6f4289d648cc8d6d", null ],
+ [ "Document", "document_8h.html#ace11b5b575baf1cccd5ba5f8586dcdc8", null ],
+ [ "Value", "document_8h.html#aa65fc9fb381b2cbc54f98673eadd6505", null ],
[ "StringRef", "document_8h.html#aa6b9fd9f6aa49405a574c362ba9af6b5", null ],
[ "StringRef", "document_8h.html#a578c51ab574a50a9c760b9da7c7562f2", null ],
[ "StringRef", "document_8h.html#af94951529a5d51e8c4e6e770bb707c1f", null ]
diff --git a/document_8h_source.html b/document_8h_source.html
index 08c8d802..c1dea165 100644
--- a/document_8h_source.html
+++ b/document_8h_source.html
@@ -264,7 +264,7 @@ $(document).ready(function(){initNavTree('document_8h_source.html','');});
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="comment"> //! @name dereference</span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment"></span><span class="comment"> //@{</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="comment"></span> Reference operator*()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *ptr_; }</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">Pointer</a> operator-&gt;()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ptr_; }</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">Pointer</a> operator-&gt;()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ptr_; }</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; Reference operator[](DifferenceType n)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ptr_[n]; }<span class="comment"></span></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><span class="comment"></span></div>
@@ -582,7 +582,7 @@ $(document).ready(function(){initNavTree('document_8h_source.html','');});
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; : data_(), flags_(b ? kTrueFlag : kFalseFlag) {</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="comment">// safe-guard against failing SFINAE</span></div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <a class="code" href="rapidjson_8h.html#af95188da1d8eb6d4b148fe9ce71cd7c4">RAPIDJSON_STATIC_ASSERT</a>((<a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">internal::IsSame&lt;bool,T&gt;::Value</a>));</div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <a class="code" href="rapidjson_8h.html#af95188da1d8eb6d4b148fe9ce71cd7c4">RAPIDJSON_STATIC_ASSERT</a>((<a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">internal::IsSame&lt;bool,T&gt;::Value</a>));</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; }</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;<span class="comment"> //! Constructor for int value.</span></div>
@@ -1840,7 +1840,7 @@ $(document).ready(function(){initNavTree('document_8h_source.html','');});
<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160;};</div>
<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160;<span class="comment">//! GenericValue with UTF8 encoding</span></div>
-<div class="line"><a name="l01753"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d"> 1753</a></span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_value.html">GenericValue&lt;UTF8&lt;&gt;</a> &gt; <a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>;</div>
+<div class="line"><a name="l01753"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505"> 1753</a></span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_value.html">GenericValue&lt;UTF8&lt;&gt;</a> &gt; <a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>;</div>
<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160;<span class="comment">///////////////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160;<span class="comment"></span><span class="comment">// GenericDocument </span></div>
@@ -2188,7 +2188,7 @@ $(document).ready(function(){initNavTree('document_8h_source.html','');});
<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160;};</div>
<div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160;<span class="comment">//! GenericDocument with UTF8 encoding</span></div>
-<div class="line"><a name="l02101"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659"> 2101</a></span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_document.html">GenericDocument&lt;UTF8&lt;&gt;</a> &gt; <a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a>;</div>
+<div class="line"><a name="l02101"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8"> 2101</a></span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_document.html">GenericDocument&lt;UTF8&lt;&gt;</a> &gt; <a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a>;</div>
<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160;</div>
<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160;<span class="comment">// defined here due to the dependency on GenericDocument</span></div>
<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator&gt;</div>
@@ -2237,21 +2237,23 @@ $(document).ready(function(){initNavTree('document_8h_source.html','');});
<div class="ttc" id="classrapidjson_1_1_generic_member_iterator_html_a41b953d6523fdc09f4f21c7b345e5833"><div class="ttname"><a href="classrapidjson_1_1_generic_member_iterator.html#a41b953d6523fdc09f4f21c7b345e5833">rapidjson::GenericMemberIterator::DifferenceType</a></div><div class="ttdeci">BaseType::difference_type DifferenceType</div><div class="ttdoc">Signed integer type (e.g. ptrdiff_t) </div><div class="ttdef"><b>Definition:</b> document.h:120</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html_a41bbec044c421e870a9d355075d741bc"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#a41bbec044c421e870a9d355075d741bc">rapidjson::GenericDocument::ValueType</a></div><div class="ttdeci">GenericValue&lt; Encoding, Allocator &gt; ValueType</div><div class="ttdoc">Value type of the document. </div><div class="ttdef"><b>Definition:</b> document.h:1770</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a4a8060a42b7953a2981ad892180ca5a6"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a4a8060a42b7953a2981ad892180ca5a6">rapidjson::GenericValue::GenericValue</a></div><div class="ttdeci">GenericValue(unsigned u) RAPIDJSON_NOEXCEPT</div><div class="ttdoc">Constructor for unsigned value. </div><div class="ttdef"><b>Definition:</b> document.h:506</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e">rapidjson::kTrueType</a></div><div class="ttdoc">true </div><div class="ttdef"><b>Definition:</b> rapidjson.h:719</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e">rapidjson::kTrueType</a></div><div class="ttdoc">true </div><div class="ttdef"><b>Definition:</b> rapidjson.h:560</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a916f443e02f9379d8fbde49a4d440f61"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a916f443e02f9379d8fbde49a4d440f61">rapidjson::GenericValue::Erase</a></div><div class="ttdeci">ValueIterator Erase(ConstValueIterator first, ConstValueIterator last)</div><div class="ttdoc">Remove elements in the range [first, last) of the array. </div><div class="ttdef"><b>Definition:</b> document.h:1423</div></div>
<div class="ttc" id="structrapidjson_1_1_generic_value_1_1_number_1_1_i_html"><div class="ttname"><a href="structrapidjson_1_1_generic_value_1_1_number_1_1_i.html">rapidjson::GenericValue::Number::I</a></div><div class="ttdef"><b>Definition:</b> document.h:1634</div></div>
-<div class="ttc" id="structrapidjson_1_1_generic_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_string_stream.html">rapidjson::GenericStringStream</a></div><div class="ttdoc">Read-only string stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:645</div></div>
+<div class="ttc" id="structrapidjson_1_1_generic_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_string_stream.html">rapidjson::GenericStringStream</a></div><div class="ttdoc">Read-only string stream. </div><div class="ttdef"><b>Definition:</b> fwd.h:47</div></div>
<div class="ttc" id="classrapidjson_1_1_handler_html"><div class="ttname"><a href="classrapidjson_1_1_handler.html">rapidjson::Handler</a></div><div class="ttdoc">Concept for receiving events from GenericReader upon parsing. The functions return true if no error o...</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a07b19e65fb756cae13e5bdc515cfbd4b"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a07b19e65fb756cae13e5bdc515cfbd4b">rapidjson::GenericValue::Move</a></div><div class="ttdeci">GenericValue &amp; Move() RAPIDJSON_NOEXCEPT</div><div class="ttdoc">Prepare Value for move semantics. </div><div class="ttdef"><b>Definition:</b> document.h:681</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a8d1040c479d89edb261db86400ebe603"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a8d1040c479d89edb261db86400ebe603">rapidjson::GenericValue::Begin</a></div><div class="ttdeci">ValueIterator Begin()</div><div class="ttdoc">Element iterator. </div><div class="ttdef"><b>Definition:</b> document.h:1306</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_member_iterator_html_a61b9a9ba8a5917d90406532f104605cc"><div class="ttname"><a href="classrapidjson_1_1_generic_member_iterator.html#a61b9a9ba8a5917d90406532f104605cc">rapidjson::GenericMemberIterator::ConstIterator</a></div><div class="ttdeci">GenericMemberIterator&lt; true, Encoding, Allocator &gt; ConstIterator</div><div class="ttdoc">Constant iterator type. </div><div class="ttdef"><b>Definition:</b> document.h:111</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_member_iterator_html_a6d7cfaef258b0774da1b642907d81060"><div class="ttname"><a href="classrapidjson_1_1_generic_member_iterator.html#a6d7cfaef258b0774da1b642907d81060">rapidjson::GenericMemberIterator::operator-</a></div><div class="ttdeci">DifferenceType operator-(ConstIterator that) const </div><div class="ttdoc">Distance. </div><div class="ttdef"><b>Definition:</b> document.h:182</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_ad9553bb9ccbfd19547c473a95405a8b2"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#ad9553bb9ccbfd19547c473a95405a8b2">rapidjson::GenericValue::GenericValue</a></div><div class="ttdeci">GenericValue(const Ch *s, SizeType length, Allocator &amp;allocator)</div><div class="ttdoc">Constructor for copy-string (i.e. do make a copy of string) </div><div class="ttdef"><b>Definition:</b> document.h:547</div></div>
+<div class="ttc" id="namespacerapidjson_html_aa65fc9fb381b2cbc54f98673eadd6505"><div class="ttname"><a href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">rapidjson::Value</a></div><div class="ttdeci">GenericValue&lt; UTF8&lt;&gt; &gt; Value</div><div class="ttdoc">GenericValue with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> document.h:1753</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_acd4ae9a8dba4498d1d7cce6667529bb8"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#acd4ae9a8dba4498d1d7cce6667529bb8">rapidjson::GenericValue::GenericValue</a></div><div class="ttdeci">GenericValue(int64_t i64) RAPIDJSON_NOEXCEPT</div><div class="ttdoc">Constructor for int64_t value. </div><div class="ttdef"><b>Definition:</b> document.h:513</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a433a64b466c80cadf7d1acaa6f065437"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a433a64b466c80cadf7d1acaa6f065437">rapidjson::GenericValue::~GenericValue</a></div><div class="ttdeci">~GenericValue()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> document.h:562</div></div>
<div class="ttc" id="rapidjson_8h_html_aaee1245f375a71be1ac9b8a07ba5fb8f"><div class="ttname"><a href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a></div><div class="ttdeci">#define RAPIDJSON_UINT64_C2(high32, low32)</div><div class="ttdoc">Construct a 64-bit literal by a pair of 32-bit integer. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:288</div></div>
-<div class="ttc" id="classrapidjson_1_1_generic_reader_html"><div class="ttname"><a href="classrapidjson_1_1_generic_reader.html">rapidjson::GenericReader</a></div><div class="ttdoc">SAX-style JSON parser. Use Reader for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> reader.h:379</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_reader_html"><div class="ttname"><a href="classrapidjson_1_1_generic_reader.html">rapidjson::GenericReader</a></div><div class="ttdoc">SAX-style JSON parser. Use Reader for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> fwd.h:88</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html_acf96a3c7fd61486d049c701b1fe5d414"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#acf96a3c7fd61486d049c701b1fe5d414">rapidjson::GenericDocument::ParseStream</a></div><div class="ttdeci">GenericDocument &amp; ParseStream(InputStream &amp;is)</div><div class="ttdoc">Parse JSON text from an input stream (with kParseDefaultFlags) </div><div class="ttdef"><b>Definition:</b> document.h:1927</div></div>
+<div class="ttc" id="namespacerapidjson_html_a080910f74d2f5046e6724280159cf374"><div class="ttname"><a href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">rapidjson::Pointer</a></div><div class="ttdeci">GenericPointer&lt; Value, CrtAllocator &gt; Pointer</div><div class="ttdoc">GenericPointer for Value (UTF-8, default allocator). </div><div class="ttdef"><b>Definition:</b> fwd.h:121</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a65bfc3073fa80ee5eba8e985abe2f941"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a65bfc3073fa80ee5eba8e985abe2f941">rapidjson::GenericValue::GenericValue</a></div><div class="ttdeci">GenericValue(StringRefType s) RAPIDJSON_NOEXCEPT</div><div class="ttdoc">Constructor for constant string (i.e. do not make a copy of string) </div><div class="ttdef"><b>Definition:</b> document.h:544</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a3e930bffb40a78e570e3deef461f0532"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a3e930bffb40a78e570e3deef461f0532">rapidjson::GenericValue::SetString</a></div><div class="ttdeci">GenericValue &amp; SetString(const std::basic_string&lt; Ch &gt; &amp;s, Allocator &amp;allocator)</div><div class="ttdoc">Set this value as a string by copying from source string. </div><div class="ttdef"><b>Definition:</b> document.h:1518</div></div>
<div class="ttc" id="reader_8h_html"><div class="ttname"><a href="reader_8h.html">reader.h</a></div></div>
@@ -2266,7 +2268,7 @@ $(document).ready(function(){initNavTree('document_8h_source.html','');});
<div class="ttc" id="classrapidjson_1_1_generic_document_html_a4c85243a28c9dcf2d1357da00fcaa773"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#a4c85243a28c9dcf2d1357da00fcaa773">rapidjson::GenericDocument::AllocatorType</a></div><div class="ttdeci">Allocator AllocatorType</div><div class="ttdoc">Allocator type from template parameter. </div><div class="ttdef"><b>Definition:</b> document.h:1771</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a8d75bf0c6c0fa4f8d340a4236e98539b"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a8d75bf0c6c0fa4f8d340a4236e98539b">rapidjson::GenericValue::FindMember</a></div><div class="ttdeci">MemberIterator FindMember(const GenericValue&lt; Encoding, SourceAllocator &gt; &amp;name)</div><div class="ttdoc">Find member by name. </div><div class="ttdef"><b>Definition:</b> document.h:955</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a1f28a345c9b9c93c76abf695669e4378"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a1f28a345c9b9c93c76abf695669e4378">rapidjson::GenericValue::ObjectEmpty</a></div><div class="ttdeci">bool ObjectEmpty() const </div><div class="ttdoc">Check whether the object is empty. </div><div class="ttdef"><b>Definition:</b> document.h:821</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607">rapidjson::kFalseType</a></div><div class="ttdoc">false </div><div class="ttdef"><b>Definition:</b> rapidjson.h:718</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607">rapidjson::kFalseType</a></div><div class="ttdoc">false </div><div class="ttdef"><b>Definition:</b> rapidjson.h:559</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_ga7d3acf640886b1f2552dc8c4cd6dea60"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga7d3acf640886b1f2552dc8c4cd6dea60">rapidjson::ParseErrorCode</a></div><div class="ttdeci">ParseErrorCode</div><div class="ttdoc">Error code of parsing. </div><div class="ttdef"><b>Definition:</b> error.h:64</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a0cb232adce79932c499c5f04cbc8dc54"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a0cb232adce79932c499c5f04cbc8dc54">rapidjson::GenericValue::operator!=</a></div><div class="ttdeci">bool operator!=(const GenericValue&lt; Encoding, SourceAllocator &gt; &amp;rhs) const </div><div class="ttdoc">Not-equal-to operator. </div><div class="ttdef"><b>Definition:</b> document.h:752</div></div>
<div class="ttc" id="rapidjson_8h_html_af95188da1d8eb6d4b148fe9ce71cd7c4"><div class="ttname"><a href="rapidjson_8h.html#af95188da1d8eb6d4b148fe9ce71cd7c4">RAPIDJSON_STATIC_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_STATIC_ASSERT(x)</div><div class="ttdoc">(Internal) macro to check for conditions at compile-time </div><div class="ttdef"><b>Definition:</b> rapidjson.h:406</div></div>
@@ -2293,7 +2295,6 @@ $(document).ready(function(){initNavTree('document_8h_source.html','');});
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a163e60b101e5ae534597c050a6eba511"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a163e60b101e5ae534597c050a6eba511">rapidjson::GenericValue::EraseMember</a></div><div class="ttdeci">MemberIterator EraseMember(ConstMemberIterator pos)</div><div class="ttdoc">Remove a member from an object by iterator. </div><div class="ttdef"><b>Definition:</b> document.h:1209</div></div>
<div class="ttc" id="structrapidjson_1_1_generic_string_ref_html_ad9eb120a58cee500ff3bd5706779c4e4"><div class="ttname"><a href="structrapidjson_1_1_generic_string_ref.html#ad9eb120a58cee500ff3bd5706779c4e4">rapidjson::GenericStringRef::GenericStringRef</a></div><div class="ttdeci">GenericStringRef(const CharType *str, SizeType len)</div><div class="ttdoc">Create constant string reference from pointer and length. </div><div class="ttdef"><b>Definition:</b> document.h:309</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a6f7f7c66d8f8c08e496ae831ba114126"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a6f7f7c66d8f8c08e496ae831ba114126">rapidjson::GenericValue::operator==</a></div><div class="ttdeci">bool operator==(const std::basic_string&lt; Ch &gt; &amp;rhs) const </div><div class="ttdoc">Equal-to operator with string object. </div><div class="ttdef"><b>Definition:</b> document.h:740</div></div>
-<div class="ttc" id="namespacerapidjson_html_a9c225e4848c5facd20e43084ba2a51a3"><div class="ttname"><a href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">rapidjson::Pointer</a></div><div class="ttdeci">GenericPointer&lt; Value &gt; Pointer</div><div class="ttdoc">GenericPointer for Value (UTF-8, default allocator). </div><div class="ttdef"><b>Definition:</b> pointer.h:1024</div></div>
<div class="ttc" id="structrapidjson_1_1_generic_member_html"><div class="ttname"><a href="structrapidjson_1_1_generic_member.html">rapidjson::GenericMember</a></div><div class="ttdoc">Name-value pair in a JSON object value. </div><div class="ttdef"><b>Definition:</b> document.h:66</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_afb91480cc6242ca96ffc603e649c319f"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#afb91480cc6242ca96ffc603e649c319f">rapidjson::GenericValue::SetString</a></div><div class="ttdeci">GenericValue &amp; SetString(const Ch *s, SizeType length)</div><div class="ttdoc">Set this value as a string without copying source string. </div><div class="ttdef"><b>Definition:</b> document.h:1483</div></div>
<div class="ttc" id="structrapidjson_1_1_generic_string_ref_html_aa6b9fd9f6aa49405a574c362ba9af6b5"><div class="ttname"><a href="structrapidjson_1_1_generic_string_ref.html#aa6b9fd9f6aa49405a574c362ba9af6b5">rapidjson::GenericStringRef::StringRef</a></div><div class="ttdeci">GenericStringRef&lt; CharType &gt; StringRef(const CharType *str)</div><div class="ttdoc">Mark a character pointer as constant string. </div><div class="ttdef"><b>Definition:</b> document.h:337</div></div>
@@ -2312,14 +2313,14 @@ $(document).ready(function(){initNavTree('document_8h_source.html','');});
<div class="ttc" id="classrapidjson_1_1_generic_value_html_abc8945d3411c6ce583d322753ce028e1"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#abc8945d3411c6ce583d322753ce028e1">rapidjson::GenericValue::Begin</a></div><div class="ttdeci">ConstValueIterator Begin() const </div><div class="ttdoc">Constant element iterator. </div><div class="ttdef"><b>Definition:</b> document.h:1312</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_aa56b69bac5423622eff6998ce4802106"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#aa56b69bac5423622eff6998ce4802106">rapidjson::GenericValue::Clear</a></div><div class="ttdeci">void Clear()</div><div class="ttdoc">Remove all elements in the array. </div><div class="ttdef"><b>Definition:</b> document.h:1285</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html_a42c35e2f64c288f14b74fec2792500c8"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#a42c35e2f64c288f14b74fec2792500c8">rapidjson::GenericDocument::Parse</a></div><div class="ttdeci">GenericDocument &amp; Parse(const Ch *str)</div><div class="ttdoc">Parse JSON text from a read-only string. </div><div class="ttdef"><b>Definition:</b> document.h:1975</div></div>
-<div class="ttc" id="classrapidjson_1_1_generic_pointer_html"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer</a></div><div class="ttdoc">Represents a JSON Pointer. Use Pointer for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> pointer.h:76</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:716</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_pointer_html"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer</a></div><div class="ttdoc">Represents a JSON Pointer. Use Pointer for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> fwd.h:121</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:557</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html_a8367a827588dd91d02e21ef945bec9f5"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#a8367a827588dd91d02e21ef945bec9f5">rapidjson::GenericDocument::Ch</a></div><div class="ttdeci">Encoding::Ch Ch</div><div class="ttdoc">Character type derived from Encoding. </div><div class="ttdef"><b>Definition:</b> document.h:1769</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html_aa52c3016961f25ecd989d82839bce4e5"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#aa52c3016961f25ecd989d82839bce4e5">rapidjson::GenericDocument::GenericDocument</a></div><div class="ttdeci">GenericDocument(Type type, Allocator *allocator=0, size_t stackCapacity=kDefaultStackCapacity, StackAllocator *stackAllocator=0)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> document.h:1780</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_adc312de070d03a63e6c692c9c61db156"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#adc312de070d03a63e6c692c9c61db156">rapidjson::GenericValue::operator[]</a></div><div class="ttdeci">GenericValue &amp; operator[](SizeType index)</div><div class="ttdoc">Get an element from array by index. </div><div class="ttdef"><b>Definition:</b> document.h:1297</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_member_iterator_html_a17955e32a06f667c672b270e6a4d2195"><div class="ttname"><a href="classrapidjson_1_1_generic_member_iterator.html#a17955e32a06f667c672b270e6a4d2195">rapidjson::GenericMemberIterator::Pointer</a></div><div class="ttdeci">BaseType::pointer Pointer</div><div class="ttdoc">Pointer to (const) GenericMember. </div><div class="ttdef"><b>Definition:</b> document.h:116</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html_ad97e64c123ec1e07ea62ab0a9ce80c00"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#ad97e64c123ec1e07ea62ab0a9ce80c00">rapidjson::GenericDocument::GetParseError</a></div><div class="ttdeci">ParseErrorCode GetParseError() const </div><div class="ttdoc">Get the ParseErrorCode of last parsing. </div><div class="ttdef"><b>Definition:</b> document.h:1994</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">rapidjson::kObjectType</a></div><div class="ttdoc">object </div><div class="ttdef"><b>Definition:</b> rapidjson.h:720</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">rapidjson::kObjectType</a></div><div class="ttdoc">object </div><div class="ttdef"><b>Definition:</b> rapidjson.h:561</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a0ec9f34bef5890241d4bc882b73b1db4"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a0ec9f34bef5890241d4bc882b73b1db4">rapidjson::GenericValue::PushBack</a></div><div class="ttdeci">GenericValue &amp; PushBack(GenericValue &amp;value, Allocator &amp;allocator)</div><div class="ttdoc">Append a GenericValue at the end of the array. </div><div class="ttdef"><b>Definition:</b> document.h:1342</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a06f10ef54f5692ce08206c26624a21db"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a06f10ef54f5692ce08206c26624a21db">rapidjson::GenericValue::Swap</a></div><div class="ttdeci">GenericValue &amp; Swap(GenericValue &amp;other) RAPIDJSON_NOEXCEPT</div><div class="ttdoc">Exchange the contents of this value with those of other. </div><div class="ttdef"><b>Definition:</b> document.h:657</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_adb109ae9f12615efadf9277cb5e9c4ee"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#adb109ae9f12615efadf9277cb5e9c4ee">rapidjson::GenericValue::MemberEnd</a></div><div class="ttdeci">MemberIterator MemberEnd()</div><div class="ttdoc">Past-the-end member iterator </div><div class="ttdef"><b>Definition:</b> document.h:886</div></div>
@@ -2330,7 +2331,7 @@ $(document).ready(function(){initNavTree('document_8h_source.html','');});
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_ga6a2b1695c13e77ae425e3cbac980ccb5"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga6a2b1695c13e77ae425e3cbac980ccb5">RAPIDJSON_UNLIKELY</a></div><div class="ttdeci">#define RAPIDJSON_UNLIKELY(x)</div><div class="ttdoc">Compiler branching hint for expression with low probability to be true. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:437</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a646b6d4d3d98799a0926d96ffa127a58"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a646b6d4d3d98799a0926d96ffa127a58">rapidjson::GenericValue::GenericValue</a></div><div class="ttdeci">GenericValue(Type type) RAPIDJSON_NOEXCEPT</div><div class="ttdoc">Constructor with JSON value type. </div><div class="ttdef"><b>Definition:</b> document.h:458</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html">rapidjson::GenericDocument</a></div><div class="ttdoc">A document for parsing JSON text as DOM. </div><div class="ttdef"><b>Definition:</b> document.h:57</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">rapidjson::kArrayType</a></div><div class="ttdoc">array </div><div class="ttdef"><b>Definition:</b> rapidjson.h:721</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">rapidjson::kArrayType</a></div><div class="ttdoc">array </div><div class="ttdef"><b>Definition:</b> rapidjson.h:562</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a06ce0e14ec83b53c83e1b1699b53a25e"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a06ce0e14ec83b53c83e1b1699b53a25e">rapidjson::GenericValue::ValueIterator</a></div><div class="ttdeci">GenericValue * ValueIterator</div><div class="ttdoc">Value iterator for iterating in array. </div><div class="ttdef"><b>Definition:</b> document.h:420</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_afbdbc9cbc3b59feb5a28d5bfee97dbb3"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#afbdbc9cbc3b59feb5a28d5bfee97dbb3">rapidjson::GenericValue::operator==</a></div><div class="ttdeci">bool operator==(const GenericValue&lt; Encoding, SourceAllocator &gt; &amp;rhs) const </div><div class="ttdoc">Equal-to operator. </div><div class="ttdef"><b>Definition:</b> document.h:692</div></div>
<div class="ttc" id="rapidjson_8h_html_a52c941c3fdd646527cdcd42aa846a28a"><div class="ttname"><a href="rapidjson_8h.html#a52c941c3fdd646527cdcd42aa846a28a">RAPIDJSON_DELETE</a></div><div class="ttdeci">#define RAPIDJSON_DELETE(x)</div><div class="ttdoc">! customization point for global delete </div><div class="ttdef"><b>Definition:</b> rapidjson.h:544</div></div>
@@ -2344,10 +2345,10 @@ $(document).ready(function(){initNavTree('document_8h_source.html','');});
<div class="ttc" id="classrapidjson_1_1_generic_value_html_ad1f8199e65662e0d52a13a1577d4e4a5"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#ad1f8199e65662e0d52a13a1577d4e4a5">rapidjson::GenericValue::GenericValue</a></div><div class="ttdeci">GenericValue() RAPIDJSON_NOEXCEPT</div><div class="ttdoc">Default constructor creates a null value. </div><div class="ttdef"><b>Definition:</b> document.h:428</div></div>
<div class="ttc" id="structrapidjson_1_1_generic_string_ref_html_a29cf407c6aa2313f13dff78d6ce02687"><div class="ttname"><a href="structrapidjson_1_1_generic_string_ref.html#a29cf407c6aa2313f13dff78d6ce02687">rapidjson::GenericStringRef::GenericStringRef</a></div><div class="ttdeci">GenericStringRef(const CharType *str)</div><div class="ttdoc">Explicitly create string reference from const character pointer. </div><div class="ttdef"><b>Definition:</b> document.h:297</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html_a0d63efcc43758ac3aed77e868233369d"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#a0d63efcc43758ac3aed77e868233369d">rapidjson::GenericDocument::swap</a></div><div class="ttdeci">friend void swap(GenericDocument &amp;a, GenericDocument &amp;b) RAPIDJSON_NOEXCEPT</div><div class="ttdoc">free-standing swap function helper </div><div class="ttdef"><b>Definition:</b> document.h:1870</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff">rapidjson::kNullType</a></div><div class="ttdoc">null </div><div class="ttdef"><b>Definition:</b> rapidjson.h:717</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff">rapidjson::kNullType</a></div><div class="ttdoc">null </div><div class="ttdef"><b>Definition:</b> rapidjson.h:558</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html_a82b27e7b228eb46a23f99720063ab4fb"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#a82b27e7b228eb46a23f99720063ab4fb">rapidjson::GenericDocument::GenericDocument</a></div><div class="ttdeci">GenericDocument(Allocator *allocator=0, size_t stackCapacity=kDefaultStackCapacity, StackAllocator *stackAllocator=0)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> document.h:1793</div></div>
<div class="ttc" id="structrapidjson_1_1_generic_member_html_ae820eaa74b415a9073f3f3855f6c6607"><div class="ttname"><a href="structrapidjson_1_1_generic_member.html#ae820eaa74b415a9073f3f3855f6c6607">rapidjson::GenericMember::name</a></div><div class="ttdeci">GenericValue&lt; Encoding, Allocator &gt; name</div><div class="ttdoc">name of member (must be a string) </div><div class="ttdef"><b>Definition:</b> document.h:67</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7">rapidjson::kStringType</a></div><div class="ttdoc">string </div><div class="ttdef"><b>Definition:</b> rapidjson.h:722</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7">rapidjson::kStringType</a></div><div class="ttdoc">string </div><div class="ttdef"><b>Definition:</b> rapidjson.h:563</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html_ad92c6cd025d411258d1f2ad890e2ee3f"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#ad92c6cd025d411258d1f2ad890e2ee3f">rapidjson::GenericDocument::GetAllocator</a></div><div class="ttdeci">Allocator &amp; GetAllocator()</div><div class="ttdoc">Get the allocator of this document. </div><div class="ttdef"><b>Definition:</b> document.h:2015</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a0220ddebe2f023fa75b643a50e90e559"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a0220ddebe2f023fa75b643a50e90e559">rapidjson::GenericValue::Member</a></div><div class="ttdeci">GenericMember&lt; Encoding, Allocator &gt; Member</div><div class="ttdoc">Name-value pair in an object. </div><div class="ttdef"><b>Definition:</b> document.h:413</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html_ae4ee7d86b8c906c83dbe15e57eb6ac6a"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#ae4ee7d86b8c906c83dbe15e57eb6ac6a">rapidjson::GenericDocument::ParseStream</a></div><div class="ttdeci">GenericDocument &amp; ParseStream(InputStream &amp;is)</div><div class="ttdoc">Parse JSON text from an input stream. </div><div class="ttdef"><b>Definition:</b> document.h:1917</div></div>
@@ -2360,6 +2361,7 @@ $(document).ready(function(){initNavTree('document_8h_source.html','');});
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a68d8d197ae1fb83d4dc202f9812af4cc"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a68d8d197ae1fb83d4dc202f9812af4cc">rapidjson::GenericValue::RemoveAllMembers</a></div><div class="ttdeci">void RemoveAllMembers()</div><div class="ttdoc">Remove all members in the object. </div><div class="ttdef"><b>Definition:</b> document.h:1138</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_member_iterator_html_aa30ffef74b3f4978b403024d81b484e4"><div class="ttname"><a href="classrapidjson_1_1_generic_member_iterator.html#aa30ffef74b3f4978b403024d81b484e4">rapidjson::GenericMemberIterator::GenericMemberIterator</a></div><div class="ttdeci">GenericMemberIterator(const NonConstIterator &amp;it)</div><div class="ttdoc">Iterator conversions to more const. </div><div class="ttdef"><b>Definition:</b> document.h:144</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_aecc9d0a6aafe31f4fdf9f6e75e5f089c"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#aecc9d0a6aafe31f4fdf9f6e75e5f089c">rapidjson::GenericValue::operator=</a></div><div class="ttdeci">GenericValue &amp; operator=(StringRefType str) RAPIDJSON_NOEXCEPT</div><div class="ttdoc">Assignment of constant string reference (no copy) </div><div class="ttdef"><b>Definition:</b> document.h:614</div></div>
+<div class="ttc" id="namespacerapidjson_html_ace11b5b575baf1cccd5ba5f8586dcdc8"><div class="ttname"><a href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">rapidjson::Document</a></div><div class="ttdeci">GenericDocument&lt; UTF8&lt;&gt; &gt; Document</div><div class="ttdoc">GenericDocument with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> document.h:2101</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html_abf1cbab989b856f9d260787b2575750b"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#abf1cbab989b856f9d260787b2575750b">rapidjson::GenericDocument::Swap</a></div><div class="ttdeci">GenericDocument &amp; Swap(GenericDocument &amp;rhs) RAPIDJSON_NOEXCEPT</div><div class="ttdoc">Exchange the contents of this document with those of another. </div><div class="ttdef"><b>Definition:</b> document.h:1849</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a7bed9035dd1beeabe6f47e870874e793"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a7bed9035dd1beeabe6f47e870874e793">rapidjson::GenericValue::operator==</a></div><div class="ttdeci">bool operator==(const Ch *rhs) const </div><div class="ttdoc">Equal-to operator with const C-string pointer. </div><div class="ttdef"><b>Definition:</b> document.h:734</div></div>
<div class="ttc" id="namespacerapidjson_html_a81379eb4e94a0386d71d15fda882ebc9a02748971d6ea0c5e22c69b8aa7f344ea"><div class="ttname"><a href="namespacerapidjson.html#a81379eb4e94a0386d71d15fda882ebc9a02748971d6ea0c5e22c69b8aa7f344ea">rapidjson::kParseInsituFlag</a></div><div class="ttdoc">In-situ(destructive) parsing. </div><div class="ttdef"><b>Definition:</b> reader.h:144</div></div>
@@ -2372,7 +2374,6 @@ $(document).ready(function(){initNavTree('document_8h_source.html','');});
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a5623c9039977ca0daf394e5c12f10c2d"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a5623c9039977ca0daf394e5c12f10c2d">rapidjson::GenericValue::SetBool</a></div><div class="ttdeci">GenericValue &amp; SetBool(bool b)</div><div class="ttdef"><b>Definition:</b> document.h:806</div></div>
<div class="ttc" id="classrapidjson_1_1_allocator_html"><div class="ttname"><a href="classrapidjson_1_1_allocator.html">rapidjson::Allocator</a></div><div class="ttdoc">Concept for allocating, resizing and freeing memory block. </div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html">rapidjson::GenericValue</a></div><div class="ttdoc">Represents a JSON value. Use Value for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> document.h:54</div></div>
-<div class="ttc" id="namespacerapidjson_html_afb3fa116c66d834b6f4289d648cc8d6d"><div class="ttname"><a href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">rapidjson::Value</a></div><div class="ttdeci">GenericValue&lt; UTF8&lt;&gt; &gt; Value</div><div class="ttdoc">GenericValue with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> document.h:1753</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_aff61690249189dbbc6ebfdc9e2add00e"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#aff61690249189dbbc6ebfdc9e2add00e">rapidjson::GenericValue::CopyFrom</a></div><div class="ttdeci">GenericValue &amp; CopyFrom(const GenericValue&lt; Encoding, SourceAllocator &gt; &amp;rhs, Allocator &amp;allocator)</div><div class="ttdoc">Deep-copy assignment from Value. </div><div class="ttdef"><b>Definition:</b> document.h:645</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a25069c76d045b058e54835d8c467c789"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a25069c76d045b058e54835d8c467c789">rapidjson::GenericValue::SetArray</a></div><div class="ttdeci">GenericValue &amp; SetArray()</div><div class="ttdoc">Set this value as an empty array. </div><div class="ttdef"><b>Definition:</b> document.h:1270</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_member_iterator_html"><div class="ttname"><a href="classrapidjson_1_1_generic_member_iterator.html">rapidjson::GenericMemberIterator</a></div><div class="ttdoc">(Constant) member iterator for a JSON object value </div><div class="ttdef"><b>Definition:</b> document.h:96</div></div>
@@ -2389,13 +2390,12 @@ $(document).ready(function(){initNavTree('document_8h_source.html','');});
<div class="ttc" id="classrapidjson_1_1_generic_document_html_a2ab17089bd6249bf2a7959d56d35cb68"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#a2ab17089bd6249bf2a7959d56d35cb68">rapidjson::GenericDocument::HasParseError</a></div><div class="ttdeci">bool HasParseError() const </div><div class="ttdoc">Whether a parse error has occured in the last parsing. </div><div class="ttdef"><b>Definition:</b> document.h:1991</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a85dc131bdad8077ce970d580d333d15a"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a85dc131bdad8077ce970d580d333d15a">rapidjson::GenericValue::AddMember</a></div><div class="ttdeci">GenericValue &amp; AddMember(StringRefType name, GenericValue &amp;value, Allocator &amp;allocator)</div><div class="ttdoc">Add a member (name-value pair) to the object. </div><div class="ttdef"><b>Definition:</b> document.h:1091</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
-<div class="ttc" id="namespacerapidjson_html_a660c934c2959121babf799b6cb206659"><div class="ttname"><a href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">rapidjson::Document</a></div><div class="ttdeci">GenericDocument&lt; UTF8&lt;&gt; &gt; Document</div><div class="ttdoc">GenericDocument with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> document.h:2101</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a1f125e735577aae64c0306345de45563"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a1f125e735577aae64c0306345de45563">rapidjson::GenericValue::GenericValue</a></div><div class="ttdeci">GenericValue(uint64_t u64) RAPIDJSON_NOEXCEPT</div><div class="ttdoc">Constructor for uint64_t value. </div><div class="ttdef"><b>Definition:</b> document.h:527</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a">rapidjson::kNumberType</a></div><div class="ttdoc">number </div><div class="ttdef"><b>Definition:</b> rapidjson.h:723</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a">rapidjson::kNumberType</a></div><div class="ttdoc">number </div><div class="ttdef"><b>Definition:</b> rapidjson.h:564</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html_a7ba626bf84eb45a9bca0b7723bf47f3f"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#a7ba626bf84eb45a9bca0b7723bf47f3f">rapidjson::GenericDocument::ParseInsitu</a></div><div class="ttdeci">GenericDocument &amp; ParseInsitu(Ch *str)</div><div class="ttdoc">Parse JSON text from a mutable string. </div><div class="ttdef"><b>Definition:</b> document.h:1941</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a68ba73eeda7b9429ca05267065d3cc99"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a68ba73eeda7b9429ca05267065d3cc99">rapidjson::GenericValue::Erase</a></div><div class="ttdeci">ValueIterator Erase(ConstValueIterator pos)</div><div class="ttdoc">Remove an element of array by iterator. </div><div class="ttdef"><b>Definition:</b> document.h:1411</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a979c4ba6dd2a311be837ae083423aca8"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a979c4ba6dd2a311be837ae083423aca8">rapidjson::GenericValue::GetStringLength</a></div><div class="ttdeci">SizeType GetStringLength() const </div><div class="ttdoc">Get the length of string. </div><div class="ttdef"><b>Definition:</b> document.h:1473</div></div>
-<div class="ttc" id="structrapidjson_1_1_generic_insitu_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_insitu_string_stream.html">rapidjson::GenericInsituStringStream</a></div><div class="ttdoc">A read-write string stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:679</div></div>
+<div class="ttc" id="structrapidjson_1_1_generic_insitu_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_insitu_string_stream.html">rapidjson::GenericInsituStringStream</a></div><div class="ttdoc">A read-write string stream. </div><div class="ttdef"><b>Definition:</b> fwd.h:52</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.7-->
diff --git a/encodedstream_8h_source.html b/encodedstream_8h_source.html
index 7f0857e8..16579614 100644
--- a/encodedstream_8h_source.html
+++ b/encodedstream_8h_source.html
@@ -105,7 +105,7 @@ $(document).ready(function(){initNavTree('encodedstream_8h_source.html','');});
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_ENCODEDSTREAM_H_</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define RAPIDJSON_ENCODEDSTREAM_H_</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rapidjson_8h.html">rapidjson.h</a>&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;stream.h&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#ifdef __GNUC__</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;RAPIDJSON_DIAG_PUSH</div>
@@ -368,7 +368,6 @@ $(document).ready(function(){initNavTree('encodedstream_8h_source.html','');});
<div class="ttc" id="classrapidjson_1_1_auto_u_t_f_input_stream_html_a5c9f041a3b32bf15bc9be888a8731d35"><div class="ttname"><a href="classrapidjson_1_1_auto_u_t_f_input_stream.html#a5c9f041a3b32bf15bc9be888a8731d35">rapidjson::AutoUTFInputStream::AutoUTFInputStream</a></div><div class="ttdeci">AutoUTFInputStream(InputByteStream &amp;is, UTFType type=kUTF8)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> encodedstream.h:116</div></div>
<div class="ttc" id="classrapidjson_1_1_encoded_input_stream_html"><div class="ttname"><a href="classrapidjson_1_1_encoded_input_stream.html">rapidjson::EncodedInputStream</a></div><div class="ttdoc">Input byte stream wrapper with a statically bound encoding. </div><div class="ttdef"><b>Definition:</b> encodedstream.h:38</div></div>
<div class="ttc" id="namespacerapidjson_html_a4aacabc0f8cea1cd628f466d890773eba52c496755de96eee05275a423b36299d"><div class="ttname"><a href="namespacerapidjson.html#a4aacabc0f8cea1cd628f466d890773eba52c496755de96eee05275a423b36299d">rapidjson::kUTF16BE</a></div><div class="ttdoc">UTF-16 big endian. </div><div class="ttdef"><b>Definition:</b> encodings.h:602</div></div>
-<div class="ttc" id="rapidjson_8h_html"><div class="ttname"><a href="rapidjson_8h.html">rapidjson.h</a></div><div class="ttdoc">common definitions and configuration </div></div>
<div class="ttc" id="classrapidjson_1_1_auto_u_t_f_output_stream_html"><div class="ttname"><a href="classrapidjson_1_1_auto_u_t_f_output_stream.html">rapidjson::AutoUTFOutputStream</a></div><div class="ttdoc">Output stream wrapper with dynamically bound encoding and automatic encoding detection. </div><div class="ttdef"><b>Definition:</b> encodedstream.h:204</div></div>
<div class="ttc" id="namespacerapidjson_html_a4aacabc0f8cea1cd628f466d890773ebad6db204b848081468878ed58bc20ce8f"><div class="ttname"><a href="namespacerapidjson.html#a4aacabc0f8cea1cd628f466d890773ebad6db204b848081468878ed58bc20ce8f">rapidjson::kUTF32BE</a></div><div class="ttdoc">UTF-32 big endian. </div><div class="ttdef"><b>Definition:</b> encodings.h:604</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
diff --git a/encodings_8h_source.html b/encodings_8h_source.html
index 856ea735..eb4e8b55 100644
--- a/encodings_8h_source.html
+++ b/encodings_8h_source.html
@@ -770,7 +770,7 @@ $(document).ready(function(){initNavTree('encodings_8h_source.html','');});
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;</div>
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;<span class="comment">// Forward declaration.</span></div>
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Stream&gt;</div>
-<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(Stream&amp; stream, <span class="keyword">typename</span> Stream::Ch c);</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> PutUnsafe(Stream&amp; stream, <span class="keyword">typename</span> Stream::Ch c);</div>
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;<span class="comment">//! Specialization of Transcoder with same source and target encoding.</span></div>
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Encoding&gt;</div>
@@ -817,7 +817,7 @@ $(document).ready(function(){initNavTree('encodings_8h_source.html','');});
<div class="ttc" id="structrapidjson_1_1_u_t_f8_html"><div class="ttname"><a href="structrapidjson_1_1_u_t_f8.html">rapidjson::UTF8</a></div><div class="ttdoc">UTF-8 encoding. </div><div class="ttdef"><b>Definition:</b> encodings.h:96</div></div>
<div class="ttc" id="namespacerapidjson_html_a4aacabc0f8cea1cd628f466d890773ebad6db204b848081468878ed58bc20ce8f"><div class="ttname"><a href="namespacerapidjson.html#a4aacabc0f8cea1cd628f466d890773ebad6db204b848081468878ed58bc20ce8f">rapidjson::kUTF32BE</a></div><div class="ttdoc">UTF-32 big endian. </div><div class="ttdef"><b>Definition:</b> encodings.h:604</div></div>
<div class="ttc" id="structrapidjson_1_1_u_t_f32_l_e_html"><div class="ttname"><a href="structrapidjson_1_1_u_t_f32_l_e.html">rapidjson::UTF32LE</a></div><div class="ttdoc">UTF-32 little endian enocoding. </div><div class="ttdef"><b>Definition:</b> encodings.h:453</div></div>
-<div class="ttc" id="namespacerapidjson_html_a0a774dcffe8ae07686f459ae017d2f20"><div class="ttname"><a href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">rapidjson::PutUnsafe</a></div><div class="ttdeci">void PutUnsafe(Stream &amp;stream, typename Stream::Ch c)</div><div class="ttdoc">Write character to a stream, presuming buffer is reserved. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:626</div></div>
+<div class="ttc" id="namespacerapidjson_html_a0a774dcffe8ae07686f459ae017d2f20"><div class="ttname"><a href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">rapidjson::PutUnsafe</a></div><div class="ttdeci">void PutUnsafe(Stream &amp;stream, typename Stream::Ch c)</div><div class="ttdoc">Write character to a stream, presuming buffer is reserved. </div><div class="ttdef"><b>Definition:</b> stream.h:91</div></div>
<div class="ttc" id="structrapidjson_1_1_transcoder_html_a3a1de7069d3cf7f1d4f4e2f96ceb7664"><div class="ttname"><a href="structrapidjson_1_1_transcoder.html#a3a1de7069d3cf7f1d4f4e2f96ceb7664">rapidjson::Transcoder::Transcode</a></div><div class="ttdeci">static RAPIDJSON_FORCEINLINE bool Transcode(InputStream &amp;is, OutputStream &amp;os)</div><div class="ttdoc">Take one Unicode codepoint from source encoding, convert it to target encoding and put it to the outp...</div><div class="ttdef"><b>Definition:</b> encodings.h:657</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
<div class="ttc" id="namespacerapidjson_html_a4aacabc0f8cea1cd628f466d890773eb"><div class="ttname"><a href="namespacerapidjson.html#a4aacabc0f8cea1cd628f466d890773eb">rapidjson::UTFType</a></div><div class="ttdeci">UTFType</div><div class="ttdoc">Runtime-specified UTF encoding type of a stream. </div><div class="ttdef"><b>Definition:</b> encodings.h:599</div></div>
diff --git a/filereadstream_8h_source.html b/filereadstream_8h_source.html
index 2e056eeb..e45571da 100644
--- a/filereadstream_8h_source.html
+++ b/filereadstream_8h_source.html
@@ -105,7 +105,7 @@ $(document).ready(function(){initNavTree('filereadstream_8h_source.html','');});
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_FILEREADSTREAM_H_</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define RAPIDJSON_FILEREADSTREAM_H_</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rapidjson_8h.html">rapidjson.h</a>&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;stream.h&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &lt;cstdio&gt;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#ifdef __clang__</span></div>
@@ -190,7 +190,6 @@ $(document).ready(function(){initNavTree('filereadstream_8h_source.html','');});
<div class="ttc" id="classrapidjson_1_1_file_read_stream_html_a72b610ada5d86e8977a2bc1f2f4c0808"><div class="ttname"><a href="classrapidjson_1_1_file_read_stream.html#a72b610ada5d86e8977a2bc1f2f4c0808">rapidjson::FileReadStream::FileReadStream</a></div><div class="ttdeci">FileReadStream(std::FILE *fp, char *buffer, size_t bufferSize)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> filereadstream.h:44</div></div>
<div class="ttc" id="classrapidjson_1_1_file_read_stream_html"><div class="ttname"><a href="classrapidjson_1_1_file_read_stream.html">rapidjson::FileReadStream</a></div><div class="ttdoc">File byte stream for input using fread(). </div><div class="ttdef"><b>Definition:</b> filereadstream.h:34</div></div>
<div class="ttc" id="classrapidjson_1_1_file_read_stream_html_a4a5f34875b40d22def206c9a09ecd929"><div class="ttname"><a href="classrapidjson_1_1_file_read_stream.html#a4a5f34875b40d22def206c9a09ecd929">rapidjson::FileReadStream::Ch</a></div><div class="ttdeci">char Ch</div><div class="ttdoc">Character type (byte). </div><div class="ttdef"><b>Definition:</b> filereadstream.h:36</div></div>
-<div class="ttc" id="rapidjson_8h_html"><div class="ttname"><a href="rapidjson_8h.html">rapidjson.h</a></div><div class="ttdoc">common definitions and configuration </div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/files.html b/files.html
index 6249491d..30ae1634 100644
--- a/files.html
+++ b/files.html
@@ -114,15 +114,17 @@ $(document).ready(function(){initNavTree('files.html','');});
<tr id="row_0_0_5_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="encodings_8h_source.html"><span class="icondoc"></span></a><b>encodings.h</b></td><td class="desc"></td></tr>
<tr id="row_0_0_6_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="filereadstream_8h_source.html"><span class="icondoc"></span></a><b>filereadstream.h</b></td><td class="desc"></td></tr>
<tr id="row_0_0_7_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="filewritestream_8h_source.html"><span class="icondoc"></span></a><b>filewritestream.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_8_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="memorybuffer_8h_source.html"><span class="icondoc"></span></a><b>memorybuffer.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_9_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="memorystream_8h_source.html"><span class="icondoc"></span></a><b>memorystream.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_10_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="pointer_8h_source.html"><span class="icondoc"></span></a><b>pointer.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_11_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="prettywriter_8h_source.html"><span class="icondoc"></span></a><b>prettywriter.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_12_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="rapidjson_8h_source.html"><span class="icondoc"></span></a><a class="el" href="rapidjson_8h.html" target="_self">rapidjson.h</a></td><td class="desc">Common definitions and configuration </td></tr>
-<tr id="row_0_0_13_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="reader_8h_source.html"><span class="icondoc"></span></a><a class="el" href="reader_8h.html" target="_self">reader.h</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_14_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="schema_8h_source.html"><span class="icondoc"></span></a><b>schema.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_15_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="stringbuffer_8h_source.html"><span class="icondoc"></span></a><b>stringbuffer.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_16_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="writer_8h_source.html"><span class="icondoc"></span></a><b>writer.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_8_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="fwd_8h_source.html"><span class="icondoc"></span></a><b>fwd.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_9_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="memorybuffer_8h_source.html"><span class="icondoc"></span></a><b>memorybuffer.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_10_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="memorystream_8h_source.html"><span class="icondoc"></span></a><b>memorystream.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_11_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="pointer_8h_source.html"><span class="icondoc"></span></a><b>pointer.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_12_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="prettywriter_8h_source.html"><span class="icondoc"></span></a><b>prettywriter.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_13_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="rapidjson_8h_source.html"><span class="icondoc"></span></a><a class="el" href="rapidjson_8h.html" target="_self">rapidjson.h</a></td><td class="desc">Common definitions and configuration </td></tr>
+<tr id="row_0_0_14_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="reader_8h_source.html"><span class="icondoc"></span></a><a class="el" href="reader_8h.html" target="_self">reader.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_15_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="schema_8h_source.html"><span class="icondoc"></span></a><b>schema.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_16_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="stream_8h_source.html"><span class="icondoc"></span></a><b>stream.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_17_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="stringbuffer_8h_source.html"><span class="icondoc"></span></a><b>stringbuffer.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_18_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="writer_8h_source.html"><span class="icondoc"></span></a><b>writer.h</b></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
diff --git a/filewritestream_8h_source.html b/filewritestream_8h_source.html
index 5618e136..7a01fb64 100644
--- a/filewritestream_8h_source.html
+++ b/filewritestream_8h_source.html
@@ -105,7 +105,7 @@ $(document).ready(function(){initNavTree('filewritestream_8h_source.html','');})
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_FILEWRITESTREAM_H_</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define RAPIDJSON_FILEWRITESTREAM_H_</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rapidjson_8h.html">rapidjson.h</a>&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;stream.h&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &lt;cstdio&gt;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#ifdef __clang__</span></div>
@@ -134,7 +134,7 @@ $(document).ready(function(){initNavTree('filewritestream_8h_source.html','');})
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; *current_++ = c;</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; }</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">PutN</a>(<span class="keywordtype">char</span> c, <span class="keywordtype">size_t</span> n) {</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">void</span> PutN(<span class="keywordtype">char</span> c, <span class="keywordtype">size_t</span> n) {</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordtype">size_t</span> avail = <span class="keyword">static_cast&lt;</span><span class="keywordtype">size_t</span><span class="keyword">&gt;</span>(bufferEnd_ - current_);</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">while</span> (n &gt; avail) {</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; std::memset(current_, c, avail);</div>
@@ -181,7 +181,7 @@ $(document).ready(function(){initNavTree('filewritestream_8h_source.html','');})
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment">//! Implement specialized version of PutN() with memset() for better performance.</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a"> 94</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">PutN</a>(<a class="code" href="classrapidjson_1_1_file_write_stream.html">FileWriteStream</a>&amp; stream, <span class="keywordtype">char</span> c, <span class="keywordtype">size_t</span> n) {</div>
+<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a"> 94</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a">PutN</a>(<a class="code" href="classrapidjson_1_1_file_write_stream.html">FileWriteStream</a>&amp; stream, <span class="keywordtype">char</span> c, <span class="keywordtype">size_t</span> n) {</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; stream.PutN(c, n);</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;}</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
@@ -194,9 +194,8 @@ $(document).ready(function(){initNavTree('filewritestream_8h_source.html','');})
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_FILESTREAM_H_</span></div>
<div class="ttc" id="classrapidjson_1_1_file_write_stream_html"><div class="ttname"><a href="classrapidjson_1_1_file_write_stream.html">rapidjson::FileWriteStream</a></div><div class="ttdoc">Wrapper of C file stream for input using fread(). </div><div class="ttdef"><b>Definition:</b> filewritestream.h:32</div></div>
<div class="ttc" id="classrapidjson_1_1_file_write_stream_html_afc606cc81f6c3709d81bf99b30566330"><div class="ttname"><a href="classrapidjson_1_1_file_write_stream.html#afc606cc81f6c3709d81bf99b30566330">rapidjson::FileWriteStream::Ch</a></div><div class="ttdeci">char Ch</div><div class="ttdoc">Character type. Only support char. </div><div class="ttdef"><b>Definition:</b> filewritestream.h:34</div></div>
-<div class="ttc" id="rapidjson_8h_html"><div class="ttname"><a href="rapidjson_8h.html">rapidjson.h</a></div><div class="ttdoc">common definitions and configuration </div></div>
+<div class="ttc" id="namespacerapidjson_html_a1ac13bac5976fc06587e00fc0bcfb32a"><div class="ttname"><a href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a">rapidjson::PutN</a></div><div class="ttdeci">void PutN(FileWriteStream &amp;stream, char c, size_t n)</div><div class="ttdoc">Implement specialized version of PutN() with memset() for better performance. </div><div class="ttdef"><b>Definition:</b> filewritestream.h:94</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
-<div class="ttc" id="namespacerapidjson_html_a1d49d2cab617858b53a1db23b1759f43"><div class="ttname"><a href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">rapidjson::PutN</a></div><div class="ttdeci">void PutN(Stream &amp;stream, Ch c, size_t n)</div><div class="ttdoc">Put N copies of a character to a stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:632</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.7-->
diff --git a/functions_func_g.html b/functions_func_g.html
index f6451ede..37f467a8 100644
--- a/functions_func_g.html
+++ b/functions_func_g.html
@@ -100,7 +100,7 @@ $(document).ready(function(){initNavTree('functions_func_g.html','');});
: <a class="el" href="classrapidjson_1_1_generic_reader.html#a56ab1065ea75167aeacb4802425bf57f">rapidjson::GenericReader&lt; SourceEncoding, TargetEncoding, StackAllocator &gt;</a>
</li>
<li>GenericSchemaDocument()
-: <a class="el" href="classrapidjson_1_1_generic_schema_document.html#a09c94a10d412ee188de575b82292a90e">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>
+: <a class="el" href="classrapidjson_1_1_generic_schema_document.html#ad200cc7bcb193c8568cdbda7b7fd0496">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>
</li>
<li>GenericSchemaValidator()
: <a class="el" href="classrapidjson_1_1_generic_schema_validator.html#acc07bd08b00195d84bb5b83f59c593d3">rapidjson::GenericSchemaValidator&lt; SchemaDocumentType, OutputHandler, StateAllocator &gt;</a>
@@ -145,7 +145,7 @@ $(document).ready(function(){initNavTree('functions_func_g.html','');});
: <a class="el" href="classrapidjson_1_1_generic_pointer.html#adc01f1be5f05127f849a2bf10a97e89b">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a>
</li>
<li>GetRoot()
-: <a class="el" href="classrapidjson_1_1_generic_schema_document.html#a666d94105aa39c446327105339378320">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>
+: <a class="el" href="classrapidjson_1_1_generic_schema_document.html#af64ea17654ab0f1a91e382d422f91daf">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>
</li>
<li>GetStackCapacity()
: <a class="el" href="classrapidjson_1_1_generic_document.html#ac785c064649dea6cfa67207b6bda748e">rapidjson::GenericDocument&lt; Encoding, Allocator, StackAllocator &gt;</a>
diff --git a/functions_func_~.html b/functions_func_~.html
index aae9e7be..b9cbdc4f 100644
--- a/functions_func_~.html
+++ b/functions_func_~.html
@@ -91,7 +91,7 @@ $(document).ready(function(){initNavTree('functions_func_~.html','');});
: <a class="el" href="classrapidjson_1_1_generic_pointer.html#a0e144b9956a5272c13ceff3b9306e748">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a>
</li>
<li>~GenericSchemaDocument()
-: <a class="el" href="classrapidjson_1_1_generic_schema_document.html#ad05d77ee8910b43513acf48fadf99c28">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>
+: <a class="el" href="classrapidjson_1_1_generic_schema_document.html#adf6f3372013227873ed392dee1e752bf">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>
</li>
<li>~GenericSchemaValidator()
: <a class="el" href="classrapidjson_1_1_generic_schema_validator.html#ad9f00d71bf62b8983cf2514c43fb1572">rapidjson::GenericSchemaValidator&lt; SchemaDocumentType, OutputHandler, StateAllocator &gt;</a>
diff --git a/functions_g.html b/functions_g.html
index d74bb9ae..974b123f 100644
--- a/functions_g.html
+++ b/functions_g.html
@@ -100,7 +100,7 @@ $(document).ready(function(){initNavTree('functions_g.html','');});
: <a class="el" href="classrapidjson_1_1_generic_reader.html#a56ab1065ea75167aeacb4802425bf57f">rapidjson::GenericReader&lt; SourceEncoding, TargetEncoding, StackAllocator &gt;</a>
</li>
<li>GenericSchemaDocument()
-: <a class="el" href="classrapidjson_1_1_generic_schema_document.html#a09c94a10d412ee188de575b82292a90e">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>
+: <a class="el" href="classrapidjson_1_1_generic_schema_document.html#ad200cc7bcb193c8568cdbda7b7fd0496">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>
</li>
<li>GenericSchemaValidator()
: <a class="el" href="classrapidjson_1_1_generic_schema_validator.html#acc07bd08b00195d84bb5b83f59c593d3">rapidjson::GenericSchemaValidator&lt; SchemaDocumentType, OutputHandler, StateAllocator &gt;</a>
@@ -145,7 +145,7 @@ $(document).ready(function(){initNavTree('functions_g.html','');});
: <a class="el" href="classrapidjson_1_1_generic_pointer.html#adc01f1be5f05127f849a2bf10a97e89b">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a>
</li>
<li>GetRoot()
-: <a class="el" href="classrapidjson_1_1_generic_schema_document.html#a666d94105aa39c446327105339378320">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>
+: <a class="el" href="classrapidjson_1_1_generic_schema_document.html#af64ea17654ab0f1a91e382d422f91daf">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>
</li>
<li>GetStackCapacity()
: <a class="el" href="classrapidjson_1_1_generic_document.html#ac785c064649dea6cfa67207b6bda748e">rapidjson::GenericDocument&lt; Encoding, Allocator, StackAllocator &gt;</a>
diff --git a/functions_~.html b/functions_~.html
index ad8d2464..897b3380 100644
--- a/functions_~.html
+++ b/functions_~.html
@@ -91,7 +91,7 @@ $(document).ready(function(){initNavTree('functions_~.html','');});
: <a class="el" href="classrapidjson_1_1_generic_pointer.html#a0e144b9956a5272c13ceff3b9306e748">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a>
</li>
<li>~GenericSchemaDocument()
-: <a class="el" href="classrapidjson_1_1_generic_schema_document.html#ad05d77ee8910b43513acf48fadf99c28">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>
+: <a class="el" href="classrapidjson_1_1_generic_schema_document.html#adf6f3372013227873ed392dee1e752bf">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>
</li>
<li>~GenericSchemaValidator()
: <a class="el" href="classrapidjson_1_1_generic_schema_validator.html#ad9f00d71bf62b8983cf2514c43fb1572">rapidjson::GenericSchemaValidator&lt; SchemaDocumentType, OutputHandler, StateAllocator &gt;</a>
diff --git a/fwd_8h_source.html b/fwd_8h_source.html
new file mode 100644
index 00000000..83dc60f7
--- /dev/null
+++ b/fwd_8h_source.html
@@ -0,0 +1,285 @@
+<!-- HTML header for doxygen 1.8.7-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>RapidJSON: include/rapidjson/fwd.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+<link href="doxygenextra.css" rel="stylesheet" type="text/css"/>
+</head>
+<script>
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ ga('create', 'UA-63929386-1', 'auto');
+ ga('send', 'pageview');
+</script>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="topbanner"><a href="https://github.com/miloyip/rapidjson" title="RapidJSON GitHub"><i class="githublogo"></i></a></div>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('fwd_8h_source.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">fwd.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// Tencent is pleased to support the open source community by making RapidJSON available.</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Licensed under the MIT License (the &quot;License&quot;); you may not use this file except</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// in compliance with the License. You may obtain a copy of the License at</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// http://opensource.org/licenses/MIT</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// Unless required by applicable law or agreed to in writing, software distributed </span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR </span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// CONDITIONS OF ANY KIND, either express or implied. See the License for the </span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// specific language governing permissions and limitations under the License.</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_FWD_H_</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define RAPIDJSON_FWD_H_</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rapidjson_8h.html">rapidjson.h</a>&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;RAPIDJSON_NAMESPACE_BEGIN</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"> 22</span>&#160;<span class="comment">// encodings.h</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">template</span>&lt;<span class="keyword">typename</span> CharType&gt; <span class="keyword">struct </span>UTF8;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt; <span class="keyword">struct </span>UTF16;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt; <span class="keyword">struct </span>UTF16BE;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt; <span class="keyword">struct </span>UTF16LE;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt; <span class="keyword">struct </span>UTF32;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt; <span class="keyword">struct </span>UTF32BE;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt; <span class="keyword">struct </span>UTF32LE;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt; <span class="keyword">struct </span>ASCII;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt; <span class="keyword">struct </span>AutoUTF;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> SourceEncoding, <span class="keyword">typename</span> TargetEncoding&gt;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">struct </span>Transcoder;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">// allocators.h</span></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">class </span>CrtAllocator;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> BaseAllocator&gt;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>MemoryPoolAllocator;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// stream.h</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding&gt;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a021f77051e9f85188fc2f71ff5a15ebc"> 47</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_generic_string_stream.html">GenericStringStream</a>;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">typedef</span> <a class="code" href="structrapidjson_1_1_generic_string_stream.html">GenericStringStream&lt;UTF8&lt;char&gt;</a> &gt; <a class="code" href="structrapidjson_1_1_generic_string_stream.html">StringStream</a>;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding&gt;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a64e957c8d9d7cd15b193ffc31410038e"> 52</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_generic_insitu_string_stream.html">GenericInsituStringStream</a>;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">typedef</span> <a class="code" href="structrapidjson_1_1_generic_insitu_string_stream.html">GenericInsituStringStream&lt;UTF8&lt;char&gt;</a> &gt; <a class="code" href="structrapidjson_1_1_generic_insitu_string_stream.html">InsituStringStream</a>;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment">// stringbuffer.h</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator&gt;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21"> 59</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer&lt;UTF8&lt;char&gt;</a>, <a class="code" href="classrapidjson_1_1_crt_allocator.html">CrtAllocator</a>&gt; <a class="code" href="classrapidjson_1_1_generic_string_buffer.html">StringBuffer</a>;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment">// filereadstream.h</span></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">class </span><a class="code" href="classrapidjson_1_1_file_read_stream.html">FileReadStream</a>;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment">// filewritestream.h</span></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">class </span><a class="code" href="classrapidjson_1_1_file_write_stream.html">FileWriteStream</a>;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment">// memorybuffer.h</span></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="keyword">template</span> &lt;<span class="keyword">typename</span> Allocator&gt;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_generic_memory_buffer.html"> 74</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_generic_memory_buffer.html">GenericMemoryBuffer</a>;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keyword">typedef</span> <a class="code" href="structrapidjson_1_1_generic_memory_buffer.html">GenericMemoryBuffer&lt;CrtAllocator&gt;</a> <a class="code" href="structrapidjson_1_1_generic_memory_buffer.html">MemoryBuffer</a>;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment">// memorystream.h</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_memory_stream.html">MemoryStream</a>;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment">// reader.h</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Derived&gt;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_base_reader_handler.html"> 85</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_base_reader_handler.html">BaseReaderHandler</a>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> SourceEncoding, <span class="keyword">typename</span> TargetEncoding, <span class="keyword">typename</span> StackAllocator&gt;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ad5310edd1226f5b3ea82dc0d4d3740c6"> 88</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_reader.html">GenericReader</a>;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_reader.html">GenericReader&lt;UTF8&lt;char&gt;</a>, <a class="code" href="structrapidjson_1_1_u_t_f8.html">UTF8&lt;char&gt;</a>, <a class="code" href="classrapidjson_1_1_crt_allocator.html">CrtAllocator</a>&gt; <a class="code" href="classrapidjson_1_1_generic_reader.html">Reader</a>;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment">// writer.h</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> OutputStream, <span class="keyword">typename</span> SourceEncoding, <span class="keyword">typename</span> TargetEncoding, <span class="keyword">typename</span> StackAllocator&gt;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_writer.html"> 95</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_writer.html">Writer</a>;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="comment">// document.h</span></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;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator&gt; </div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_generic_member.html">GenericMember</a>;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="keyword">template</span> &lt;<span class="keywordtype">bool</span> Const, <span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator&gt;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_member_iterator.html">GenericMemberIterator</a>;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_generic_string_ref.html">GenericStringRef</a>;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator&gt; </div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_value.html">GenericValue</a>;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_value.html">GenericValue&lt;UTF8&lt;char&gt;</a>, <a class="code" href="classrapidjson_1_1_memory_pool_allocator.html">MemoryPoolAllocator&lt;CrtAllocator&gt;</a> &gt; <a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator, <span class="keyword">typename</span> StackAllocator&gt;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_document.html">GenericDocument</a>;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_document.html">GenericDocument&lt;UTF8&lt;char&gt;</a>, <a class="code" href="classrapidjson_1_1_memory_pool_allocator.html">MemoryPoolAllocator&lt;CrtAllocator&gt;</a>, <a class="code" href="classrapidjson_1_1_crt_allocator.html">CrtAllocator</a>&gt; <a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a>;</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="comment">// pointer.h</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> ValueType, <span class="keyword">typename</span> Allocator&gt;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374"> 121</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a>;</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"> 123</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_pointer.html">GenericPointer&lt;Value, CrtAllocator&gt;</a> <a class="code" href="classrapidjson_1_1_generic_pointer.html">Pointer</a>;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment">// schema.h</span></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="keyword">template</span> &lt;<span class="keyword">typename</span> SchemaDocumentType&gt;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html"> 128</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IGenericRemoteSchemaDocumentProvider</a>;</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> ValueT, <span class="keyword">typename</span> Allocator&gt;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a52bbb5d64d1319495089e1713a0653cf"> 131</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_schema_document.html">GenericSchemaDocument</a>;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_schema_document.html">GenericSchemaDocument&lt;Value, CrtAllocator&gt;</a> <a class="code" href="classrapidjson_1_1_generic_schema_document.html">SchemaDocument</a>;</div>
+<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#af91eb8eea47b79d75b23e29fa9c0abb5"> 134</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IGenericRemoteSchemaDocumentProvider&lt;SchemaDocument&gt;</a> <a class="code" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IRemoteSchemaDocumentProvider</a>;</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="keyword">template</span> &lt;</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">typename</span> SchemaDocumentType,</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">typename</span> OutputHandler,</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">typename</span> StateAllocator&gt;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_schema_validator.html"> 140</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_schema_validator.html">GenericSchemaValidator</a>;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_schema_validator.html">GenericSchemaValidator&lt;SchemaDocument, BaseReaderHandler&lt;UTF8&lt;char&gt;</a>, <span class="keywordtype">void</span>&gt;, <a class="code" href="classrapidjson_1_1_crt_allocator.html">CrtAllocator</a>&gt; <a class="code" href="classrapidjson_1_1_generic_schema_validator.html">SchemaValidator</a>;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;RAPIDJSON_NAMESPACE_END</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_RAPIDJSONFWD_H_</span></div>
+<div class="ttc" id="structrapidjson_1_1_generic_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_string_stream.html">rapidjson::GenericStringStream</a></div><div class="ttdoc">Read-only string stream. </div><div class="ttdef"><b>Definition:</b> fwd.h:47</div></div>
+<div class="ttc" id="classrapidjson_1_1_file_read_stream_html"><div class="ttname"><a href="classrapidjson_1_1_file_read_stream.html">rapidjson::FileReadStream</a></div><div class="ttdoc">File byte stream for input using fread(). </div><div class="ttdef"><b>Definition:</b> filereadstream.h:34</div></div>
+<div class="ttc" id="namespacerapidjson_html_aa65fc9fb381b2cbc54f98673eadd6505"><div class="ttname"><a href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">rapidjson::Value</a></div><div class="ttdeci">GenericValue&lt; UTF8&lt;&gt; &gt; Value</div><div class="ttdoc">GenericValue with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> document.h:1753</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_reader_html"><div class="ttname"><a href="classrapidjson_1_1_generic_reader.html">rapidjson::GenericReader</a></div><div class="ttdoc">SAX-style JSON parser. Use Reader for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> fwd.h:88</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_string_buffer_html"><div class="ttname"><a href="classrapidjson_1_1_generic_string_buffer.html">rapidjson::GenericStringBuffer</a></div><div class="ttdoc">Represents an in-memory output stream. </div><div class="ttdef"><b>Definition:</b> fwd.h:59</div></div>
+<div class="ttc" id="structrapidjson_1_1_memory_stream_html"><div class="ttname"><a href="structrapidjson_1_1_memory_stream.html">rapidjson::MemoryStream</a></div><div class="ttdoc">Represents an in-memory input byte stream. </div><div class="ttdef"><b>Definition:</b> memorystream.h:40</div></div>
+<div class="ttc" id="structrapidjson_1_1_generic_memory_buffer_html"><div class="ttname"><a href="structrapidjson_1_1_generic_memory_buffer.html">rapidjson::GenericMemoryBuffer</a></div><div class="ttdoc">Represents an in-memory output byte stream. </div><div class="ttdef"><b>Definition:</b> fwd.h:74</div></div>
+<div class="ttc" id="structrapidjson_1_1_generic_member_html"><div class="ttname"><a href="structrapidjson_1_1_generic_member.html">rapidjson::GenericMember</a></div><div class="ttdoc">Name-value pair in a JSON object value. </div><div class="ttdef"><b>Definition:</b> document.h:66</div></div>
+<div class="ttc" id="classrapidjson_1_1_crt_allocator_html"><div class="ttname"><a href="classrapidjson_1_1_crt_allocator.html">rapidjson::CrtAllocator</a></div><div class="ttdoc">C-runtime library allocator. </div><div class="ttdef"><b>Definition:</b> allocators.h:62</div></div>
+<div class="ttc" id="classrapidjson_1_1_file_write_stream_html"><div class="ttname"><a href="classrapidjson_1_1_file_write_stream.html">rapidjson::FileWriteStream</a></div><div class="ttdoc">Wrapper of C file stream for input using fread(). </div><div class="ttdef"><b>Definition:</b> filewritestream.h:32</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_pointer_html"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer</a></div><div class="ttdoc">Represents a JSON Pointer. Use Pointer for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> fwd.h:121</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_schema_document_html"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument</a></div><div class="ttdoc">JSON schema document. </div><div class="ttdef"><b>Definition:</b> fwd.h:131</div></div>
+<div class="ttc" id="classrapidjson_1_1_i_generic_remote_schema_document_provider_html"><div class="ttname"><a href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">rapidjson::IGenericRemoteSchemaDocumentProvider</a></div><div class="ttdef"><b>Definition:</b> fwd.h:128</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_document_html"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html">rapidjson::GenericDocument</a></div><div class="ttdoc">A document for parsing JSON text as DOM. </div><div class="ttdef"><b>Definition:</b> document.h:57</div></div>
+<div class="ttc" id="classrapidjson_1_1_writer_html"><div class="ttname"><a href="classrapidjson_1_1_writer.html">rapidjson::Writer</a></div><div class="ttdoc">JSON writer. </div><div class="ttdef"><b>Definition:</b> fwd.h:95</div></div>
+<div class="ttc" id="structrapidjson_1_1_base_reader_handler_html"><div class="ttname"><a href="structrapidjson_1_1_base_reader_handler.html">rapidjson::BaseReaderHandler</a></div><div class="ttdoc">Default implementation of Handler. </div><div class="ttdef"><b>Definition:</b> fwd.h:85</div></div>
+<div class="ttc" id="rapidjson_8h_html"><div class="ttname"><a href="rapidjson_8h.html">rapidjson.h</a></div><div class="ttdoc">common definitions and configuration </div></div>
+<div class="ttc" id="namespacerapidjson_html_ace11b5b575baf1cccd5ba5f8586dcdc8"><div class="ttname"><a href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">rapidjson::Document</a></div><div class="ttdeci">GenericDocument&lt; UTF8&lt;&gt; &gt; Document</div><div class="ttdoc">GenericDocument with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> document.h:2101</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_schema_validator_html"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_validator.html">rapidjson::GenericSchemaValidator</a></div><div class="ttdoc">JSON Schema Validator. </div><div class="ttdef"><b>Definition:</b> fwd.h:140</div></div>
+<div class="ttc" id="structrapidjson_1_1_u_t_f8_html"><div class="ttname"><a href="structrapidjson_1_1_u_t_f8.html">rapidjson::UTF8</a></div><div class="ttdoc">UTF-8 encoding. </div><div class="ttdef"><b>Definition:</b> encodings.h:96</div></div>
+<div class="ttc" id="structrapidjson_1_1_generic_string_ref_html"><div class="ttname"><a href="structrapidjson_1_1_generic_string_ref.html">rapidjson::GenericStringRef</a></div><div class="ttdoc">Reference to a constant string (not taking a copy) </div><div class="ttdef"><b>Definition:</b> document.h:244</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_value_html"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html">rapidjson::GenericValue</a></div><div class="ttdoc">Represents a JSON value. Use Value for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> document.h:54</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_member_iterator_html"><div class="ttname"><a href="classrapidjson_1_1_generic_member_iterator.html">rapidjson::GenericMemberIterator</a></div><div class="ttdoc">(Constant) member iterator for a JSON object value </div><div class="ttdef"><b>Definition:</b> document.h:96</div></div>
+<div class="ttc" id="classrapidjson_1_1_memory_pool_allocator_html"><div class="ttname"><a href="classrapidjson_1_1_memory_pool_allocator.html">rapidjson::MemoryPoolAllocator</a></div><div class="ttdoc">Default memory allocator used by the parser and DOM. </div><div class="ttdef"><b>Definition:</b> allocators.h:102</div></div>
+<div class="ttc" id="structrapidjson_1_1_generic_insitu_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_insitu_string_stream.html">rapidjson::GenericInsituStringStream</a></div><div class="ttdoc">A read-write string stream. </div><div class="ttdef"><b>Definition:</b> fwd.h:52</div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- HTML footer for doxygen 1.8.7-->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_2e777bb85672ca91d8484c1593fb1d89.html">include</a></li><li class="navelem"><a class="el" href="dir_0b07344794a20f8375311f92e90cd9a3.html">rapidjson</a></li><li class="navelem"><b>fwd.h</b></li>
+ </ul>
+</div>
+<script type="text/javascript">
+ /* * * CONFIGURATION VARIABLES * * */
+ var disqus_shortname = 'rapidjson-doc';
+ /* * * DON'T EDIT BELOW THIS LINE * * */
+ (function() {
+ var dt = document.createElement('div');
+ dt.id = "disqus_thread";
+ (document.getElementsByClassName('contents')[0]).appendChild(dt);
+ var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
+ dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
+ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
+ })();
+</script>
+</body>
+</html>
diff --git a/group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html b/group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html
index 42b4cbcf..5d8841b8 100644
--- a/group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html
+++ b/group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html
@@ -182,7 +182,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<div class="textblock"><p>Result of parsing (wraps ParseErrorCode) </p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> doc;</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> doc;</div>
<div class="line"><a class="code" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#a0f03679d5fa2736d9e351541e767fac1">ParseResult</a> ok = doc.Parse(<span class="stringliteral">&quot;[42]&quot;</span>);</div>
<div class="line"><span class="keywordflow">if</span> (!ok) {</div>
<div class="line"> fprintf(stderr, <span class="stringliteral">&quot;JSON parse error: %s (%u)&quot;</span>,</div>
diff --git a/hierarchy.html b/hierarchy.html
index e50241a2..3600e4e1 100644
--- a/hierarchy.html
+++ b/hierarchy.html
@@ -107,7 +107,7 @@ $(document).ready(function(){initNavTree('hierarchy.html','');});
<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structrapidjson_1_1_generic_memory_buffer.html" target="_self">rapidjson::GenericMemoryBuffer&lt; Allocator &gt;</a></td><td class="desc">Represents an in-memory output byte stream </td></tr>
<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrapidjson_1_1_generic_pointer.html" target="_self">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a></td><td class="desc">Represents a JSON Pointer. Use Pointer for <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding and default allocator </td></tr>
<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrapidjson_1_1_generic_reader.html" target="_self">rapidjson::GenericReader&lt; SourceEncoding, TargetEncoding, StackAllocator &gt;</a></td><td class="desc">SAX-style JSON parser. Use <a class="el" href="md_doc_sax.html#Reader">Reader</a> for <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding and default allocator </td></tr>
-<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrapidjson_1_1_generic_schema_document.html" target="_self">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a></td><td class="desc">JSON schema document </td></tr>
+<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrapidjson_1_1_generic_schema_document.html" target="_self">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a></td><td class="desc">JSON schema document </td></tr>
<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrapidjson_1_1_generic_string_buffer.html" target="_self">rapidjson::GenericStringBuffer&lt; Encoding, Allocator &gt;</a></td><td class="desc">Represents an in-memory output stream </td></tr>
<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structrapidjson_1_1_generic_string_ref.html" target="_self">rapidjson::GenericStringRef&lt; CharType &gt;</a></td><td class="desc">Reference to a constant string (not taking a copy) </td></tr>
<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structrapidjson_1_1_generic_string_stream.html" target="_self">rapidjson::GenericStringStream&lt; Encoding &gt;</a></td><td class="desc">Read-only string stream </td></tr>
diff --git a/hierarchy.js b/hierarchy.js
index 39b2c82f..5a6bb982 100644
--- a/hierarchy.js
+++ b/hierarchy.js
@@ -17,7 +17,7 @@ var hierarchy =
[ "rapidjson::GenericMemoryBuffer< Allocator >", "structrapidjson_1_1_generic_memory_buffer.html", null ],
[ "rapidjson::GenericPointer< ValueType, Allocator >", "classrapidjson_1_1_generic_pointer.html", null ],
[ "rapidjson::GenericReader< SourceEncoding, TargetEncoding, StackAllocator >", "classrapidjson_1_1_generic_reader.html", null ],
- [ "rapidjson::GenericSchemaDocument< ValueType, Allocator >", "classrapidjson_1_1_generic_schema_document.html", null ],
+ [ "rapidjson::GenericSchemaDocument< ValueT, Allocator >", "classrapidjson_1_1_generic_schema_document.html", null ],
[ "rapidjson::GenericStringBuffer< Encoding, Allocator >", "classrapidjson_1_1_generic_string_buffer.html", null ],
[ "rapidjson::GenericStringRef< CharType >", "structrapidjson_1_1_generic_string_ref.html", null ],
[ "rapidjson::GenericStringStream< Encoding >", "structrapidjson_1_1_generic_string_stream.html", null ],
diff --git a/ieee754_8h_source.html b/ieee754_8h_source.html
index 7ae51ba4..ae376c7c 100644
--- a/ieee754_8h_source.html
+++ b/ieee754_8h_source.html
@@ -116,7 +116,7 @@ $(document).ready(function(){initNavTree('ieee754_8h_source.html','');});
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; Double(<span class="keywordtype">double</span> d) : d_(d) {}</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; Double(uint64_t u) : u_(u) {}</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordtype">double</span> <a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> d_; }</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordtype">double</span> <a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> d_; }</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; uint64_t Uint64Value()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> u_; }</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordtype">double</span> NextPositiveDouble()<span class="keyword"> const </span>{</div>
@@ -165,8 +165,8 @@ $(document).ready(function(){initNavTree('ieee754_8h_source.html','');});
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;RAPIDJSON_NAMESPACE_END</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_IEEE754_</span></div>
+<div class="ttc" id="namespacerapidjson_html_aa65fc9fb381b2cbc54f98673eadd6505"><div class="ttname"><a href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">rapidjson::Value</a></div><div class="ttdeci">GenericValue&lt; UTF8&lt;&gt; &gt; Value</div><div class="ttdoc">GenericValue with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> document.h:1753</div></div>
<div class="ttc" id="rapidjson_8h_html_aaee1245f375a71be1ac9b8a07ba5fb8f"><div class="ttname"><a href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a></div><div class="ttdeci">#define RAPIDJSON_UINT64_C2(high32, low32)</div><div class="ttdoc">Construct a 64-bit literal by a pair of 32-bit integer. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:288</div></div>
-<div class="ttc" id="namespacerapidjson_html_afb3fa116c66d834b6f4289d648cc8d6d"><div class="ttname"><a href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">rapidjson::Value</a></div><div class="ttdeci">GenericValue&lt; UTF8&lt;&gt; &gt; Value</div><div class="ttdoc">GenericValue with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> document.h:1753</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/md_doc_dom.html b/md_doc_dom.html
index b32107b4..09361bdd 100644
--- a/md_doc_dom.html
+++ b/md_doc_dom.html
@@ -119,8 +119,8 @@ Template</h1>
<div class="line"> <span class="comment">// ...</span></div>
<div class="line">};</div>
<div class="line"></div>
-<div class="line"><span class="keyword">typedef</span> GenericValue&lt;UTF8&lt;&gt; &gt; <a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>;</div>
-<div class="line"><span class="keyword">typedef</span> GenericDocument&lt;UTF8&lt;&gt; &gt; <a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a>;</div>
+<div class="line"><span class="keyword">typedef</span> GenericValue&lt;UTF8&lt;&gt; &gt; <a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>;</div>
+<div class="line"><span class="keyword">typedef</span> GenericDocument&lt;UTF8&lt;&gt; &gt; <a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a>;</div>
<div class="line"></div>
<div class="line">} <span class="comment">// namespace rapidjson</span></div>
</div><!-- fragment --><p>User can customize these template parameters.</p>
@@ -256,7 +256,7 @@ Parse Error</h2>
<div class="line"><span class="preprocessor">#include &quot;rapidjson/error/en.h&quot;</span></div>
<div class="line"></div>
<div class="line"><span class="comment">// ...</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> d;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> d;</div>
<div class="line"><span class="keywordflow">if</span> (d.Parse(json).HasParseError()) {</div>
<div class="line"> fprintf(stderr, <span class="stringliteral">&quot;\nError(offset %u): %s\n&quot;</span>, </div>
<div class="line"> (<span class="keywordtype">unsigned</span>)d.GetErrorOffset(),</div>
@@ -293,7 +293,7 @@ instiu parsing</div></div>
<div class="line">fclose(fp);</div>
<div class="line"></div>
<div class="line"><span class="comment">// In situ parsing the buffer into d, buffer will also be modified</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> d;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> d;</div>
<div class="line">d.ParseInsitu(buffer);</div>
<div class="line"></div>
<div class="line"><span class="comment">// Query/manipulate the DOM here...</span></div>
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">&quot;{\&quot;person\&quot;:{\&quot;name\&quot;:{\&quot;first\&quot;:\&quot;Adam\&quot;,\&quot;last\&quot;:\&quot;Thomas\&quot;}}}&quot;</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">&quot;{\&quot;address\&quot;:{\&quot;city\&quot;:\&quot;Moscow\&quot;,\&quot;street\&quot;:\&quot;Quiet\&quot;}}&quot;</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">&quot;person&quot;</span>: {</div>
<div class="line"> <span class="stringliteral">&quot;name&quot;</span>: { <span class="stringliteral">&quot;first&quot;</span>: <span class="stringliteral">&quot;Adam&quot;</span>, <span class="stringliteral">&quot;last&quot;</span>: <span class="stringliteral">&quot;Thomas&quot;</span> },</div>
@@ -195,7 +195,7 @@ $(document).ready(function(){initNavTree('md_doc_faq.html','');});
<div class="line">person[<span class="stringliteral">&quot;person&quot;</span>].AddMember(<span class="stringliteral">&quot;address&quot;</span>, address[<span class="stringliteral">&quot;address&quot;</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">&quot;person&quot;</span>].AddMember(addressRoot-&gt;name, addressRoot-&gt;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">&quot;address&quot;</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">&quot;address&quot;</span>], person.GetAllocator());</div>
<div class="line">person[<span class="stringliteral">&quot;person&quot;</span>].AddMember(<span class="stringliteral">&quot;address&quot;</span>, addressValue, person.GetAllocator());</div>
</div><!-- fragment --></li>
</ol>
diff --git a/md_doc_pointer.html b/md_doc_pointer.html
index 3afd0d19..f3437b7b 100644
--- a/md_doc_pointer.html
+++ b/md_doc_pointer.html
@@ -121,39 +121,39 @@ Basic Usage</h1>
<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;rapidjson/pointer.h&quot;</span></div>
<div class="line"></div>
<div class="line"><span class="comment">// ...</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> d;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> d;</div>
<div class="line"></div>
<div class="line"><span class="comment">// Create DOM by Set()</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">Pointer</a>(<span class="stringliteral">&quot;/project&quot;</span>).Set(d, <span class="stringliteral">&quot;RapidJSON&quot;</span>);</div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">Pointer</a>(<span class="stringliteral">&quot;/stars&quot;</span>).Set(d, 10);</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">Pointer</a>(<span class="stringliteral">&quot;/project&quot;</span>).Set(d, <span class="stringliteral">&quot;RapidJSON&quot;</span>);</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">Pointer</a>(<span class="stringliteral">&quot;/stars&quot;</span>).Set(d, 10);</div>
<div class="line"></div>
<div class="line"><span class="comment">// { &quot;project&quot; : &quot;RapidJSON&quot;, &quot;stars&quot; : 10 }</span></div>
<div class="line"></div>
<div class="line"><span class="comment">// Access DOM by Get(). It return nullptr if the value does not exist.</span></div>
-<div class="line"><span class="keywordflow">if</span> (<a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>* stars = <a class="code" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">Pointer</a>(<span class="stringliteral">&quot;/stars&quot;</span>).Get(d))</div>
+<div class="line"><span class="keywordflow">if</span> (<a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>* stars = <a class="code" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">Pointer</a>(<span class="stringliteral">&quot;/stars&quot;</span>).Get(d))</div>
<div class="line"> stars-&gt;SetInt(stars-&gt;GetInt() + 1);</div>
<div class="line"></div>
<div class="line"><span class="comment">// { &quot;project&quot; : &quot;RapidJSON&quot;, &quot;stars&quot; : 11 }</span></div>
<div class="line"></div>
<div class="line"><span class="comment">// Set() and Create() automatically generate parents if not exist.</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">Pointer</a>(<span class="stringliteral">&quot;/a/b/0&quot;</span>).Create(d);</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">Pointer</a>(<span class="stringliteral">&quot;/a/b/0&quot;</span>).Create(d);</div>
<div class="line"></div>
<div class="line"><span class="comment">// { &quot;project&quot; : &quot;RapidJSON&quot;, &quot;stars&quot; : 11, &quot;a&quot; : { &quot;b&quot; : [ null ] } }</span></div>
<div class="line"></div>
<div class="line"><span class="comment">// GetWithDefault() returns reference. And it deep clones the default value.</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>&amp; hello = <a class="code" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">Pointer</a>(<span class="stringliteral">&quot;/hello&quot;</span>).GetWithDefault(d, <span class="stringliteral">&quot;world&quot;</span>);</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>&amp; hello = <a class="code" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">Pointer</a>(<span class="stringliteral">&quot;/hello&quot;</span>).GetWithDefault(d, <span class="stringliteral">&quot;world&quot;</span>);</div>
<div class="line"></div>
<div class="line"><span class="comment">// { &quot;project&quot; : &quot;RapidJSON&quot;, &quot;stars&quot; : 11, &quot;a&quot; : { &quot;b&quot; : [ null ] }, &quot;hello&quot; : &quot;world&quot; }</span></div>
<div class="line"></div>
<div class="line"><span class="comment">// Swap() is similar to Set()</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> x(<span class="stringliteral">&quot;C++&quot;</span>);</div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">Pointer</a>(<span class="stringliteral">&quot;/hello&quot;</span>).Swap(d, x);</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> x(<span class="stringliteral">&quot;C++&quot;</span>);</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">Pointer</a>(<span class="stringliteral">&quot;/hello&quot;</span>).Swap(d, x);</div>
<div class="line"></div>
<div class="line"><span class="comment">// { &quot;project&quot; : &quot;RapidJSON&quot;, &quot;stars&quot; : 11, &quot;a&quot; : { &quot;b&quot; : [ null ] }, &quot;hello&quot; : &quot;C++&quot; }</span></div>
<div class="line"><span class="comment">// x becomes &quot;world&quot;</span></div>
<div class="line"></div>
<div class="line"><span class="comment">// Erase a member or element, return true if the value exists</span></div>
-<div class="line"><span class="keywordtype">bool</span> success = <a class="code" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">Pointer</a>(<span class="stringliteral">&quot;/a&quot;</span>).Erase(d);</div>
+<div class="line"><span class="keywordtype">bool</span> success = <a class="code" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">Pointer</a>(<span class="stringliteral">&quot;/a&quot;</span>).Erase(d);</div>
<div class="line">assert(success);</div>
<div class="line"></div>
<div class="line"><span class="comment">// { &quot;project&quot; : &quot;RapidJSON&quot;, &quot;stars&quot; : 10 }</span></div>
@@ -161,19 +161,19 @@ Basic Usage</h1>
Helper Functions</h1>
<p>Since object-oriented calling convention may be non-intuitive, RapidJSON also provides helper functions, which just wrap the member functions with free-functions.</p>
<p>The following example does exactly the same as the above one.</p>
-<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">SetValueByPointer(d, <span class="stringliteral">&quot;/project&quot;</span>, <span class="stringliteral">&quot;RapidJSON&quot;</span>);</div>
<div class="line">SetValueByPointer(d, <span class="stringliteral">&quot;/stars&quot;</span>, 10);</div>
<div class="line"></div>
-<div class="line"><span class="keywordflow">if</span> (<a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>* stars = GetValueByPointer(d, <span class="stringliteral">&quot;/stars&quot;</span>))</div>
+<div class="line"><span class="keywordflow">if</span> (<a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>* stars = GetValueByPointer(d, <span class="stringliteral">&quot;/stars&quot;</span>))</div>
<div class="line"> stars-&gt;SetInt(stars-&gt;GetInt() + 1);</div>
<div class="line"></div>
<div class="line">CreateValueByPointer(d, <span class="stringliteral">&quot;/a/b/0&quot;</span>);</div>
<div class="line"></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>&amp; hello = GetValueByPointerWithDefault(d, <span class="stringliteral">&quot;/hello&quot;</span>, <span class="stringliteral">&quot;world&quot;</span>);</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>&amp; hello = GetValueByPointerWithDefault(d, <span class="stringliteral">&quot;/hello&quot;</span>, <span class="stringliteral">&quot;world&quot;</span>);</div>
<div class="line"></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> x(<span class="stringliteral">&quot;C++&quot;</span>);</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> x(<span class="stringliteral">&quot;C++&quot;</span>);</div>
<div class="line">SwapValueByPointer(d, <span class="stringliteral">&quot;/hello&quot;</span>, x);</div>
<div class="line"></div>
<div class="line"><span class="keywordtype">bool</span> success = EraseValueByPointer(d, <span class="stringliteral">&quot;/a&quot;</span>);</div>
@@ -202,7 +202,7 @@ Resolving Pointer</h1>
<div class="fragment"><div class="line">SetValueByPointer(d, <span class="stringliteral">&quot;1/a&quot;</span>, 789); <span class="comment">// { &quot;0&quot; : 123, &quot;1&quot; : { &quot;a&quot; : 789 } }</span></div>
</div><!-- fragment --><h2>Resolving Minus Sign Token</h2>
<p>Besides, <a href="https://tools.ietf.org/html/rfc6901">RFC6901</a> defines a special token <code>-</code> (single minus sign), which represents the pass-the-end element of an array. <code>Get()</code> only treats this token as a member name '"-"'. Yet the other functions can resolve this for array, equivalent to calling <code>Value::PushBack()</code> to the array.</p>
-<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">d.Parse(<span class="stringliteral">&quot;{\&quot;foo\&quot;:[123]}&quot;</span>);</div>
<div class="line">SetValueByPointer(d, <span class="stringliteral">&quot;/foo/-&quot;</span>, 456); <span class="comment">// { &quot;foo&quot; : [123, 456] }</span></div>
<div class="line">SetValueByPointer(d, <span class="stringliteral">&quot;/-&quot;</span>, 789); <span class="comment">// { &quot;foo&quot; : [123, 456], &quot;-&quot; : 789 }</span></div>
@@ -213,14 +213,14 @@ Resolving Pointer</h1>
<div class="fragment"><div class="line"><span class="keyword">class </span>Person {</div>
<div class="line"><span class="keyword">public</span>:</div>
<div class="line"> Person() {</div>
-<div class="line"> document_ = <span class="keyword">new</span> <a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a>();</div>
+<div class="line"> document_ = <span class="keyword">new</span> <a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a>();</div>
<div class="line"> <span class="comment">// CreateValueByPointer() here no need allocator</span></div>
<div class="line"> SetLocation(CreateValueByPointer(*document_, <span class="stringliteral">&quot;/residence&quot;</span>), ...);</div>
<div class="line"> SetLocation(CreateValueByPointer(*document_, <span class="stringliteral">&quot;/office&quot;</span>), ...);</div>
<div class="line"> };</div>
<div class="line"></div>
<div class="line"><span class="keyword">private</span>:</div>
-<div class="line"> <span class="keywordtype">void</span> SetLocation(<a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>&amp; location, <span class="keyword">const</span> <span class="keywordtype">char</span>* country, <span class="keyword">const</span> <span class="keywordtype">char</span>* addresses[2]) {</div>
+<div class="line"> <span class="keywordtype">void</span> SetLocation(<a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>&amp; location, <span class="keyword">const</span> <span class="keywordtype">char</span>* country, <span class="keyword">const</span> <span class="keywordtype">char</span>* addresses[2]) {</div>
<div class="line"> Value::Allocator&amp; a = document_-&gt;GetAllocator();</div>
<div class="line"> <span class="comment">// SetValueByPointer() here need allocator</span></div>
<div class="line"> SetValueByPointer(location, <span class="stringliteral">&quot;/country&quot;</span>, country, a);</div>
@@ -230,7 +230,7 @@ Resolving Pointer</h1>
<div class="line"></div>
<div class="line"> <span class="comment">// ...</span></div>
<div class="line"></div>
-<div class="line"> <a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a>* document_;</div>
+<div class="line"> <a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a>* document_;</div>
<div class="line">};</div>
</div><!-- fragment --><p><code>Erase()</code> or <code>EraseValueByPointer()</code> does not need allocator. And they return <code>true</code> if the value is erased successfully.</p>
<h1><a class="anchor" id="ErrorHandling"></a>
@@ -260,8 +260,8 @@ URI Fragment Representation</h1>
<p>RapidJSON fully support URI fragment representation. It automatically detects the pound sign during parsing.</p>
<h1>Stringify</h1>
<p>You may also stringify a <code>Pointer</code> to a string or other output streams. This can be done by:</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">Pointer</a> p(...);</div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a51a6c35028b76e354bbb9e25d7125641">StringBuffer</a> sb;</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">Pointer</a> p(...);</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21">StringBuffer</a> sb;</div>
<div class="line">p.Stringify(sb);</div>
<div class="line">std::cout &lt;&lt; sb.GetString() &lt;&lt; std::endl;</div>
</div><!-- fragment --><p>It can also stringify to URI fragment reprsentation by <code>StringifyUriFragment()</code>.</p>
@@ -273,7 +273,7 @@ User-Supplied Tokens</h1>
<div class="line"><span class="preprocessor">#define INDEX(i) { #i, sizeof(#i) - 1, i }</span></div>
<div class="line"></div>
<div class="line"><span class="keyword">static</span> <span class="keyword">const</span> Pointer::Token kTokens[] = { NAME(<span class="stringliteral">&quot;foo&quot;</span>), INDEX(123) };</div>
-<div class="line"><span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">Pointer</a> p(kTokens, <span class="keyword">sizeof</span>(kTokens) / <span class="keyword">sizeof</span>(kTokens[0]));</div>
+<div class="line"><span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">Pointer</a> p(kTokens, <span class="keyword">sizeof</span>(kTokens) / <span class="keyword">sizeof</span>(kTokens[0]));</div>
<div class="line"><span class="comment">// Equivalent to static const Pointer p(&quot;/foo/123&quot;);</span></div>
</div><!-- fragment --><p>This may be useful for memory constrained systems. </p>
</div></div><!-- contents -->
diff --git a/md_doc_sax.html b/md_doc_sax.html
index 0a9796ab..4ff3f478 100644
--- a/md_doc_sax.html
+++ b/md_doc_sax.html
@@ -212,7 +212,7 @@ GenericReader</h2>
<div class="line"> <span class="comment">// ...</span></div>
<div class="line">};</div>
<div class="line"></div>
-<div class="line"><span class="keyword">typedef</span> GenericReader&lt;UTF8&lt;&gt;, UTF8&lt;&gt; &gt; <a class="code" href="namespacerapidjson.html#a4eaef42a208413d1f2c8d4655ecec52d">Reader</a>;</div>
+<div class="line"><span class="keyword">typedef</span> GenericReader&lt;UTF8&lt;&gt;, UTF8&lt;&gt; &gt; <a class="code" href="namespacerapidjson.html#ad5310edd1226f5b3ea82dc0d4d3740c6">Reader</a>;</div>
<div class="line"></div>
<div class="line">} <span class="comment">// namespace rapidjson</span></div>
</div><!-- fragment --><p>The <code>Reader</code> uses UTF-8 as both source and target encoding. The source encoding means the encoding in the JSON stream. The target encoding means the encoding of the <code>str</code> parameter in <code>String()</code> calls. For example, to parse a UTF-8 stream and outputs UTF-16 string events, you can define a reader by:</p>
@@ -257,7 +257,7 @@ Writer</h1>
<div class="line"> writer.Key(<span class="stringliteral">&quot;i&quot;</span>);</div>
<div class="line"> writer.Uint(123);</div>
<div class="line"> writer.Key(<span class="stringliteral">&quot;pi&quot;</span>);</div>
-<div class="line"> writer.<a class="code" href="classrapidjson_1_1_writer.html#ad5f042d9c1a8ce5be2d52e18255b4390">Double</a>(3.1416);</div>
+<div class="line"> writer.Double(3.1416);</div>
<div class="line"> writer.Key(<span class="stringliteral">&quot;a&quot;</span>);</div>
<div class="line"> writer.StartArray();</div>
<div class="line"> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i &lt; 4; i++)</div>
diff --git a/md_doc_schema.html b/md_doc_schema.html
index 1db949ae..e5020486 100644
--- a/md_doc_schema.html
+++ b/md_doc_schema.html
@@ -98,15 +98,15 @@ $(document).ready(function(){initNavTree('md_doc_schema.html','');});
<div class="line"></div>
<div class="line"><span class="comment">// ...</span></div>
<div class="line"></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> sd;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> sd;</div>
<div class="line"><span class="keywordflow">if</span> (!sd.Parse(schemaJson)) {</div>
<div class="line"> <span class="comment">// the schema is not a valid JSON.</span></div>
<div class="line"> <span class="comment">// ... </span></div>
<div class="line">}</div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a1039ee639733008423fd0dfb67122e54">SchemaDocument</a> schema(sd); <span class="comment">// Compile a Document to SchemaDocument</span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#a52bbb5d64d1319495089e1713a0653cf">SchemaDocument</a> schema(sd); <span class="comment">// Compile a Document to SchemaDocument</span></div>
<div class="line"><span class="comment">// sd is no longer needed here.</span></div>
<div class="line"></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> d;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> d;</div>
<div class="line"><span class="keywordflow">if</span> (!d.Parse(inputJson)) {</div>
<div class="line"> <span class="comment">// the input is not a valid JSON.</span></div>
<div class="line"> <span class="comment">// ... </span></div>
@@ -116,7 +116,7 @@ $(document).ready(function(){initNavTree('md_doc_schema.html','');});
<div class="line"><span class="keywordflow">if</span> (!d.Accept(validator)) {</div>
<div class="line"> <span class="comment">// Input JSON is invalid according to the schema</span></div>
<div class="line"> <span class="comment">// Output diagnostic information</span></div>
-<div class="line"> <a class="code" href="namespacerapidjson.html#a51a6c35028b76e354bbb9e25d7125641">StringBuffer</a> sb;</div>
+<div class="line"> <a class="code" href="namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21">StringBuffer</a> sb;</div>
<div class="line"> validator.GetInvalidSchemaPointer().StringifyUriFragment(sb);</div>
<div class="line"> printf(<span class="stringliteral">&quot;Invalid schema: %s\n&quot;</span>, sb.GetString());</div>
<div class="line"> printf(<span class="stringliteral">&quot;Invalid keyword: %s\n&quot;</span>, validator.GetInvalidSchemaKeyword());</div>
@@ -136,14 +136,14 @@ $(document).ready(function(){initNavTree('md_doc_schema.html','');});
<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;rapidjson/filereadstream.h&quot;</span></div>
<div class="line"></div>
<div class="line"><span class="comment">// ...</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a1039ee639733008423fd0dfb67122e54">SchemaDocument</a> schema(sd); <span class="comment">// Compile a Document to SchemaDocument</span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#a52bbb5d64d1319495089e1713a0653cf">SchemaDocument</a> schema(sd); <span class="comment">// Compile a Document to SchemaDocument</span></div>
<div class="line"></div>
<div class="line"><span class="comment">// Use reader to parse the JSON</span></div>
<div class="line">FILE* fp = fopen(<span class="stringliteral">&quot;big.json&quot;</span>, <span class="stringliteral">&quot;r&quot;</span>);</div>
<div class="line">FileReadStream is(fp, buffer, <span class="keyword">sizeof</span>(buffer));</div>
<div class="line"></div>
<div class="line"><span class="comment">// Parse JSON from reader, validate the SAX events, and store in d.</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> d;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> d;</div>
<div class="line">SchemaValidatingReader&lt;kParseDefaultFlags, FileReadStream, UTF8&lt;&gt; &gt; reader(is, schema);</div>
<div class="line">d.Populate(reader);</div>
<div class="line"></div>
@@ -158,7 +158,7 @@ $(document).ready(function(){initNavTree('md_doc_schema.html','');});
<div class="line"> <span class="keywordflow">if</span> (!reader.IsValid()) {</div>
<div class="line"> <span class="comment">// Input JSON is invalid according to the schema</span></div>
<div class="line"> <span class="comment">// Output diagnostic information</span></div>
-<div class="line"> <a class="code" href="namespacerapidjson.html#a51a6c35028b76e354bbb9e25d7125641">StringBuffer</a> sb;</div>
+<div class="line"> <a class="code" href="namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21">StringBuffer</a> sb;</div>
<div class="line"> reader.GetInvalidSchemaPointer().StringifyUriFragment(sb);</div>
<div class="line"> printf(<span class="stringliteral">&quot;Invalid schema: %s\n&quot;</span>, sb.GetString());</div>
<div class="line"> printf(<span class="stringliteral">&quot;Invalid keyword: %s\n&quot;</span>, reader.GetInvalidSchemaKeyword());</div>
@@ -170,7 +170,7 @@ $(document).ready(function(){initNavTree('md_doc_schema.html','');});
</div><!-- fragment --><h3>SAX parsing</h3>
<p>For using SAX in parsing, it is much simpler. If it only need to validate the JSON without further processing, it is simply:</p>
<div class="fragment"><div class="line">SchemaValidator validator(schema);</div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a4eaef42a208413d1f2c8d4655ecec52d">Reader</a> reader;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ad5310edd1226f5b3ea82dc0d4d3740c6">Reader</a> reader;</div>
<div class="line"><span class="keywordflow">if</span> (!reader.Parse(stream, validator)) {</div>
<div class="line"> <span class="keywordflow">if</span> (!validator.IsValid()) {</div>
<div class="line"> <span class="comment">// ... </span></div>
@@ -180,7 +180,7 @@ $(document).ready(function(){initNavTree('md_doc_schema.html','');});
<p>If you need to handle the SAX events further, then you need to use the template class <code>GenericSchemaValidator</code> to set the output handler of the validator:</p>
<div class="fragment"><div class="line">MyHandler handler;</div>
<div class="line">GenericSchemaValidator&lt;SchemaDocument, MyHandler&gt; validator(schema, handler);</div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a4eaef42a208413d1f2c8d4655ecec52d">Reader</a> reader;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ad5310edd1226f5b3ea82dc0d4d3740c6">Reader</a> reader;</div>
<div class="line"><span class="keywordflow">if</span> (!reader.Parse(ss, validator)) {</div>
<div class="line"> <span class="keywordflow">if</span> (!validator.IsValid()) {</div>
<div class="line"> <span class="comment">// ... </span></div>
@@ -188,7 +188,7 @@ $(document).ready(function(){initNavTree('md_doc_schema.html','');});
<div class="line">}</div>
</div><!-- fragment --><h3>Serialization</h3>
<p>It is also possible to do validation during serializing. This can ensure the result JSON is valid according to the JSON schema.</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#a51a6c35028b76e354bbb9e25d7125641">StringBuffer</a> sb;</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21">StringBuffer</a> sb;</div>
<div class="line">Writer&lt;StringBuffer&gt; writer(sb);</div>
<div class="line">GenericSchemaValidator&lt;SchemaDocument, Writer&lt;StringBuffer&gt; &gt; validator(s, writer);</div>
<div class="line"><span class="keywordflow">if</span> (!d.Accept(validator)) {</div>
@@ -202,9 +202,9 @@ $(document).ready(function(){initNavTree('md_doc_schema.html','');});
<p>JSON Schema supports <a href="http://spacetelescope.github.io/understanding-json-schema/structuring.html">`$ref` keyword</a>, which is a JSON pointer referencing to a local or remote schema. Local pointer is prefixed with <code>#</code>, while remote pointer is an relative or absolute URI. For example:</p>
<div class="fragment"><div class="line">{ <span class="stringliteral">&quot;$ref&quot;</span>: <span class="stringliteral">&quot;definitions.json#/address&quot;</span> }</div>
</div><!-- fragment --><p>As <code>SchemaValidator</code> does not know how to resolve such URI, it needs a user-provided <code>IRemoteSchemaDocumentProvider</code> instance to do so.</p>
-<div class="fragment"><div class="line"><span class="keyword">class </span>MyRemoteSchemaDocumentProvider : <span class="keyword">public</span> <a class="code" href="namespacerapidjson.html#a735a06a6e822111798e302c2f3af3de9">IRemoteSchemaDocumentProvider</a> {</div>
+<div class="fragment"><div class="line"><span class="keyword">class </span>MyRemoteSchemaDocumentProvider : <span class="keyword">public</span> <a class="code" href="namespacerapidjson.html#af91eb8eea47b79d75b23e29fa9c0abb5">IRemoteSchemaDocumentProvider</a> {</div>
<div class="line"><span class="keyword">public</span>:</div>
-<div class="line"> <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#a1039ee639733008423fd0dfb67122e54">SchemaDocument</a>* GetRemoteDocument(<span class="keyword">const</span> <span class="keywordtype">char</span>* uri, SizeTyp length) {</div>
+<div class="line"> <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#a52bbb5d64d1319495089e1713a0653cf">SchemaDocument</a>* GetRemoteDocument(<span class="keyword">const</span> <span class="keywordtype">char</span>* uri, SizeTyp length) {</div>
<div class="line"> <span class="comment">// Resolve the uri and returns a pointer to that schema.</span></div>
<div class="line"> }</div>
<div class="line">};</div>
diff --git a/md_doc_stream.html b/md_doc_stream.html
index 8e43cbd7..d76b3375 100644
--- a/md_doc_stream.html
+++ b/md_doc_stream.html
@@ -130,7 +130,7 @@ StringStream (Input)</h2>
</div><!-- fragment --><p>Since this is very common usage, <code>Document::Parse(const char*)</code> is provided to do exactly the same as above:</p>
<div class="fragment"><div class="line"><span class="comment">// ...</span></div>
<div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span> json[] = <span class="stringliteral">&quot;[1, 2, 3, 4]&quot;</span>;</div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> d;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> d;</div>
<div class="line">d.Parse(json);</div>
</div><!-- fragment --><p>Note that, <code>StringStream</code> is a typedef of <code>GenericStringStream&lt;UTF8&lt;&gt; &gt;</code>, user may use another encodings to represent the character set of the stream.</p>
<h2><a class="anchor" id="StringBuffer"></a>
@@ -138,14 +138,14 @@ StringBuffer (Output)</h2>
<p><code>StringBuffer</code> is a simple output stream. It allocates a memory buffer for writing the whole JSON. Use <code>GetString()</code> to obtain the buffer.</p>
<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;rapidjson/stringbuffer.h&quot;</span></div>
<div class="line"></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a51a6c35028b76e354bbb9e25d7125641">StringBuffer</a> buffer;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21">StringBuffer</a> buffer;</div>
<div class="line">Writer&lt;StringBuffer&gt; writer(buffer);</div>
<div class="line">d.Accept(writer);</div>
<div class="line"></div>
<div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span>* output = buffer.GetString();</div>
</div><!-- fragment --><p>When the buffer is full, it will increases the capacity automatically. The default capacity is 256 characters (256 bytes for UTF8, 512 bytes for UTF16, etc.). User can provide an allocator and a initial capacity.</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#a51a6c35028b76e354bbb9e25d7125641">StringBuffer</a> buffer1(0, 1024); <span class="comment">// Use its allocator, initial size = 1024</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a51a6c35028b76e354bbb9e25d7125641">StringBuffer</a> buffer2(allocator, 1024);</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21">StringBuffer</a> buffer1(0, 1024); <span class="comment">// Use its allocator, initial size = 1024</span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21">StringBuffer</a> buffer2(allocator, 1024);</div>
</div><!-- fragment --><p>By default, <code>StringBuffer</code> will instantiate an internal allocator.</p>
<p>Similarly, <code>StringBuffer</code> is a typedef of <code>GenericStringBuffer&lt;UTF8&lt;&gt; &gt;</code>.</p>
<h1><a class="anchor" id="FileStreams"></a>
@@ -228,7 +228,7 @@ EncodedOutputStream</h2>
<div class="line"><span class="preprocessor">#include &quot;rapidjson/encodedstream.h&quot;</span> <span class="comment">// EncodedOutputStream</span></div>
<div class="line"><span class="preprocessor">#include &lt;cstdio&gt;</span></div>
<div class="line"></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> d; <span class="comment">// Document is GenericDocument&lt;UTF8&lt;&gt; &gt; </span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> d; <span class="comment">// Document is GenericDocument&lt;UTF8&lt;&gt; &gt; </span></div>
<div class="line"><span class="comment">// ...</span></div>
<div class="line"></div>
<div class="line">FILE* fp = fopen(<span class="stringliteral">&quot;output_utf32le.json&quot;</span>, <span class="stringliteral">&quot;wb&quot;</span>); <span class="comment">// non-Windows use &quot;w&quot;</span></div>
@@ -354,7 +354,7 @@ Example: istream wrapper</h2>
<div class="line">std::stringstream ss(json);</div>
<div class="line">IStreamWrapper is(ss);</div>
<div class="line"></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> d;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> d;</div>
<div class="line">d.<a class="code" href="classrapidjson_1_1_generic_document.html#a3ae97682cf04685c7db9d89ebc399b85">ParseStream</a>(is);</div>
</div><!-- fragment --><p>Note that, this implementation may not be as efficient as RapidJSON's memory or file streams, due to internal overheads of the standard library.</p>
<h2><a class="anchor" id="ExampleOStreamWrapper"></a>
@@ -383,7 +383,7 @@ Example: ostream wrapper</h2>
<div class="line"> std::ostream&amp; os_;</div>
<div class="line">};</div>
</div><!-- fragment --><p>User can use it to wrap instances of <code>std::stringstream</code>, <code>std::ofstream</code>.</p>
-<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"><span class="comment">// ...</span></div>
<div class="line"></div>
<div class="line">std::stringstream ss;</div>
diff --git a/md_doc_tutorial.html b/md_doc_tutorial.html
index bbd6791b..0a37ef85 100644
--- a/md_doc_tutorial.html
+++ b/md_doc_tutorial.html
@@ -163,7 +163,7 @@ DOM in the tutorial</div></div>
</div><!-- fragment --><div class="fragment"><div class="line">i = 123</div>
<div class="line">pi = 3.1416</div>
</div><!-- fragment --><p>JSON array contains a number of elements. </p><div class="fragment"><div class="line"><span class="comment">// Using a reference for consecutive access is handy and faster.</span></div>
-<div class="line"><span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>&amp; a = document[<span class="stringliteral">&quot;a&quot;</span>];</div>
+<div class="line"><span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>&amp; a = document[<span class="stringliteral">&quot;a&quot;</span>];</div>
<div class="line">assert(a.IsArray());</div>
<div class="line"><span class="keywordflow">for</span> (<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> i = 0; i &lt; a.Size(); i++) <span class="comment">// Uses SizeType instead of size_t</span></div>
<div class="line"> printf(<span class="stringliteral">&quot;a[%d] = %d\n&quot;</span>, i, a[i].GetInt());</div>
@@ -271,26 +271,26 @@ Create/Modify Values</h1>
<h2><a class="anchor" id="ChangeValueType"></a>
Change Value Type</h2>
<p>When creating a Value or Document by default constructor, its type is Null. To change its type, call <code>SetXXX()</code> or assignment operator, for example:</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> d; <span class="comment">// Null</span></div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> d; <span class="comment">// Null</span></div>
<div class="line">d.SetObject();</div>
<div class="line"></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> v; <span class="comment">// Null</span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> v; <span class="comment">// Null</span></div>
<div class="line">v.SetInt(10);</div>
<div class="line">v = 10; <span class="comment">// Shortcut, same as above</span></div>
</div><!-- fragment --><h3>Overloaded Constructors</h3>
<p>There are also overloaded constructors for several types:</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> b(<span class="keyword">true</span>); <span class="comment">// calls Value(bool)</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> i(-123); <span class="comment">// calls Value(int)</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> u(123u); <span class="comment">// calls Value(unsigned)</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> d(1.5); <span class="comment">// calls Value(double)</span></div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> b(<span class="keyword">true</span>); <span class="comment">// calls Value(bool)</span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> i(-123); <span class="comment">// calls Value(int)</span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> u(123u); <span class="comment">// calls Value(unsigned)</span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> d(1.5); <span class="comment">// calls Value(double)</span></div>
</div><!-- fragment --><p>To create empty object or array, you may use <code>SetObject()</code>/<code>SetArray()</code> after default constructor, or using the <code>Value(Type)</code> in one shot:</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> o(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">kObjectType</a>);</div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> a(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">kArrayType</a>);</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> o(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">kObjectType</a>);</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> a(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">kArrayType</a>);</div>
</div><!-- fragment --><h2><a class="anchor" id="MoveSemantics"></a>
Move Semantics</h2>
<p>A very special decision during design of RapidJSON is that, assignment of value does not copy the source value to destination value. Instead, the value from source is moved to the destination. For example,</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> a(123);</div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> b(456);</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> a(123);</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> b(456);</div>
<div class="line">b = a; <span class="comment">// a becomes a Null value, b becomes number 123.</span></div>
</div><!-- fragment --><div class="image">
<img src="move1.png" alt="move1.png"/>
@@ -299,10 +299,10 @@ Assignment with move semantics.</div></div>
<p> Why? What is the advantage of this semantics?</p>
<p>The simple answer is performance. For fixed size JSON types (Number, True, False, Null), copying them is fast and easy. However, For variable size JSON types (String, Array, Object), copying them will incur a lot of overheads. And these overheads are often unnoticed. Especially when we need to create temporary object, copy it to another variable, and then destruct it.</p>
<p>For example, if normal <em>copy</em> semantics was used:</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> d;</div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> o(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">kObjectType</a>);</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> d;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> o(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">kObjectType</a>);</div>
<div class="line">{</div>
-<div class="line"> <a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> contacts(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">kArrayType</a>);</div>
+<div class="line"> <a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> contacts(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">kArrayType</a>);</div>
<div class="line"> <span class="comment">// adding elements to contacts array.</span></div>
<div class="line"> <span class="comment">// ...</span></div>
<div class="line"> o.AddMember(<span class="stringliteral">&quot;contacts&quot;</span>, contacts, d.GetAllocator()); <span class="comment">// deep clone contacts (may be with lots of allocations)</span></div>
@@ -316,10 +316,10 @@ Copy semantics makes a lots of copy operations.</div></div>
<p>There are solutions to prevent actual copying these data, such as reference counting and garbage collection(GC).</p>
<p>To make RapidJSON simple and fast, we chose to use <em>move</em> semantics for assignment. It is similar to <code>std::auto_ptr</code> which transfer ownership during assignment. Move is much faster and simpler, it just destructs the original value, <code>memcpy()</code> the source to destination, and finally sets the source as Null type.</p>
<p>So, with move semantics, the above example becomes:</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> d;</div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> o(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">kObjectType</a>);</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> d;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> o(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">kObjectType</a>);</div>
<div class="line">{</div>
-<div class="line"> <a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> contacts(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">kArrayType</a>);</div>
+<div class="line"> <a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> contacts(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">kArrayType</a>);</div>
<div class="line"> <span class="comment">// adding elements to contacts array.</span></div>
<div class="line"> o.AddMember(<span class="stringliteral">&quot;contacts&quot;</span>, contacts, d.GetAllocator()); <span class="comment">// just memcpy() of contacts itself to the value of new member (16 bytes)</span></div>
<div class="line"> <span class="comment">// contacts became Null here. Its destruction is trivial.</span></div>
@@ -332,11 +332,11 @@ Move semantics makes no copying.</div></div>
<h3><a class="anchor" id="TemporaryValues"></a>
Move semantics and temporary values</h3>
<p>Sometimes, it is convenient to construct a Value in place, before passing it to one of the "moving" functions, like <code>PushBack()</code> or <code>AddMember()</code>. As temporary objects can't be converted to proper Value references, the convenience function <code>Move()</code> is available:</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> a(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">kArrayType</a>);</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> a(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">kArrayType</a>);</div>
<div class="line">Document::AllocatorType&amp; allocator = document.GetAllocator();</div>
<div class="line"><span class="comment">// a.PushBack(Value(42), allocator); // will not compile</span></div>
-<div class="line">a.PushBack(<a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>().SetInt(42), allocator); <span class="comment">// fluent API</span></div>
-<div class="line">a.PushBack(<a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>(42).Move(), allocator); <span class="comment">// same as above</span></div>
+<div class="line">a.PushBack(<a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>().SetInt(42), allocator); <span class="comment">// fluent API</span></div>
+<div class="line">a.PushBack(<a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>(42).Move(), allocator); <span class="comment">// same as above</span></div>
</div><!-- fragment --><h2><a class="anchor" id="CreateString"></a>
Create String</h2>
<p>RapidJSON provide two strategies for storing string.</p>
@@ -347,8 +347,8 @@ Create String</h2>
<p>Copy-string is always safe because it owns a copy of the data. Const-string can be used for storing string literal, and in-situ parsing which we will mentioned in Document section.</p>
<p>To make memory allocation customizable, RapidJSON requires user to pass an instance of allocator, whenever an operation may require allocation. This design is needed to prevent storing a allocator (or Document) pointer per Value.</p>
<p>Therefore, when we assign a copy-string, we call this overloaded <code>SetString()</code> with allocator:</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> document;</div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> author;</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> document;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> author;</div>
<div class="line"><span class="keywordtype">char</span> buffer[10];</div>
<div class="line"><span class="keywordtype">int</span> len = sprintf(buffer, <span class="stringliteral">&quot;%s %s&quot;</span>, <span class="stringliteral">&quot;Milo&quot;</span>, <span class="stringliteral">&quot;Yip&quot;</span>); <span class="comment">// dynamically created string.</span></div>
<div class="line">author.SetString(buffer, len, document.GetAllocator());</div>
@@ -357,13 +357,13 @@ Create String</h2>
</div><!-- fragment --><p>In this example, we get the allocator from a <code>Document</code> instance. This is a common idiom when using RapidJSON. But you may use other instances of allocator.</p>
<p>Besides, the above <code>SetString()</code> requires length. This can handle null characters within a string. There is another <code>SetString()</code> overloaded function without the length parameter. And it assumes the input is null-terminated and calls a <code>strlen()</code>-like function to obtain the length.</p>
<p>Finally, for string literal or string with safe life-cycle can use const-string version of <code>SetString()</code>, which lacks allocator parameter. For string literals (or constant character arrays), simply passing the literal as parameter is safe and efficient:</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> s;</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> s;</div>
<div class="line">s.SetString(<span class="stringliteral">&quot;rapidjson&quot;</span>); <span class="comment">// can contain null character, length derived at compile time</span></div>
<div class="line">s = <span class="stringliteral">&quot;rapidjson&quot;</span>; <span class="comment">// shortcut, same as above</span></div>
</div><!-- fragment --><p>For character pointer, the RapidJSON requires to mark it as safe before using it without copying. This can be achieved by using the <code>StringRef</code> function:</p>
<div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span> * cstr = getenv(<span class="stringliteral">&quot;USER&quot;</span>);</div>
<div class="line"><span class="keywordtype">size_t</span> cstr_len = ...; <span class="comment">// in case length is available</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> s;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> s;</div>
<div class="line"><span class="comment">// s.SetString(cstr); // will not compile</span></div>
<div class="line">s.SetString(<a class="code" href="structrapidjson_1_1_generic_string_ref.html#aa6b9fd9f6aa49405a574c362ba9af6b5">StringRef</a>(cstr)); <span class="comment">// ok, assume safe lifetime, null-terminated</span></div>
<div class="line">s = <a class="code" href="structrapidjson_1_1_generic_string_ref.html#aa6b9fd9f6aa49405a574c362ba9af6b5">StringRef</a>(cstr); <span class="comment">// shortcut, same as above</span></div>
@@ -383,7 +383,7 @@ Modify Array</h2>
</ul>
<p>Note that, <code>Reserve(...)</code> and <code>PushBack(...)</code> may allocate memory for the array elements, therefore require an allocator.</p>
<p>Here is an example of <code>PushBack()</code>:</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> a(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">kArrayType</a>);</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> a(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">kArrayType</a>);</div>
<div class="line">Document::AllocatorType&amp; allocator = document.GetAllocator();</div>
<div class="line"></div>
<div class="line"><span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 5; i &lt;= 10; i++)</div>
@@ -394,11 +394,11 @@ Modify Array</h2>
</div><!-- fragment --><p>Differs from STL, <code>PushBack()</code>/<code>PopBack()</code> returns the array reference itself. This is called <em>fluent interface</em>.</p>
<p>If you want to add a non-constant string or a string without sufficient lifetime (see <a href="#CreateString">Create String</a>) to the array, you need to create a string Value by using the copy-string API. To avoid the need for an intermediate variable, you can use a <a href="#TemporaryValues">temporary value</a> in place:</p>
<div class="fragment"><div class="line"><span class="comment">// in-place Value parameter</span></div>
-<div class="line">contact.PushBack(<a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>(<span class="stringliteral">&quot;copy&quot;</span>, document.GetAllocator()).Move(), <span class="comment">// copy string</span></div>
+<div class="line">contact.PushBack(<a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>(<span class="stringliteral">&quot;copy&quot;</span>, document.GetAllocator()).Move(), <span class="comment">// copy string</span></div>
<div class="line"> document.GetAllocator());</div>
<div class="line"></div>
<div class="line"><span class="comment">// explicit parameters</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> val(<span class="stringliteral">&quot;key&quot;</span>, document.GetAllocator()); <span class="comment">// copy string</span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> val(<span class="stringliteral">&quot;key&quot;</span>, document.GetAllocator()); <span class="comment">// copy string</span></div>
<div class="line">contact.PushBack(val, document.GetAllocator());</div>
</div><!-- fragment --><h2><a class="anchor" id="ModifyObject"></a>
Modify Object</h2>
@@ -409,19 +409,19 @@ Modify Object</h2>
<li><code>template &lt;typename T&gt; Value&amp; AddMember(StringRefType, T value, Allocator&amp;)</code></li>
</ul>
<p>Here is an example.</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> contact(kObject);</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> contact(kObject);</div>
<div class="line">contact.AddMember(<span class="stringliteral">&quot;name&quot;</span>, <span class="stringliteral">&quot;Milo&quot;</span>, document.GetAllocator());</div>
<div class="line">contact.AddMember(<span class="stringliteral">&quot;married&quot;</span>, <span class="keyword">true</span>, document.GetAllocator());</div>
</div><!-- fragment --><p>The name parameter with <code>StringRefType</code> is similar to the interface of <code>SetString</code> function for string values. These overloads are used to avoid the need for copying the <code>name</code> string, as constant key names are very common in JSON objects.</p>
<p>If you need to create a name from a non-constant string or a string without sufficient lifetime (see <a href="#CreateString">Create String</a>), you need to create a string Value by using the copy-string API. To avoid the need for an intermediate variable, you can use a <a href="#TemporaryValues">temporary value</a> in place:</p>
<div class="fragment"><div class="line"><span class="comment">// in-place Value parameter</span></div>
-<div class="line">contact.AddMember(<a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>(<span class="stringliteral">&quot;copy&quot;</span>, document.GetAllocator()).Move(), <span class="comment">// copy string</span></div>
-<div class="line"> <a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>().Move(), <span class="comment">// null value</span></div>
+<div class="line">contact.AddMember(<a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>(<span class="stringliteral">&quot;copy&quot;</span>, document.GetAllocator()).Move(), <span class="comment">// copy string</span></div>
+<div class="line"> <a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>().Move(), <span class="comment">// null value</span></div>
<div class="line"> document.GetAllocator());</div>
<div class="line"></div>
<div class="line"><span class="comment">// explicit parameters</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> key(<span class="stringliteral">&quot;key&quot;</span>, document.GetAllocator()); <span class="comment">// copy string name</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> val(42); <span class="comment">// some value</span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> key(<span class="stringliteral">&quot;key&quot;</span>, document.GetAllocator()); <span class="comment">// copy string name</span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> val(42); <span class="comment">// some value</span></div>
<div class="line">contact.AddMember(key, val, document.GetAllocator());</div>
</div><!-- fragment --><p>For removing members, there are several choices:</p>
<ul>
@@ -435,12 +435,12 @@ Modify Object</h2>
<h2><a class="anchor" id="DeepCopyValue"></a>
Deep Copy Value</h2>
<p>If we really need to copy a DOM tree, we can use two APIs for deep copy: constructor with allocator, and <code>CopyFrom()</code>.</p>
-<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">Document::AllocatorType&amp; a = d.GetAllocator();</div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> v1(<span class="stringliteral">&quot;foo&quot;</span>);</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> v1(<span class="stringliteral">&quot;foo&quot;</span>);</div>
<div class="line"><span class="comment">// Value v2(v1); // not allowed</span></div>
<div class="line"></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> v2(v1, a); <span class="comment">// make a copy</span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> v2(v1, a); <span class="comment">// make a copy</span></div>
<div class="line">assert(v1.IsString()); <span class="comment">// v1 untouched</span></div>
<div class="line">d.SetArray().PushBack(v1, a).PushBack(v2, a);</div>
<div class="line">assert(v1.IsNull() &amp;&amp; v2.IsNull()); <span class="comment">// both moved to d</span></div>
@@ -452,8 +452,8 @@ Deep Copy Value</h2>
</div><!-- fragment --><h2><a class="anchor" id="SwapValues"></a>
Swap Values</h2>
<p><code>Swap()</code> is also provided.</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> a(123);</div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> b(<span class="stringliteral">&quot;Hello&quot;</span>);</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> a(123);</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> b(<span class="stringliteral">&quot;Hello&quot;</span>);</div>
<div class="line">a.Swap(b);</div>
<div class="line">assert(a.IsString());</div>
<div class="line">assert(b.IsInt());</div>
diff --git a/memorybuffer_8h_source.html b/memorybuffer_8h_source.html
index 9f7bc57d..0a9791c5 100644
--- a/memorybuffer_8h_source.html
+++ b/memorybuffer_8h_source.html
@@ -105,7 +105,7 @@ $(document).ready(function(){initNavTree('memorybuffer_8h_source.html','');});
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_MEMORYBUFFER_H_</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define RAPIDJSON_MEMORYBUFFER_H_</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rapidjson_8h.html">rapidjson.h</a>&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;stream.h&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;internal/stack.h&quot;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;RAPIDJSON_NAMESPACE_BEGIN</div>
@@ -124,10 +124,10 @@ $(document).ready(function(){initNavTree('memorybuffer_8h_source.html','');});
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> \note implements Stream concept</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Allocator = CrtAllocator&gt;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_generic_memory_buffer.html"> 37</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_generic_memory_buffer.html">GenericMemoryBuffer</a> {</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">struct </span>GenericMemoryBuffer {</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">char</span> Ch; <span class="comment">// byte</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <a class="code" href="structrapidjson_1_1_generic_memory_buffer.html">GenericMemoryBuffer</a>(<a class="code" href="classrapidjson_1_1_allocator.html">Allocator</a>* allocator = 0, <span class="keywordtype">size_t</span> capacity = kDefaultCapacity) : stack_(allocator, capacity) {}</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; GenericMemoryBuffer(Allocator* allocator = 0, <span class="keywordtype">size_t</span> capacity = kDefaultCapacity) : stack_(allocator, capacity) {}</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">void</span> Put(Ch c) { *stack_.template Push&lt;Ch&gt;() = c; }</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordtype">void</span> Flush() {}</div>
@@ -147,21 +147,18 @@ $(document).ready(function(){initNavTree('memorybuffer_8h_source.html','');});
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">mutable</span> internal::Stack&lt;Allocator&gt; stack_;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;};</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="keyword">typedef</span> <a class="code" href="structrapidjson_1_1_generic_memory_buffer.html">GenericMemoryBuffer&lt;&gt;</a> <a class="code" href="structrapidjson_1_1_generic_memory_buffer.html">MemoryBuffer</a>;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">typedef</span> GenericMemoryBuffer&lt;&gt; MemoryBuffer;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment">//! Implement specialized version of PutN() with memset() for better performance.</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#aba27b0c8dcf724aa2b288a24fda0811b"> 64</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">PutN</a>(<a class="code" href="structrapidjson_1_1_generic_memory_buffer.html">MemoryBuffer</a>&amp; memoryBuffer, <span class="keywordtype">char</span> c, <span class="keywordtype">size_t</span> n) {</div>
+<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#aba27b0c8dcf724aa2b288a24fda0811b"> 64</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a">PutN</a>(MemoryBuffer&amp; memoryBuffer, <span class="keywordtype">char</span> c, <span class="keywordtype">size_t</span> n) {</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; std::memset(memoryBuffer.stack_.Push&lt;<span class="keywordtype">char</span>&gt;(n), c, n * <span class="keyword">sizeof</span>(c));</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;}</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;RAPIDJSON_NAMESPACE_END</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_MEMORYBUFFER_H_</span></div>
-<div class="ttc" id="structrapidjson_1_1_generic_memory_buffer_html"><div class="ttname"><a href="structrapidjson_1_1_generic_memory_buffer.html">rapidjson::GenericMemoryBuffer</a></div><div class="ttdoc">Represents an in-memory output byte stream. </div><div class="ttdef"><b>Definition:</b> memorybuffer.h:37</div></div>
-<div class="ttc" id="rapidjson_8h_html"><div class="ttname"><a href="rapidjson_8h.html">rapidjson.h</a></div><div class="ttdoc">common definitions and configuration </div></div>
-<div class="ttc" id="classrapidjson_1_1_allocator_html"><div class="ttname"><a href="classrapidjson_1_1_allocator.html">rapidjson::Allocator</a></div><div class="ttdoc">Concept for allocating, resizing and freeing memory block. </div></div>
-<div class="ttc" id="namespacerapidjson_html_a1d49d2cab617858b53a1db23b1759f43"><div class="ttname"><a href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">rapidjson::PutN</a></div><div class="ttdeci">void PutN(Stream &amp;stream, Ch c, size_t n)</div><div class="ttdoc">Put N copies of a character to a stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:632</div></div>
+<div class="ttc" id="namespacerapidjson_html_a1ac13bac5976fc06587e00fc0bcfb32a"><div class="ttname"><a href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a">rapidjson::PutN</a></div><div class="ttdeci">void PutN(FileWriteStream &amp;stream, char c, size_t n)</div><div class="ttdoc">Implement specialized version of PutN() with memset() for better performance. </div><div class="ttdef"><b>Definition:</b> filewritestream.h:94</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.7-->
diff --git a/memorystream_8h_source.html b/memorystream_8h_source.html
index 8093b03d..5b42b0a0 100644
--- a/memorystream_8h_source.html
+++ b/memorystream_8h_source.html
@@ -105,7 +105,7 @@ $(document).ready(function(){initNavTree('memorystream_8h_source.html','');});
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_MEMORYSTREAM_H_</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define RAPIDJSON_MEMORYSTREAM_H_</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rapidjson_8h.html">rapidjson.h</a>&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;stream.h&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#ifdef __clang__</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;RAPIDJSON_DIAG_PUSH</div>
@@ -164,7 +164,6 @@ $(document).ready(function(){initNavTree('memorystream_8h_source.html','');});
<div class="ttc" id="structrapidjson_1_1_memory_stream_html_a47f45298891e8156121b4017954fabe8"><div class="ttname"><a href="structrapidjson_1_1_memory_stream.html#a47f45298891e8156121b4017954fabe8">rapidjson::MemoryStream::end_</a></div><div class="ttdeci">const Ch * end_</div><div class="ttdoc">End of stream. </div><div class="ttdef"><b>Definition:</b> memorystream.h:61</div></div>
<div class="ttc" id="structrapidjson_1_1_memory_stream_html_a1cc586e50fbfc0bd5994977b42243b93"><div class="ttname"><a href="structrapidjson_1_1_memory_stream.html#a1cc586e50fbfc0bd5994977b42243b93">rapidjson::MemoryStream::begin_</a></div><div class="ttdeci">const Ch * begin_</div><div class="ttdoc">Original head of the string. </div><div class="ttdef"><b>Definition:</b> memorystream.h:60</div></div>
<div class="ttc" id="structrapidjson_1_1_memory_stream_html_ac0b4da6016e5ba6241604fd4258fb722"><div class="ttname"><a href="structrapidjson_1_1_memory_stream.html#ac0b4da6016e5ba6241604fd4258fb722">rapidjson::MemoryStream::src_</a></div><div class="ttdeci">const Ch * src_</div><div class="ttdoc">Current read position. </div><div class="ttdef"><b>Definition:</b> memorystream.h:59</div></div>
-<div class="ttc" id="rapidjson_8h_html"><div class="ttname"><a href="rapidjson_8h.html">rapidjson.h</a></div><div class="ttdoc">common definitions and configuration </div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/meta_8h_source.html b/meta_8h_source.html
index 283e273b..b7d8fed1 100644
--- a/meta_8h_source.html
+++ b/meta_8h_source.html
@@ -131,7 +131,7 @@ $(document).ready(function(){initNavTree('meta_8h_source.html','');});
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"></span><span class="comment">// BoolType, TrueType, FalseType</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">template</span> &lt;<span class="keywordtype">bool</span> Cond&gt; <span class="keyword">struct </span>BoolType {</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> = Cond;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> = Cond;</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">typedef</span> BoolType <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">Type</a>;</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;};</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">typedef</span> BoolType&lt;true&gt; TrueType;</div>
@@ -209,7 +209,7 @@ $(document).ready(function(){initNavTree('meta_8h_source.html','');});
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">operator</span> <span class="keyword">const</span> D*();</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; };</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">enum</span> { <a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> = (<span class="keyword">sizeof</span>(Check(Host(), 0)) == <span class="keyword">sizeof</span>(Yes)) };</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">enum</span> { <a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> = (<span class="keyword">sizeof</span>(Check(Host(), 0)) == <span class="keyword">sizeof</span>(Yes)) };</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;};</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> B, <span class="keyword">typename</span> D&gt; <span class="keyword">struct </span>IsBaseOf</div>
@@ -269,9 +269,9 @@ $(document).ready(function(){initNavTree('meta_8h_source.html','');});
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_INTERNAL_META_H_</span></div>
+<div class="ttc" id="namespacerapidjson_html_aa65fc9fb381b2cbc54f98673eadd6505"><div class="ttname"><a href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">rapidjson::Value</a></div><div class="ttdeci">GenericValue&lt; UTF8&lt;&gt; &gt; Value</div><div class="ttdoc">GenericValue with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> document.h:1753</div></div>
<div class="ttc" id="rapidjson_8h_html_af95188da1d8eb6d4b148fe9ce71cd7c4"><div class="ttname"><a href="rapidjson_8h.html#af95188da1d8eb6d4b148fe9ce71cd7c4">RAPIDJSON_STATIC_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_STATIC_ASSERT(x)</div><div class="ttdoc">(Internal) macro to check for conditions at compile-time </div><div class="ttdef"><b>Definition:</b> rapidjson.h:406</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:716</div></div>
-<div class="ttc" id="namespacerapidjson_html_afb3fa116c66d834b6f4289d648cc8d6d"><div class="ttname"><a href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">rapidjson::Value</a></div><div class="ttdeci">GenericValue&lt; UTF8&lt;&gt; &gt; Value</div><div class="ttdoc">GenericValue with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> document.h:1753</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:557</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.7-->
diff --git a/namespacemembers.html b/namespacemembers.html
index ae36f684..91189c1d 100644
--- a/namespacemembers.html
+++ b/namespacemembers.html
@@ -88,7 +88,7 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');});
<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
<li>Document
-: <a class="el" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">rapidjson</a>
</li>
</ul>
@@ -105,10 +105,10 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');});
<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
<li>InsituStringStream
-: <a class="el" href="namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#a64e957c8d9d7cd15b193ffc31410038e">rapidjson</a>
</li>
<li>IRemoteSchemaDocumentProvider
-: <a class="el" href="namespacerapidjson.html#a735a06a6e822111798e302c2f3af3de9">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#af91eb8eea47b79d75b23e29fa9c0abb5">rapidjson</a>
</li>
</ul>
@@ -254,13 +254,13 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');});
: <a class="el" href="namespacerapidjson.html#a81379eb4e94a0386d71d15fda882ebc9">rapidjson</a>
</li>
<li>Pointer
-: <a class="el" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">rapidjson</a>
</li>
<li>PointerParseErrorCode
: <a class="el" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gade540ee4cc2a416c23b8ee2c12393c7b">rapidjson</a>
</li>
<li>PutN()
-: <a class="el" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a">rapidjson</a>
</li>
<li>PutReserve()
: <a class="el" href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">rapidjson</a>
@@ -273,14 +273,14 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');});
<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
<li>Reader
-: <a class="el" href="namespacerapidjson.html#a4eaef42a208413d1f2c8d4655ecec52d">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#ad5310edd1226f5b3ea82dc0d4d3740c6">rapidjson</a>
</li>
</ul>
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
<li>SchemaDocument
-: <a class="el" href="namespacerapidjson.html#a1039ee639733008423fd0dfb67122e54">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#a52bbb5d64d1319495089e1713a0653cf">rapidjson</a>
</li>
<li>SizeType
: <a class="el" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">rapidjson</a>
@@ -289,13 +289,13 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');});
: <a class="el" href="namespacerapidjson.html#a3caa6f393c9940e6525d5f1c21ed9ea2">rapidjson</a>
</li>
<li>StringBuffer
-: <a class="el" href="namespacerapidjson.html#a51a6c35028b76e354bbb9e25d7125641">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21">rapidjson</a>
</li>
<li>StringRef()
: <a class="el" href="namespacerapidjson.html#aa6b9fd9f6aa49405a574c362ba9af6b5">rapidjson</a>
</li>
<li>StringStream
-: <a class="el" href="namespacerapidjson.html#ada4cef9931d4a3a0017ee776c907807b">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#a021f77051e9f85188fc2f71ff5a15ebc">rapidjson</a>
</li>
</ul>
@@ -316,7 +316,7 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');});
<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
<li>Value
-: <a class="el" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">rapidjson</a>
</li>
</ul>
</div><!-- contents -->
diff --git a/namespacemembers_func.html b/namespacemembers_func.html
index 0dea18bd..688315d7 100644
--- a/namespacemembers_func.html
+++ b/namespacemembers_func.html
@@ -89,7 +89,7 @@ $(document).ready(function(){initNavTree('namespacemembers_func.html','');});
: <a class="el" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gabdaf1a7a4db30fb0e3d927fdf0fabe79">rapidjson</a>
</li>
<li>PutN()
-: <a class="el" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a">rapidjson</a>
</li>
<li>PutReserve()
: <a class="el" href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">rapidjson</a>
diff --git a/namespacemembers_type.html b/namespacemembers_type.html
index 8ad33f57..b098b517 100644
--- a/namespacemembers_type.html
+++ b/namespacemembers_type.html
@@ -86,37 +86,37 @@ $(document).ready(function(){initNavTree('namespacemembers_type.html','');});
<div class="contents">
&#160;<ul>
<li>Document
-: <a class="el" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">rapidjson</a>
</li>
<li>GetParseErrorFunc
: <a class="el" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga4e77e464ec8abe1111ee581fc2cb00de">rapidjson</a>
</li>
<li>InsituStringStream
-: <a class="el" href="namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#a64e957c8d9d7cd15b193ffc31410038e">rapidjson</a>
</li>
<li>IRemoteSchemaDocumentProvider
-: <a class="el" href="namespacerapidjson.html#a735a06a6e822111798e302c2f3af3de9">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#af91eb8eea47b79d75b23e29fa9c0abb5">rapidjson</a>
</li>
<li>Pointer
-: <a class="el" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">rapidjson</a>
</li>
<li>Reader
-: <a class="el" href="namespacerapidjson.html#a4eaef42a208413d1f2c8d4655ecec52d">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#ad5310edd1226f5b3ea82dc0d4d3740c6">rapidjson</a>
</li>
<li>SchemaDocument
-: <a class="el" href="namespacerapidjson.html#a1039ee639733008423fd0dfb67122e54">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#a52bbb5d64d1319495089e1713a0653cf">rapidjson</a>
</li>
<li>SizeType
: <a class="el" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">rapidjson</a>
</li>
<li>StringBuffer
-: <a class="el" href="namespacerapidjson.html#a51a6c35028b76e354bbb9e25d7125641">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21">rapidjson</a>
</li>
<li>StringStream
-: <a class="el" href="namespacerapidjson.html#ada4cef9931d4a3a0017ee776c907807b">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#a021f77051e9f85188fc2f71ff5a15ebc">rapidjson</a>
</li>
<li>Value
-: <a class="el" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">rapidjson</a>
</li>
</ul>
</div><!-- contents -->
diff --git a/namespacerapidjson.html b/namespacerapidjson.html
index 7e00fff5..9c40041a 100644
--- a/namespacerapidjson.html
+++ b/namespacerapidjson.html
@@ -240,61 +240,66 @@ Typedefs</h2></td></tr>
<tr class="memitem:a44eb33eaa523e36d466b1ced64b85c84"><td class="memItemLeft" align="right" valign="top">typedef unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a></td></tr>
<tr class="memdesc:a44eb33eaa523e36d466b1ced64b85c84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size type (for string lengths, array sizes, etc.) <a href="#a44eb33eaa523e36d466b1ced64b85c84">More...</a><br /></td></tr>
<tr class="separator:a44eb33eaa523e36d466b1ced64b85c84"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ada4cef9931d4a3a0017ee776c907807b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada4cef9931d4a3a0017ee776c907807b"></a>
-typedef <a class="el" href="structrapidjson_1_1_generic_string_stream.html">GenericStringStream</a><br class="typebreak" />
-&lt; <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#ada4cef9931d4a3a0017ee776c907807b">StringStream</a></td></tr>
-<tr class="memdesc:ada4cef9931d4a3a0017ee776c907807b"><td class="mdescLeft">&#160;</td><td class="mdescRight">String stream with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
-<tr class="separator:ada4cef9931d4a3a0017ee776c907807b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5660e8e601d2719796bc86c3168a1787"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5660e8e601d2719796bc86c3168a1787"></a>
-typedef <br class="typebreak" />
-<a class="el" href="structrapidjson_1_1_generic_insitu_string_stream.html">GenericInsituStringStream</a><br class="typebreak" />
-&lt; <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787">InsituStringStream</a></td></tr>
-<tr class="memdesc:a5660e8e601d2719796bc86c3168a1787"><td class="mdescLeft">&#160;</td><td class="mdescRight">Insitu string stream with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
-<tr class="separator:a5660e8e601d2719796bc86c3168a1787"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:afb3fa116c66d834b6f4289d648cc8d6d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afb3fa116c66d834b6f4289d648cc8d6d"></a>
-typedef <a class="el" href="classrapidjson_1_1_generic_value.html">GenericValue</a>&lt; <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a></td></tr>
-<tr class="memdesc:afb3fa116c66d834b6f4289d648cc8d6d"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_generic_value.html" title="Represents a JSON value. Use Value for UTF8 encoding and default allocator. ">GenericValue</a> with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
-<tr class="separator:afb3fa116c66d834b6f4289d648cc8d6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a660c934c2959121babf799b6cb206659"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a660c934c2959121babf799b6cb206659"></a>
-typedef <a class="el" href="classrapidjson_1_1_generic_document.html">GenericDocument</a>&lt; <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a></td></tr>
-<tr class="memdesc:a660c934c2959121babf799b6cb206659"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_generic_document.html" title="A document for parsing JSON text as DOM. ">GenericDocument</a> with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
-<tr class="separator:a660c934c2959121babf799b6cb206659"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa65fc9fb381b2cbc54f98673eadd6505"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa65fc9fb381b2cbc54f98673eadd6505"></a>
+typedef <a class="el" href="classrapidjson_1_1_generic_value.html">GenericValue</a>&lt; <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a></td></tr>
+<tr class="memdesc:aa65fc9fb381b2cbc54f98673eadd6505"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_generic_value.html" title="Represents a JSON value. Use Value for UTF8 encoding and default allocator. ">GenericValue</a> with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
+<tr class="separator:aa65fc9fb381b2cbc54f98673eadd6505"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace11b5b575baf1cccd5ba5f8586dcdc8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ace11b5b575baf1cccd5ba5f8586dcdc8"></a>
+typedef <a class="el" href="classrapidjson_1_1_generic_document.html">GenericDocument</a>&lt; <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a></td></tr>
+<tr class="memdesc:ace11b5b575baf1cccd5ba5f8586dcdc8"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_generic_document.html" title="A document for parsing JSON text as DOM. ">GenericDocument</a> with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
+<tr class="separator:ace11b5b575baf1cccd5ba5f8586dcdc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4e77e464ec8abe1111ee581fc2cb00de"><td class="memItemLeft" align="right" valign="top">typedef const <br class="typebreak" />
<a class="el" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga7e4636fd48d0148f102b8a13f0539d8c">RAPIDJSON_ERROR_CHARTYPE</a> *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga4e77e464ec8abe1111ee581fc2cb00de">GetParseErrorFunc</a> )(<a class="el" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga7d3acf640886b1f2552dc8c4cd6dea60">ParseErrorCode</a>)</td></tr>
<tr class="memdesc:ga4e77e464ec8abe1111ee581fc2cb00de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function pointer type of GetParseError(). <a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga4e77e464ec8abe1111ee581fc2cb00de">More...</a><br /></td></tr>
<tr class="separator:ga4e77e464ec8abe1111ee581fc2cb00de"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a021f77051e9f85188fc2f71ff5a15ebc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a021f77051e9f85188fc2f71ff5a15ebc"></a>
+typedef <a class="el" href="structrapidjson_1_1_generic_string_stream.html">GenericStringStream</a><br class="typebreak" />
+&lt; <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt; char &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a021f77051e9f85188fc2f71ff5a15ebc">StringStream</a></td></tr>
+<tr class="memdesc:a021f77051e9f85188fc2f71ff5a15ebc"><td class="mdescLeft">&#160;</td><td class="mdescRight">String stream with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
+<tr class="separator:a021f77051e9f85188fc2f71ff5a15ebc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64e957c8d9d7cd15b193ffc31410038e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a64e957c8d9d7cd15b193ffc31410038e"></a>
+typedef <br class="typebreak" />
+<a class="el" href="structrapidjson_1_1_generic_insitu_string_stream.html">GenericInsituStringStream</a><br class="typebreak" />
+&lt; <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt; char &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a64e957c8d9d7cd15b193ffc31410038e">InsituStringStream</a></td></tr>
+<tr class="memdesc:a64e957c8d9d7cd15b193ffc31410038e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Insitu string stream with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
+<tr class="separator:a64e957c8d9d7cd15b193ffc31410038e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac0765ea91f41539645c4b78689d03f21"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac0765ea91f41539645c4b78689d03f21"></a>
+typedef <a class="el" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a><br class="typebreak" />
+&lt; <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt; char &gt;, <a class="el" href="classrapidjson_1_1_crt_allocator.html">CrtAllocator</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21">StringBuffer</a></td></tr>
+<tr class="memdesc:ac0765ea91f41539645c4b78689d03f21"><td class="mdescLeft">&#160;</td><td class="mdescRight">String buffer with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
+<tr class="separator:ac0765ea91f41539645c4b78689d03f21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb643b9055e7988f4cb89ce4f7e6b115"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb643b9055e7988f4cb89ce4f7e6b115"></a>
-typedef <a class="el" href="structrapidjson_1_1_generic_memory_buffer.html">GenericMemoryBuffer</a>&#160;</td><td class="memItemRight" valign="bottom"><b>MemoryBuffer</b></td></tr>
+typedef <a class="el" href="structrapidjson_1_1_generic_memory_buffer.html">GenericMemoryBuffer</a><br class="typebreak" />
+&lt; <a class="el" href="classrapidjson_1_1_crt_allocator.html">CrtAllocator</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>MemoryBuffer</b></td></tr>
<tr class="separator:acb643b9055e7988f4cb89ce4f7e6b115"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9c225e4848c5facd20e43084ba2a51a3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9c225e4848c5facd20e43084ba2a51a3"></a>
-typedef <a class="el" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a>&lt; <a class="el" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">Pointer</a></td></tr>
-<tr class="memdesc:a9c225e4848c5facd20e43084ba2a51a3"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_generic_pointer.html" title="Represents a JSON Pointer. Use Pointer for UTF8 encoding and default allocator. ">GenericPointer</a> for Value (UTF-8, default allocator). <br /></td></tr>
-<tr class="separator:a9c225e4848c5facd20e43084ba2a51a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4eaef42a208413d1f2c8d4655ecec52d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4eaef42a208413d1f2c8d4655ecec52d"></a>
+<tr class="memitem:ad5310edd1226f5b3ea82dc0d4d3740c6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad5310edd1226f5b3ea82dc0d4d3740c6"></a>
typedef <a class="el" href="classrapidjson_1_1_generic_reader.html">GenericReader</a>&lt; <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a><br class="typebreak" />
-&lt;&gt;, <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a4eaef42a208413d1f2c8d4655ecec52d">Reader</a></td></tr>
-<tr class="memdesc:a4eaef42a208413d1f2c8d4655ecec52d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reader with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding and default allocator. <br /></td></tr>
-<tr class="separator:a4eaef42a208413d1f2c8d4655ecec52d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1039ee639733008423fd0dfb67122e54"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1039ee639733008423fd0dfb67122e54"></a>
+&lt; char &gt;, <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt; char &gt;<br class="typebreak" />
+, <a class="el" href="classrapidjson_1_1_crt_allocator.html">CrtAllocator</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#ad5310edd1226f5b3ea82dc0d4d3740c6">Reader</a></td></tr>
+<tr class="memdesc:ad5310edd1226f5b3ea82dc0d4d3740c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reader with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding and default allocator. <br /></td></tr>
+<tr class="separator:ad5310edd1226f5b3ea82dc0d4d3740c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a080910f74d2f5046e6724280159cf374"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a080910f74d2f5046e6724280159cf374"></a>
+typedef <a class="el" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a>&lt; <a class="el" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>, <br class="typebreak" />
+<a class="el" href="classrapidjson_1_1_crt_allocator.html">CrtAllocator</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">Pointer</a></td></tr>
+<tr class="memdesc:a080910f74d2f5046e6724280159cf374"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_generic_pointer.html" title="Represents a JSON Pointer. Use Pointer for UTF8 encoding and default allocator. ">GenericPointer</a> for Value (UTF-8, default allocator). <br /></td></tr>
+<tr class="separator:a080910f74d2f5046e6724280159cf374"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a52bbb5d64d1319495089e1713a0653cf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a52bbb5d64d1319495089e1713a0653cf"></a>
typedef <a class="el" href="classrapidjson_1_1_generic_schema_document.html">GenericSchemaDocument</a><br class="typebreak" />
-&lt; <a class="el" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a1039ee639733008423fd0dfb67122e54">SchemaDocument</a></td></tr>
-<tr class="memdesc:a1039ee639733008423fd0dfb67122e54"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_generic_schema_document.html" title="JSON schema document. ">GenericSchemaDocument</a> using Value type. <br /></td></tr>
-<tr class="separator:a1039ee639733008423fd0dfb67122e54"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a735a06a6e822111798e302c2f3af3de9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a735a06a6e822111798e302c2f3af3de9"></a>
+&lt; <a class="el" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>, <a class="el" href="classrapidjson_1_1_crt_allocator.html">CrtAllocator</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a52bbb5d64d1319495089e1713a0653cf">SchemaDocument</a></td></tr>
+<tr class="memdesc:a52bbb5d64d1319495089e1713a0653cf"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_generic_schema_document.html" title="JSON schema document. ">GenericSchemaDocument</a> using Value type. <br /></td></tr>
+<tr class="separator:a52bbb5d64d1319495089e1713a0653cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af91eb8eea47b79d75b23e29fa9c0abb5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af91eb8eea47b79d75b23e29fa9c0abb5"></a>
typedef <br class="typebreak" />
<a class="el" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IGenericRemoteSchemaDocumentProvider</a><br class="typebreak" />
-&lt; <a class="el" href="namespacerapidjson.html#a1039ee639733008423fd0dfb67122e54">SchemaDocument</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a735a06a6e822111798e302c2f3af3de9">IRemoteSchemaDocumentProvider</a></td></tr>
-<tr class="memdesc:a735a06a6e822111798e302c2f3af3de9"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IGenericRemoteSchemaDocumentProvider</a> using SchemaDocument. <br /></td></tr>
-<tr class="separator:a735a06a6e822111798e302c2f3af3de9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab53b9a536b2918c669052834239de91f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab53b9a536b2918c669052834239de91f"></a>
+&lt; <a class="el" href="namespacerapidjson.html#a52bbb5d64d1319495089e1713a0653cf">SchemaDocument</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#af91eb8eea47b79d75b23e29fa9c0abb5">IRemoteSchemaDocumentProvider</a></td></tr>
+<tr class="memdesc:af91eb8eea47b79d75b23e29fa9c0abb5"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IGenericRemoteSchemaDocumentProvider</a> using SchemaDocument. <br /></td></tr>
+<tr class="separator:af91eb8eea47b79d75b23e29fa9c0abb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a38dbb50c156f67adc0a70548d5572ccf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a38dbb50c156f67adc0a70548d5572ccf"></a>
typedef <a class="el" href="classrapidjson_1_1_generic_schema_validator.html">GenericSchemaValidator</a><br class="typebreak" />
-&lt; <a class="el" href="namespacerapidjson.html#a1039ee639733008423fd0dfb67122e54">SchemaDocument</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>SchemaValidator</b></td></tr>
-<tr class="separator:ab53b9a536b2918c669052834239de91f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a51a6c35028b76e354bbb9e25d7125641"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a51a6c35028b76e354bbb9e25d7125641"></a>
-typedef <a class="el" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a><br class="typebreak" />
-&lt; <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a51a6c35028b76e354bbb9e25d7125641">StringBuffer</a></td></tr>
-<tr class="memdesc:a51a6c35028b76e354bbb9e25d7125641"><td class="mdescLeft">&#160;</td><td class="mdescRight">String buffer with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
-<tr class="separator:a51a6c35028b76e354bbb9e25d7125641"><td class="memSeparator" colspan="2">&#160;</td></tr>
+&lt; <a class="el" href="namespacerapidjson.html#a52bbb5d64d1319495089e1713a0653cf">SchemaDocument</a>, <br class="typebreak" />
+<a class="el" href="structrapidjson_1_1_base_reader_handler.html">BaseReaderHandler</a>&lt; <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt; char &gt;<br class="typebreak" />
+, void &gt;, <a class="el" href="classrapidjson_1_1_crt_allocator.html">CrtAllocator</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>SchemaValidator</b></td></tr>
+<tr class="separator:a38dbb50c156f67adc0a70548d5572ccf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
@@ -377,21 +382,6 @@ Enumerations</h2></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:a820f77efccfbb749bd15fe4822d2c740"><td class="memTemplParams" colspan="2"><a class="anchor" id="a820f77efccfbb749bd15fe4822d2c740"></a>
-template&lt;typename Stream &gt; </td></tr>
-<tr class="memitem:a820f77efccfbb749bd15fe4822d2c740"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">PutReserve</a> (<a class="el" href="classrapidjson_1_1_stream.html">Stream</a> &amp;stream, size_t count)</td></tr>
-<tr class="memdesc:a820f77efccfbb749bd15fe4822d2c740"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reserve n characters for writing to a stream. <br /></td></tr>
-<tr class="separator:a820f77efccfbb749bd15fe4822d2c740"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0a774dcffe8ae07686f459ae017d2f20"><td class="memTemplParams" colspan="2"><a class="anchor" id="a0a774dcffe8ae07686f459ae017d2f20"></a>
-template&lt;typename Stream &gt; </td></tr>
-<tr class="memitem:a0a774dcffe8ae07686f459ae017d2f20"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a> (<a class="el" href="classrapidjson_1_1_stream.html">Stream</a> &amp;stream, typename Stream::Ch c)</td></tr>
-<tr class="memdesc:a0a774dcffe8ae07686f459ae017d2f20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write character to a stream, presuming buffer is reserved. <br /></td></tr>
-<tr class="separator:a0a774dcffe8ae07686f459ae017d2f20"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1d49d2cab617858b53a1db23b1759f43"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1d49d2cab617858b53a1db23b1759f43"></a>
-template&lt;typename Stream , typename Ch &gt; </td></tr>
-<tr class="memitem:a1d49d2cab617858b53a1db23b1759f43"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">PutN</a> (<a class="el" href="classrapidjson_1_1_stream.html">Stream</a> &amp;stream, Ch c, size_t n)</td></tr>
-<tr class="memdesc:a1d49d2cab617858b53a1db23b1759f43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Put N copies of a character to a stream. <br /></td></tr>
-<tr class="separator:a1d49d2cab617858b53a1db23b1759f43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6b9fd9f6aa49405a574c362ba9af6b5"><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
<tr class="memitem:aa6b9fd9f6aa49405a574c362ba9af6b5"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structrapidjson_1_1_generic_string_ref.html">GenericStringRef</a>&lt; CharType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#aa6b9fd9f6aa49405a574c362ba9af6b5">StringRef</a> (const CharType *str)</td></tr>
<tr class="memdesc:aa6b9fd9f6aa49405a574c362ba9af6b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mark a character pointer as constant string. <a href="#aa6b9fd9f6aa49405a574c362ba9af6b5">More...</a><br /></td></tr>
@@ -404,18 +394,23 @@ template&lt;typename Stream , typename Ch &gt; </td></tr>
<tr class="memitem:af94951529a5d51e8c4e6e770bb707c1f"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structrapidjson_1_1_generic_string_ref.html">GenericStringRef</a>&lt; CharType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#af94951529a5d51e8c4e6e770bb707c1f">StringRef</a> (const std::basic_string&lt; CharType &gt; &amp;str)</td></tr>
<tr class="memdesc:af94951529a5d51e8c4e6e770bb707c1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mark a string object as constant string. <a href="#af94951529a5d51e8c4e6e770bb707c1f">More...</a><br /></td></tr>
<tr class="separator:af94951529a5d51e8c4e6e770bb707c1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0a774dcffe8ae07686f459ae017d2f20"><td class="memTemplParams" colspan="2"><a class="anchor" id="a0a774dcffe8ae07686f459ae017d2f20"></a>
+template&lt;typename Stream &gt; </td></tr>
+<tr class="memitem:a0a774dcffe8ae07686f459ae017d2f20"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a> (<a class="el" href="classrapidjson_1_1_stream.html">Stream</a> &amp;stream, typename Stream::Ch c)</td></tr>
+<tr class="memdesc:a0a774dcffe8ae07686f459ae017d2f20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write character to a stream, presuming buffer is reserved. <br /></td></tr>
+<tr class="separator:a0a774dcffe8ae07686f459ae017d2f20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabdaf1a7a4db30fb0e3d927fdf0fabe79"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga7e4636fd48d0148f102b8a13f0539d8c">RAPIDJSON_ERROR_CHARTYPE</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gabdaf1a7a4db30fb0e3d927fdf0fabe79">GetParseError_En</a> (<a class="el" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga7d3acf640886b1f2552dc8c4cd6dea60">ParseErrorCode</a> parseErrorCode)</td></tr>
<tr class="memdesc:gabdaf1a7a4db30fb0e3d927fdf0fabe79"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maps error code of parsing into error message. <a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gabdaf1a7a4db30fb0e3d927fdf0fabe79">More...</a><br /></td></tr>
<tr class="separator:gabdaf1a7a4db30fb0e3d927fdf0fabe79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ac13bac5976fc06587e00fc0bcfb32a"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1ac13bac5976fc06587e00fc0bcfb32a"></a>
template&lt;&gt; </td></tr>
<tr class="memitem:a1ac13bac5976fc06587e00fc0bcfb32a"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a">PutN</a> (<a class="el" href="classrapidjson_1_1_file_write_stream.html">FileWriteStream</a> &amp;stream, char c, size_t n)</td></tr>
-<tr class="memdesc:a1ac13bac5976fc06587e00fc0bcfb32a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implement specialized version of <a class="el" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43" title="Put N copies of a character to a stream. ">PutN()</a> with memset() for better performance. <br /></td></tr>
+<tr class="memdesc:a1ac13bac5976fc06587e00fc0bcfb32a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implement specialized version of <a class="el" href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a" title="Implement specialized version of PutN() with memset() for better performance. ">PutN()</a> with memset() for better performance. <br /></td></tr>
<tr class="separator:a1ac13bac5976fc06587e00fc0bcfb32a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba27b0c8dcf724aa2b288a24fda0811b"><td class="memTemplParams" colspan="2"><a class="anchor" id="aba27b0c8dcf724aa2b288a24fda0811b"></a>
template&lt;&gt; </td></tr>
<tr class="memitem:aba27b0c8dcf724aa2b288a24fda0811b"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#aba27b0c8dcf724aa2b288a24fda0811b">PutN</a> (<a class="el" href="structrapidjson_1_1_generic_memory_buffer.html">MemoryBuffer</a> &amp;memoryBuffer, char c, size_t n)</td></tr>
-<tr class="memdesc:aba27b0c8dcf724aa2b288a24fda0811b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implement specialized version of <a class="el" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43" title="Put N copies of a character to a stream. ">PutN()</a> with memset() for better performance. <br /></td></tr>
+<tr class="memdesc:aba27b0c8dcf724aa2b288a24fda0811b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implement specialized version of <a class="el" href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a" title="Implement specialized version of PutN() with memset() for better performance. ">PutN()</a> with memset() for better performance. <br /></td></tr>
<tr class="separator:aba27b0c8dcf724aa2b288a24fda0811b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6efb0f4d2a6f81477a59718d42e9464a"><td class="memTemplParams" colspan="2">template&lt;typename InputStream &gt; </td></tr>
<tr class="memitem:a6efb0f4d2a6f81477a59718d42e9464a"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a6efb0f4d2a6f81477a59718d42e9464a">SkipWhitespace</a> (InputStream &amp;is)</td></tr>
@@ -423,14 +418,24 @@ template&lt;&gt; </td></tr>
<tr class="separator:a6efb0f4d2a6f81477a59718d42e9464a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3caa6f393c9940e6525d5f1c21ed9ea2"><td class="memTemplParams" colspan="2"><a class="anchor" id="a3caa6f393c9940e6525d5f1c21ed9ea2"></a>
template&lt;&gt; </td></tr>
-<tr class="memitem:a3caa6f393c9940e6525d5f1c21ed9ea2"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a3caa6f393c9940e6525d5f1c21ed9ea2">SkipWhitespace</a> (<a class="el" href="namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787">InsituStringStream</a> &amp;is)</td></tr>
+<tr class="memitem:a3caa6f393c9940e6525d5f1c21ed9ea2"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a3caa6f393c9940e6525d5f1c21ed9ea2">SkipWhitespace</a> (<a class="el" href="namespacerapidjson.html#a64e957c8d9d7cd15b193ffc31410038e">InsituStringStream</a> &amp;is)</td></tr>
<tr class="memdesc:a3caa6f393c9940e6525d5f1c21ed9ea2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Template function specialization for InsituStringStream. <br /></td></tr>
<tr class="separator:a3caa6f393c9940e6525d5f1c21ed9ea2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a791735c27e073a70d720c2775ddf9568"><td class="memTemplParams" colspan="2"><a class="anchor" id="a791735c27e073a70d720c2775ddf9568"></a>
template&lt;&gt; </td></tr>
-<tr class="memitem:a791735c27e073a70d720c2775ddf9568"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a791735c27e073a70d720c2775ddf9568">SkipWhitespace</a> (<a class="el" href="namespacerapidjson.html#ada4cef9931d4a3a0017ee776c907807b">StringStream</a> &amp;is)</td></tr>
+<tr class="memitem:a791735c27e073a70d720c2775ddf9568"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a791735c27e073a70d720c2775ddf9568">SkipWhitespace</a> (<a class="el" href="namespacerapidjson.html#a021f77051e9f85188fc2f71ff5a15ebc">StringStream</a> &amp;is)</td></tr>
<tr class="memdesc:a791735c27e073a70d720c2775ddf9568"><td class="mdescLeft">&#160;</td><td class="mdescRight">Template function specialization for StringStream. <br /></td></tr>
<tr class="separator:a791735c27e073a70d720c2775ddf9568"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a820f77efccfbb749bd15fe4822d2c740"><td class="memTemplParams" colspan="2"><a class="anchor" id="a820f77efccfbb749bd15fe4822d2c740"></a>
+template&lt;typename Stream &gt; </td></tr>
+<tr class="memitem:a820f77efccfbb749bd15fe4822d2c740"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">PutReserve</a> (<a class="el" href="classrapidjson_1_1_stream.html">Stream</a> &amp;stream, size_t count)</td></tr>
+<tr class="memdesc:a820f77efccfbb749bd15fe4822d2c740"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reserve n characters for writing to a stream. <br /></td></tr>
+<tr class="separator:a820f77efccfbb749bd15fe4822d2c740"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d49d2cab617858b53a1db23b1759f43"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1d49d2cab617858b53a1db23b1759f43"></a>
+template&lt;typename Stream , typename Ch &gt; </td></tr>
+<tr class="memitem:a1d49d2cab617858b53a1db23b1759f43"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">PutN</a> (<a class="el" href="classrapidjson_1_1_stream.html">Stream</a> &amp;stream, Ch c, size_t n)</td></tr>
+<tr class="memdesc:a1d49d2cab617858b53a1db23b1759f43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Put N copies of a character to a stream. <br /></td></tr>
+<tr class="separator:a1d49d2cab617858b53a1db23b1759f43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab38d4a353d3577fdedd8171316af80b3"><td class="memTemplParams" colspan="2"><a class="anchor" id="ab38d4a353d3577fdedd8171316af80b3"></a>
template&lt;typename Encoding , typename Allocator &gt; </td></tr>
<tr class="memitem:ab38d4a353d3577fdedd8171316af80b3"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>PutReserve</b> (<a class="el" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>&lt; <a class="el" href="classrapidjson_1_1_encoding.html">Encoding</a>, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> &gt; &amp;stream, size_t count)</td></tr>
@@ -442,7 +447,7 @@ template&lt;typename Encoding , typename Allocator &gt; </td></tr>
<tr class="memitem:a9d43be9c033dc49738b713fe6fbafecf"><td class="memTemplParams" colspan="2"><a class="anchor" id="a9d43be9c033dc49738b713fe6fbafecf"></a>
template&lt;&gt; </td></tr>
<tr class="memitem:a9d43be9c033dc49738b713fe6fbafecf"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a9d43be9c033dc49738b713fe6fbafecf">PutN</a> (<a class="el" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>&lt; <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt;&gt; &gt; &amp;stream, char c, size_t n)</td></tr>
-<tr class="memdesc:a9d43be9c033dc49738b713fe6fbafecf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implement specialized version of <a class="el" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43" title="Put N copies of a character to a stream. ">PutN()</a> with memset() for better performance. <br /></td></tr>
+<tr class="memdesc:a9d43be9c033dc49738b713fe6fbafecf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implement specialized version of <a class="el" href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a" title="Implement specialized version of PutN() with memset() for better performance. ">PutN()</a> with memset() for better performance. <br /></td></tr>
<tr class="separator:a9d43be9c033dc49738b713fe6fbafecf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Helper functions for GenericPointer</div></td></tr>
<tr class="memitem:a6cc308180c1a10dc918da0192aed8fb7"><td class="memTemplParams" colspan="2"><a class="anchor" id="a6cc308180c1a10dc918da0192aed8fb7"></a>
diff --git a/navtree.js b/navtree.js
index eab871a7..957e4c8a 100644
--- a/navtree.js
+++ b/navtree.js
@@ -151,8 +151,8 @@ var NAVTREEINDEX =
[
"allocators_8h_source.html",
"classrapidjson_1_1_generic_string_buffer.html#a315f6f4528438a19d5a93eac3e2c99f0",
-"document_8h.html#af94951529a5d51e8c4e6e770bb707c1f",
-"md_doc_tutorial.html#ValueDocument"
+"document_8h.html#ace11b5b575baf1cccd5ba5f8586dcdc8",
+"md_doc_tutorial.html#TemporaryValues"
];
var SYNCONMSG = 'click to disable panel synchronisation';
diff --git a/navtreeindex0.js b/navtreeindex0.js
index c8560900..4f2de7a9 100644
--- a/navtreeindex0.js
+++ b/navtreeindex0.js
@@ -203,16 +203,16 @@ var NAVTREEINDEX0 =
"classrapidjson_1_1_generic_reader.html#ab907a36c410e96154c99797a6a0ce16d":[13,0,0,18,2],
"classrapidjson_1_1_generic_reader.html#ac9c540b77de19661f6f45e04b9b0937b":[13,0,0,18,5],
"classrapidjson_1_1_generic_schema_document.html":[13,0,0,19],
-"classrapidjson_1_1_generic_schema_document.html#a06a3a9f30a63d9da12472fbea7c2c8b1":[13,0,0,19,3],
-"classrapidjson_1_1_generic_schema_document.html#a09c94a10d412ee188de575b82292a90e":[13,0,0,19,7],
-"classrapidjson_1_1_generic_schema_document.html#a12958fba0cd706113a2825847756ff51":[13,0,0,19,1],
-"classrapidjson_1_1_generic_schema_document.html#a16de40d860a7c8ec1299ad644df43c9f":[13,0,0,19,0],
-"classrapidjson_1_1_generic_schema_document.html#a666d94105aa39c446327105339378320":[13,0,0,19,9],
-"classrapidjson_1_1_generic_schema_document.html#a7afaa64e663a4119cadd4af488372c68":[13,0,0,19,4],
-"classrapidjson_1_1_generic_schema_document.html#a8fa1491b1225a19fbe614bb2d6825222":[13,0,0,19,6],
-"classrapidjson_1_1_generic_schema_document.html#aafeabeff1ef66d27738b8ddfad7af9b2":[13,0,0,19,2],
-"classrapidjson_1_1_generic_schema_document.html#ad05d77ee8910b43513acf48fadf99c28":[13,0,0,19,8],
-"classrapidjson_1_1_generic_schema_document.html#af9a7be9da5b3f884b83ec39e991ee5bc":[13,0,0,19,5],
+"classrapidjson_1_1_generic_schema_document.html#a019035fd281ca52874ed434ce4f7d4d8":[13,0,0,19,2],
+"classrapidjson_1_1_generic_schema_document.html#a61540c0f8aa542760ae03257a0e6dab7":[13,0,0,19,4],
+"classrapidjson_1_1_generic_schema_document.html#a6fc497ef6e303b3a3ecec9fefe82eade":[13,0,0,19,0],
+"classrapidjson_1_1_generic_schema_document.html#a87eb1db271e7f57442802a5f4f6178f3":[13,0,0,19,6],
+"classrapidjson_1_1_generic_schema_document.html#aaf4e7f371de938025f7ed4be3b83266e":[13,0,0,19,5],
+"classrapidjson_1_1_generic_schema_document.html#ab2764f2258889b3262eff6293d7ca015":[13,0,0,19,3],
+"classrapidjson_1_1_generic_schema_document.html#ad200cc7bcb193c8568cdbda7b7fd0496":[13,0,0,19,7],
+"classrapidjson_1_1_generic_schema_document.html#adf6f3372013227873ed392dee1e752bf":[13,0,0,19,8],
+"classrapidjson_1_1_generic_schema_document.html#af64ea17654ab0f1a91e382d422f91daf":[13,0,0,19,9],
+"classrapidjson_1_1_generic_schema_document.html#af9b82162834b30bdcbe93cb065d0aedd":[13,0,0,19,1],
"classrapidjson_1_1_generic_schema_document.html#afcc03e6ba8f1a819e1a028c31ad38347":[13,0,0,19,10],
"classrapidjson_1_1_generic_schema_validator.html":[13,0,0,20],
"classrapidjson_1_1_generic_schema_validator.html#a0619c9faf3014ef141d1c6d05ae04ddc":[13,0,0,20,3],
diff --git a/navtreeindex1.js b/navtreeindex1.js
index 46be529c..f6391960 100644
--- a/navtreeindex1.js
+++ b/navtreeindex1.js
@@ -248,6 +248,6 @@ var NAVTREEINDEX1 =
"diyfp_8h_source.html":[14,0,0,0,1,1],
"document_8h.html":[14,0,0,0,3],
"document_8h.html#a578c51ab574a50a9c760b9da7c7562f2":[14,0,0,0,3,12],
-"document_8h.html#a660c934c2959121babf799b6cb206659":[14,0,0,0,3,9],
+"document_8h.html#aa65fc9fb381b2cbc54f98673eadd6505":[14,0,0,0,3,10],
"document_8h.html#aa6b9fd9f6aa49405a574c362ba9af6b5":[14,0,0,0,3,11]
};
diff --git a/navtreeindex2.js b/navtreeindex2.js
index da00abc4..7e512692 100644
--- a/navtreeindex2.js
+++ b/navtreeindex2.js
@@ -1,7 +1,7 @@
var NAVTREEINDEX2 =
{
+"document_8h.html#ace11b5b575baf1cccd5ba5f8586dcdc8":[14,0,0,0,3,9],
"document_8h.html#af94951529a5d51e8c4e6e770bb707c1f":[14,0,0,0,3,13],
-"document_8h.html#afb3fa116c66d834b6f4289d648cc8d6d":[14,0,0,0,3,10],
"document_8h_source.html":[14,0,0,0,3],
"dtoa_8h_source.html":[14,0,0,0,1,2],
"en_8h_source.html":[14,0,0,0,0,0],
@@ -76,39 +76,40 @@ var NAVTREEINDEX2 =
"functions_vars.html":[13,2,2],
"functions_w.html":[13,2,0,19],
"functions_~.html":[13,2,0,20],
+"fwd_8h_source.html":[14,0,0,0,8],
"globals.html":[14,1,0],
"globals_defs.html":[14,1,1],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html":[11,0],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga0ccf72f3ebc4b3306ab669f95ca5c64b":[11,0,12],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga0ccf72f3ebc4b3306ab669f95ca5c64b":[14,0,0,0,12,21],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga0ccf72f3ebc4b3306ab669f95ca5c64b":[14,0,0,0,13,16],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga250603aa9e2a12429b25ba0c8108ad4f":[11,0,9],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga250603aa9e2a12429b25ba0c8108ad4f":[14,0,0,0,12,19],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga250603aa9e2a12429b25ba0c8108ad4f":[14,0,0,0,13,14],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga2f2eef0ee4477f3fe5874703a66e997f":[11,0,3],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga2f2eef0ee4477f3fe5874703a66e997f":[14,0,0,0,12,11],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga583915242504c7fdb36e826f02f76242":[14,0,0,0,12,6],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga2f2eef0ee4477f3fe5874703a66e997f":[14,0,0,0,13,6],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga583915242504c7fdb36e826f02f76242":[14,0,0,0,13,1],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga583915242504c7fdb36e826f02f76242":[11,0,0],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga5dc14176a9e71ace282404b0bcda57a1":[11,0,4],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga5dc14176a9e71ace282404b0bcda57a1":[14,0,0,0,12,12],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga6a2b1695c13e77ae425e3cbac980ccb5":[14,0,0,0,12,24],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga5dc14176a9e71ace282404b0bcda57a1":[14,0,0,0,13,7],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga6a2b1695c13e77ae425e3cbac980ccb5":[14,0,0,0,13,19],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga6a2b1695c13e77ae425e3cbac980ccb5":[11,0,13],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga743a79d3af927391fe3eb5c979136899":[14,0,0,0,12,16],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga743a79d3af927391fe3eb5c979136899":[11,0,7],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga743a79d3af927391fe3eb5c979136899":[14,0,0,0,13,11],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga77005e892e6601599beaf421b0395c31":[11,0,10],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga77005e892e6601599beaf421b0395c31":[14,0,0,0,13,2],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga7f4e50c35dae3b015390daa6d48ce23c":[14,0,0,0,12,18],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga77005e892e6601599beaf421b0395c31":[14,0,0,0,14,2],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga7f4e50c35dae3b015390daa6d48ce23c":[14,0,0,0,13,13],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga7f4e50c35dae3b015390daa6d48ce23c":[11,0,8],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaba2445f582142cf918e74c2d22d1aa07":[11,0,2],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaba2445f582142cf918e74c2d22d1aa07":[14,0,0,0,12,10],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaba2445f582142cf918e74c2d22d1aa07":[14,0,0,0,13,5],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c":[11,0,1],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c":[14,0,0,0,12,7],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c":[14,0,0,0,13,2],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gad283cfde97d9a32b7d8e8107b11f70a6":[14,0,0,0,13,20],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gad283cfde97d9a32b7d8e8107b11f70a6":[11,0,14],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gad283cfde97d9a32b7d8e8107b11f70a6":[14,0,0,0,12,25],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaf1ff1685be6cbebb5d4b2ab997776f45":[14,0,0,0,12,14],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaf1ff1685be6cbebb5d4b2ab997776f45":[14,0,0,0,13,9],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaf1ff1685be6cbebb5d4b2ab997776f45":[11,0,5],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaf9125105c593a636a79f1c2d96835376":[11,0,6],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaf9125105c593a636a79f1c2d96835376":[14,0,0,0,12,15],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaf9125105c593a636a79f1c2d96835376":[14,0,0,0,13,10],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaf967d31be43666ce7f53756d73bd1cdf":[11,0,11],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaf967d31be43666ce7f53756d73bd1cdf":[14,0,0,0,12,20],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaf967d31be43666ce7f53756d73bd1cdf":[14,0,0,0,13,15],
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html":[11,1],
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#a056e5792c1554fbc05b5f1cc168d82ae":[11,1,0,5],
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#a0f03679d5fa2736d9e351541e767fac1":[11,1,0,0],
@@ -125,13 +126,13 @@ var NAVTREEINDEX2 =
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga7d3acf640886b1f2552dc8c4cd6dea60":[11,1,6],
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga7e4636fd48d0148f102b8a13f0539d8c":[14,0,0,0,0,1,0],
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga7e4636fd48d0148f102b8a13f0539d8c":[11,1,1],
-"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga7f8c4265b2edda78568ae3338aaf1461":[14,0,0,0,13,4],
+"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga7f8c4265b2edda78568ae3338aaf1461":[14,0,0,0,14,4],
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga7f8c4265b2edda78568ae3338aaf1461":[11,1,4],
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gabdaf1a7a4db30fb0e3d927fdf0fabe79":[11,1,8],
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gabe2e1bd1349e5a7d6c1af78c05a98f0d":[14,0,0,0,0,1,1],
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gabe2e1bd1349e5a7d6c1af78c05a98f0d":[11,1,2],
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gade540ee4cc2a416c23b8ee2c12393c7b":[11,1,7],
-"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gae3689840fa6e89a241313f33b602f865":[14,0,0,0,13,3],
+"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gae3689840fa6e89a241313f33b602f865":[14,0,0,0,14,3],
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gae3689840fa6e89a241313f33b602f865":[11,1,3],
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a06183076357ebd9eca228666f614c286":[11,1,6,1],
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a1a4ac97731f997e9591b40f98ecd9f93":[11,1,6,7],
@@ -248,6 +249,5 @@ var NAVTREEINDEX2 =
"md_doc_tutorial.html#QueryObject":[1,1,1],
"md_doc_tutorial.html#QueryString":[1,1,3],
"md_doc_tutorial.html#QueryValue":[1,1],
-"md_doc_tutorial.html#SwapValues":[1,2,6],
-"md_doc_tutorial.html#TemporaryValues":[1,2,1,0]
+"md_doc_tutorial.html#SwapValues":[1,2,6]
};
diff --git a/navtreeindex3.js b/navtreeindex3.js
index 93bf6fb4..e38e3279 100644
--- a/navtreeindex3.js
+++ b/navtreeindex3.js
@@ -1,9 +1,10 @@
var NAVTREEINDEX3 =
{
+"md_doc_tutorial.html#TemporaryValues":[1,2,1,0],
"md_doc_tutorial.html#ValueDocument":[1,0],
"md_doc_tutorial.html#WhatsNext":[1,3],
-"memorybuffer_8h_source.html":[14,0,0,0,8],
-"memorystream_8h_source.html":[14,0,0,0,9],
+"memorybuffer_8h_source.html":[14,0,0,0,9],
+"memorystream_8h_source.html":[14,0,0,0,10],
"meta_8h_source.html":[14,0,0,0,1,5],
"modules.html":[11],
"namespacemembers.html":[12,0],
@@ -13,59 +14,54 @@ var NAVTREEINDEX3 =
"namespacemembers_type.html":[12,2],
"namespacerapidjson.html":[13,0,0],
"pages.html":[],
-"pointer_8h_source.html":[14,0,0,0,10],
+"pointer_8h_source.html":[14,0,0,0,11],
"pow10_8h_source.html":[14,0,0,0,1,6],
-"prettywriter_8h_source.html":[14,0,0,0,11],
-"rapidjson_8h.html":[14,0,0,0,12],
-"rapidjson_8h.html#a0a774dcffe8ae07686f459ae017d2f20":[14,0,0,0,12,32],
-"rapidjson_8h.html#a1d49d2cab617858b53a1db23b1759f43":[14,0,0,0,12,30],
-"rapidjson_8h.html#a44eb33eaa523e36d466b1ced64b85c84":[14,0,0,0,12,27],
-"rapidjson_8h.html#a52c941c3fdd646527cdcd42aa846a28a":[14,0,0,0,12,9],
-"rapidjson_8h.html#a5660e8e601d2719796bc86c3168a1787":[14,0,0,0,12,26],
-"rapidjson_8h.html#a820f77efccfbb749bd15fe4822d2c740":[14,0,0,0,12,31],
-"rapidjson_8h.html#a93973847cb99354b6b5bb5605aa7fe52":[14,0,0,0,12,5],
-"rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f":[14,0,0,0,12,23],
-"rapidjson_8h.html#ab9e102fa2f1a0ae4914d4dac21f690a2":[14,0,0,0,12,17],
-"rapidjson_8h.html#ac7951ebf8a2624ab85d2dcd3ec7af974":[14,0,0,0,12,8],
-"rapidjson_8h.html#ada4cef9931d4a3a0017ee776c907807b":[14,0,0,0,12,28],
-"rapidjson_8h.html#addcc0c3607c5790f35cc4c15885ff97c":[14,0,0,0,12,13],
-"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4":[14,0,0,0,12,29],
-"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468":[14,0,0,0,12,29,4],
-"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e":[14,0,0,0,12,29,2],
-"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff":[14,0,0,0,12,29,0],
-"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607":[14,0,0,0,12,29,1],
-"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a":[14,0,0,0,12,29,6],
-"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9":[14,0,0,0,12,29,3],
-"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7":[14,0,0,0,12,29,5],
-"rapidjson_8h.html#af95188da1d8eb6d4b148fe9ce71cd7c4":[14,0,0,0,12,22],
-"rapidjson_8h_source.html":[14,0,0,0,12],
-"reader_8h.html":[14,0,0,0,13],
-"reader_8h.html#a3caa6f393c9940e6525d5f1c21ed9ea2":[14,0,0,0,13,8],
-"reader_8h.html#a4eaef42a208413d1f2c8d4655ecec52d":[14,0,0,0,13,5],
-"reader_8h.html#a6efb0f4d2a6f81477a59718d42e9464a":[14,0,0,0,13,7],
-"reader_8h.html#a791735c27e073a70d720c2775ddf9568":[14,0,0,0,13,9],
-"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9":[14,0,0,0,13,6],
-"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9a02748971d6ea0c5e22c69b8aa7f344ea":[14,0,0,0,13,6,1],
-"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9a3df81f75479da8e052393f92cbec394b":[14,0,0,0,13,6,2],
-"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9a5640cb00db7814b7f22be3683dda9835":[14,0,0,0,13,6,7],
-"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9a7923686c8bdb7614699f1fb1bb615bb2":[14,0,0,0,13,6,3],
-"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9ab5d719b36aac626135d5d622d0d837c1":[14,0,0,0,13,6,6],
-"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9adf80892cdfa076b2d1a7dd9530e15cb0":[14,0,0,0,13,6,5],
-"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9af2c7fa21e9e7656e467bd71079ac8fb0":[14,0,0,0,13,6,0],
-"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9af84c60868704433b80aa51a62e042bb1":[14,0,0,0,13,6,4],
-"reader_8h_source.html":[14,0,0,0,13],
+"prettywriter_8h_source.html":[14,0,0,0,12],
+"rapidjson_8h.html":[14,0,0,0,13],
+"rapidjson_8h.html#a44eb33eaa523e36d466b1ced64b85c84":[14,0,0,0,13,21],
+"rapidjson_8h.html#a52c941c3fdd646527cdcd42aa846a28a":[14,0,0,0,13,4],
+"rapidjson_8h.html#a93973847cb99354b6b5bb5605aa7fe52":[14,0,0,0,13,0],
+"rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f":[14,0,0,0,13,18],
+"rapidjson_8h.html#ab9e102fa2f1a0ae4914d4dac21f690a2":[14,0,0,0,13,12],
+"rapidjson_8h.html#ac7951ebf8a2624ab85d2dcd3ec7af974":[14,0,0,0,13,3],
+"rapidjson_8h.html#addcc0c3607c5790f35cc4c15885ff97c":[14,0,0,0,13,8],
+"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4":[14,0,0,0,13,22],
+"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468":[14,0,0,0,13,22,4],
+"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e":[14,0,0,0,13,22,2],
+"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff":[14,0,0,0,13,22,0],
+"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607":[14,0,0,0,13,22,1],
+"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a":[14,0,0,0,13,22,6],
+"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9":[14,0,0,0,13,22,3],
+"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7":[14,0,0,0,13,22,5],
+"rapidjson_8h.html#af95188da1d8eb6d4b148fe9ce71cd7c4":[14,0,0,0,13,17],
+"rapidjson_8h_source.html":[14,0,0,0,13],
+"reader_8h.html":[14,0,0,0,14],
+"reader_8h.html#a3caa6f393c9940e6525d5f1c21ed9ea2":[14,0,0,0,14,7],
+"reader_8h.html#a6efb0f4d2a6f81477a59718d42e9464a":[14,0,0,0,14,6],
+"reader_8h.html#a791735c27e073a70d720c2775ddf9568":[14,0,0,0,14,8],
+"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9":[14,0,0,0,14,5],
+"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9a02748971d6ea0c5e22c69b8aa7f344ea":[14,0,0,0,14,5,1],
+"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9a3df81f75479da8e052393f92cbec394b":[14,0,0,0,14,5,2],
+"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9a5640cb00db7814b7f22be3683dda9835":[14,0,0,0,14,5,7],
+"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9a7923686c8bdb7614699f1fb1bb615bb2":[14,0,0,0,14,5,3],
+"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9ab5d719b36aac626135d5d622d0d837c1":[14,0,0,0,14,5,6],
+"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9adf80892cdfa076b2d1a7dd9530e15cb0":[14,0,0,0,14,5,5],
+"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9af2c7fa21e9e7656e467bd71079ac8fb0":[14,0,0,0,14,5,0],
+"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9af84c60868704433b80aa51a62e042bb1":[14,0,0,0,14,5,4],
+"reader_8h_source.html":[14,0,0,0,14],
"regex_8h_source.html":[14,0,0,0,1,7],
-"schema_8h_source.html":[14,0,0,0,14],
+"schema_8h_source.html":[14,0,0,0,15],
"stack_8h_source.html":[14,0,0,0,1,8],
+"stream_8h_source.html":[14,0,0,0,16],
"strfunc_8h_source.html":[14,0,0,0,1,9],
-"stringbuffer_8h_source.html":[14,0,0,0,15],
+"stringbuffer_8h_source.html":[14,0,0,0,17],
"strtod_8h_source.html":[14,0,0,0,1,10],
"structrapidjson_1_1_a_s_c_i_i.html":[13,0,0,1],
"structrapidjson_1_1_a_s_c_i_i.html#a2c1e49f42921027d58f1125a627cc5e5":[13,0,0,1,0],
-"structrapidjson_1_1_a_s_c_i_i.html#a9949bd6ba4dabd9945412bb96fcc4240a7c8190ea4c25af669f952bfe200afeee":[13,0,0,1,1],
+"structrapidjson_1_1_a_s_c_i_i.html#a598bb5f32c9f0c851529a9ded73db5eba7c8190ea4c25af669f952bfe200afeee":[13,0,0,1,1],
"structrapidjson_1_1_auto_u_t_f.html":[13,0,0,2],
"structrapidjson_1_1_auto_u_t_f.html#a8ba58f529fad9b33dc419b12ee13844d":[13,0,0,2,0],
-"structrapidjson_1_1_auto_u_t_f.html#a97917924016223755d1f2f70812ea6eda15b55b712f9e34d146fb236e5a89e06e":[13,0,0,2,1],
+"structrapidjson_1_1_auto_u_t_f.html#aa9095b9e85767361f9a0ae5527dba101a15b55b712f9e34d146fb236e5a89e06e":[13,0,0,2,1],
"structrapidjson_1_1_base_reader_handler.html":[13,0,0,5],
"structrapidjson_1_1_base_reader_handler.html#a03e7d273b4d317b61a4ae56e0da9097a":[13,0,0,5,4],
"structrapidjson_1_1_base_reader_handler.html#a050d1b4130a924d138f762d3c914a748":[13,0,0,5,3],
@@ -156,32 +152,32 @@ var NAVTREEINDEX3 =
"structrapidjson_1_1_memory_stream.html#abf9f7cf51a5830ae45e24f5d55fdceaf":[13,0,0,28,0],
"structrapidjson_1_1_memory_stream.html#ac0b4da6016e5ba6241604fd4258fb722":[13,0,0,28,13],
"structrapidjson_1_1_stream_traits.html":[13,0,0,33],
-"structrapidjson_1_1_stream_traits.html#abce9b61706255c4575abaf0ca9a7b94aaf6f7f81d1e208f1041e618b57e0d3828":[13,0,0,33,0],
+"structrapidjson_1_1_stream_traits.html#a3a11abaf56440885401e34830a819c53af6f7f81d1e208f1041e618b57e0d3828":[13,0,0,33,0],
"structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html":[13,0,0,34],
-"structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html#a054229c03fb6ea37485c597efbf2b10cab943169f50f1fc0616fedc1dd2605201":[13,0,0,34,0],
+"structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html#af17a82c2a14a192ef2e497aba82ad46bab943169f50f1fc0616fedc1dd2605201":[13,0,0,34,0],
"structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html":[13,0,0,35],
-"structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html#a210d1cf911ace22a80ec62aec8869c11a58160aabefa22129afe0dd6dce3285f9":[13,0,0,35,0],
+"structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html#ad0861f3abdc5e583e711bc2679fe8f33a58160aabefa22129afe0dd6dce3285f9":[13,0,0,35,0],
"structrapidjson_1_1_transcoder.html":[13,0,0,36],
"structrapidjson_1_1_transcoder_3_01_encoding_00_01_encoding_01_4.html":[13,0,0,37],
"structrapidjson_1_1_u_t_f16.html":[13,0,0,38],
-"structrapidjson_1_1_u_t_f16.html#a1b25407397e76551362ad06fb0f755dda5a09bf086fb94e4d6fb106da7c3f01ea":[13,0,0,38,1],
+"structrapidjson_1_1_u_t_f16.html#a439e1dc4701cc7ae34d257ce76f5dc37a5a09bf086fb94e4d6fb106da7c3f01ea":[13,0,0,38,1],
"structrapidjson_1_1_u_t_f16.html#a97a1141d35742ceeedc0da87538b8790":[13,0,0,38,2],
"structrapidjson_1_1_u_t_f16.html#acb67f53501b796b55996352a6080da54":[13,0,0,38,0],
"structrapidjson_1_1_u_t_f16_b_e.html":[13,0,0,39],
"structrapidjson_1_1_u_t_f16_l_e.html":[13,0,0,40],
"structrapidjson_1_1_u_t_f32.html":[13,0,0,41],
+"structrapidjson_1_1_u_t_f32.html#a65443b00cba1bb95baf55025108d6a54a4b93019e2b1729a70b35ba10b581ab9e":[13,0,0,41,1],
"structrapidjson_1_1_u_t_f32.html#ac297f89fdab70c22b19f7db769affe05":[13,0,0,41,2],
"structrapidjson_1_1_u_t_f32.html#acea97ff3d1b722b88c5faa72cfd4385e":[13,0,0,41,0],
-"structrapidjson_1_1_u_t_f32.html#af76c14241fb9ce42b4ff0b10d5c6300da4b93019e2b1729a70b35ba10b581ab9e":[13,0,0,41,1],
"structrapidjson_1_1_u_t_f32_b_e.html":[13,0,0,42],
"structrapidjson_1_1_u_t_f32_l_e.html":[13,0,0,43],
"structrapidjson_1_1_u_t_f8.html":[13,0,0,44],
-"structrapidjson_1_1_u_t_f8.html#a2855bd8436afb593c19d8746e189c895a821cba43661b67d78115cc9366e91b32":[13,0,0,44,1],
+"structrapidjson_1_1_u_t_f8.html#a162ec39d1feea956ac7c82ee21bbe037a821cba43661b67d78115cc9366e91b32":[13,0,0,44,1],
"structrapidjson_1_1_u_t_f8.html#a9f47e775d8306a647a5c9eceac4b52fc":[13,0,0,44,0],
"structrapidjson_1_1_writer_1_1_level.html":[13,0,0,45,0],
"structrapidjson_1_1_writer_1_1_level.html#a5920547a092cb88db486d75064ffe50e":[13,0,0,45,0,1],
"structrapidjson_1_1_writer_1_1_level.html#a8e478a154f4230449e441ce986c49970":[13,0,0,45,0,2],
"structrapidjson_1_1_writer_1_1_level.html#ac557fb8846daeb3415eb54d4a43cb43f":[13,0,0,45,0,0],
"swap_8h_source.html":[14,0,0,0,1,11],
-"writer_8h_source.html":[14,0,0,0,16]
+"writer_8h_source.html":[14,0,0,0,18]
};
diff --git a/pointer_8h_source.html b/pointer_8h_source.html
index e9319d5e..2e0ac2b9 100644
--- a/pointer_8h_source.html
+++ b/pointer_8h_source.html
@@ -163,7 +163,7 @@ $(document).ready(function(){initNavTree('pointer_8h_source.html','');});
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment"> However, Allocator of GenericPointer is independent of Allocator of Value.</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> ValueType, <span class="keyword">typename</span> Allocator = CrtAllocator&gt;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_pointer.html"> 76</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a> {</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keyword">class </span>GenericPointer {</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_pointer.html#a399790c5fe8076d91a58c621c0c2a79e"> 78</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> ValueType::EncodingType <a class="code" href="classrapidjson_1_1_generic_pointer.html#a399790c5fe8076d91a58c621c0c2a79e">EncodingType</a>; <span class="comment">//!&lt; Encoding type from Value</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_pointer.html#a850f78846c5548565f8395be5f3427b7"> 79</a></span>&#160;<span class="comment"></span> <span class="keyword">typedef</span> <span class="keyword">typename</span> ValueType::Ch <a class="code" href="classrapidjson_1_1_generic_pointer.html#a850f78846c5548565f8395be5f3427b7">Ch</a>; <span class="comment">//!&lt; Character type from Value</span></div>
@@ -298,9 +298,9 @@ $(document).ready(function(){initNavTree('pointer_8h_source.html','');});
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; r.allocator_ = allocator;</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="classrapidjson_1_1_generic_pointer.html#a850f78846c5548565f8395be5f3427b7">Ch</a> *p = r.CopyFromRaw(*<span class="keyword">this</span>, 1, token.<a class="code" href="structrapidjson_1_1_generic_pointer_1_1_token.html#ad866d674dbddf9690ad571b65e968600">length</a> + 1);</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; std::memcpy(p, token.<a class="code" href="structrapidjson_1_1_generic_pointer_1_1_token.html#aceb59c9796418c20da27b03bf1948fe8">name</a>, (token.<a class="code" href="structrapidjson_1_1_generic_pointer_1_1_token.html#ad866d674dbddf9690ad571b65e968600">length</a> + 1) * <span class="keyword">sizeof</span>(<a class="code" href="classrapidjson_1_1_generic_pointer.html#a850f78846c5548565f8395be5f3427b7">Ch</a>));</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; r.tokens_[tokenCount_].<a class="code" href="structrapidjson_1_1_generic_pointer_1_1_token.html#aceb59c9796418c20da27b03bf1948fe8">name</a> = p;</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; r.tokens_[tokenCount_].<a class="code" href="structrapidjson_1_1_generic_pointer_1_1_token.html#ad866d674dbddf9690ad571b65e968600">length</a> = token.<a class="code" href="structrapidjson_1_1_generic_pointer_1_1_token.html#ad866d674dbddf9690ad571b65e968600">length</a>;</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; r.tokens_[tokenCount_].<a class="code" href="structrapidjson_1_1_generic_pointer_1_1_token.html#a50331c9e3dedc34d2c79745b2e58fb2d">index</a> = token.<a class="code" href="structrapidjson_1_1_generic_pointer_1_1_token.html#a50331c9e3dedc34d2c79745b2e58fb2d">index</a>;</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; r.tokens_[tokenCount_].name = p;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; r.tokens_[tokenCount_].length = token.<a class="code" href="structrapidjson_1_1_generic_pointer_1_1_token.html#ad866d674dbddf9690ad571b65e968600">length</a>;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; r.tokens_[tokenCount_].index = token.<a class="code" href="structrapidjson_1_1_generic_pointer_1_1_token.html#a50331c9e3dedc34d2c79745b2e58fb2d">index</a>;</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> r;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="comment"></span></div>
@@ -417,13 +417,13 @@ $(document).ready(function(){initNavTree('pointer_8h_source.html','');});
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="comment"> \note When any pointers are invalid, always returns false.</span></div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_pointer.html#af0d009a8322a7b61f63a9539ca8bddaf"> 329</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classrapidjson_1_1_generic_pointer.html#af0d009a8322a7b61f63a9539ca8bddaf">operator==</a>(<span class="keyword">const</span> <a class="code" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a>&amp; rhs)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">if</span> (!IsValid() || !rhs.<a class="code" href="classrapidjson_1_1_generic_pointer.html#a112f364fe9aeabba2a72e83bcbeb8fda">IsValid</a>() || tokenCount_ != rhs.tokenCount_)</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">if</span> (!IsValid() || !rhs.IsValid() || tokenCount_ != rhs.tokenCount_)</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; tokenCount_; i++) {</div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">if</span> (tokens_[i].index != rhs.tokens_[i].<a class="code" href="structrapidjson_1_1_generic_pointer_1_1_token.html#a50331c9e3dedc34d2c79745b2e58fb2d">index</a> ||</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; tokens_[i].length != rhs.tokens_[i].<a class="code" href="structrapidjson_1_1_generic_pointer_1_1_token.html#ad866d674dbddf9690ad571b65e968600">length</a> || </div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; (tokens_[i].length != 0 &amp;&amp; std::memcmp(tokens_[i].name, rhs.tokens_[i].<a class="code" href="structrapidjson_1_1_generic_pointer_1_1_token.html#aceb59c9796418c20da27b03bf1948fe8">name</a>, <span class="keyword">sizeof</span>(<a class="code" href="classrapidjson_1_1_generic_pointer.html#a850f78846c5548565f8395be5f3427b7">Ch</a>)* tokens_[i].length) != 0))</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">if</span> (tokens_[i].index != rhs.tokens_[i].index ||</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; tokens_[i].length != rhs.tokens_[i].length || </div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; (tokens_[i].length != 0 &amp;&amp; std::memcmp(tokens_[i].name, rhs.tokens_[i].name, <span class="keyword">sizeof</span>(<a class="code" href="classrapidjson_1_1_generic_pointer.html#a850f78846c5548565f8395be5f3427b7">Ch</a>)* tokens_[i].length) != 0))</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; {</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; }</div>
@@ -1111,7 +1111,7 @@ $(document).ready(function(){initNavTree('pointer_8h_source.html','');});
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;<span class="comment"></span>};</div>
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;<span class="comment">//! GenericPointer for Value (UTF-8, default allocator).</span></div>
-<div class="line"><a name="l01024"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3"> 1024</a></span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_pointer.html">GenericPointer&lt;Value&gt;</a> <a class="code" href="classrapidjson_1_1_generic_pointer.html">Pointer</a>;</div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;<span class="comment"></span><span class="keyword">typedef</span> GenericPointer&lt;Value&gt; <a class="code" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">Pointer</a>;</div>
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;<span class="comment">//!@name Helper functions for GenericPointer</span></div>
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;<span class="comment"></span><span class="comment">//@{</span></div>
@@ -1119,8 +1119,8 @@ $(document).ready(function(){initNavTree('pointer_8h_source.html','');});
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;<span class="comment">//////////////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;<span class="keyword">typename</span> T::ValueType&amp; CreateValueByPointer(T&amp; root, <span class="keyword">const</span> <a class="code" href="classrapidjson_1_1_generic_pointer.html">GenericPointer&lt;typename T::ValueType&gt;</a>&amp; pointer, <span class="keyword">typename</span> T::AllocatorType&amp; a) {</div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; <span class="keywordflow">return</span> pointer.<a class="code" href="classrapidjson_1_1_generic_pointer.html#a3733a6d6cf2a3a13f2a59b109b56d800">Create</a>(root, a);</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;<span class="keyword">typename</span> T::ValueType&amp; CreateValueByPointer(T&amp; root, <span class="keyword">const</span> GenericPointer&lt;typename T::ValueType&gt;&amp; pointer, <span class="keyword">typename</span> T::AllocatorType&amp; a) {</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; <span class="keywordflow">return</span> pointer.Create(root, a);</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"> 1035</span>&#160;</div>
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> CharType, <span class="keywordtype">size_t</span> N&gt;</div>
@@ -1432,6 +1432,7 @@ $(document).ready(function(){initNavTree('pointer_8h_source.html','');});
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_ab914090864d0ded21a376867c33ad865"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#ab914090864d0ded21a376867c33ad865">rapidjson::GenericPointer::GetWithDefault</a></div><div class="ttdeci">ValueType &amp; GetWithDefault(ValueType &amp;root, const std::basic_string&lt; Ch &gt; &amp;defaultValue, typename ValueType::AllocatorType &amp;allocator) const </div><div class="ttdoc">Query a value in a subtree with default std::basic_string. </div><div class="ttdef"><b>Definition:</b> pointer.h:527</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_a64f7bb98da73976b59597cdde96a40b8"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#a64f7bb98da73976b59597cdde96a40b8">rapidjson::GenericPointer::Append</a></div><div class="ttdeci">GenericPointer Append(const Token &amp;token, Allocator *allocator=0) const </div><div class="ttdoc">Append a token and return a new Pointer. </div><div class="ttdef"><b>Definition:</b> pointer.h:206</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_a0e144b9956a5272c13ceff3b9306e748"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#a0e144b9956a5272c13ceff3b9306e748">rapidjson::GenericPointer::~GenericPointer</a></div><div class="ttdeci">~GenericPointer()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> pointer.h:168</div></div>
+<div class="ttc" id="namespacerapidjson_html_a080910f74d2f5046e6724280159cf374"><div class="ttname"><a href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">rapidjson::Pointer</a></div><div class="ttdeci">GenericPointer&lt; Value, CrtAllocator &gt; Pointer</div><div class="ttdoc">GenericPointer for Value (UTF-8, default allocator). </div><div class="ttdef"><b>Definition:</b> fwd.h:121</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_acdac4ea8e57920194827be4afb942d97"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#acdac4ea8e57920194827be4afb942d97">rapidjson::GenericPointer::GetAllocator</a></div><div class="ttdeci">Allocator &amp; GetAllocator()</div><div class="ttdoc">Get the allocator of this pointer. </div><div class="ttdef"><b>Definition:</b> pointer.h:309</div></div>
<div class="ttc" id="namespacerapidjson_html_a44eb33eaa523e36d466b1ced64b85c84"><div class="ttname"><a href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">rapidjson::SizeType</a></div><div class="ttdeci">unsigned SizeType</div><div class="ttdoc">Size type (for string lengths, array sizes, etc.) </div><div class="ttdef"><b>Definition:</b> rapidjson.h:349</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_ggade540ee4cc2a416c23b8ee2c12393c7ba9094f236b2ec70c42f1ea91dffc1e39b"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ggade540ee4cc2a416c23b8ee2c12393c7ba9094f236b2ec70c42f1ea91dffc1e39b">rapidjson::kPointerParseErrorNone</a></div><div class="ttdoc">The parse is successful. </div><div class="ttdef"><b>Definition:</b> pointer.h:35</div></div>
@@ -1451,13 +1452,13 @@ $(document).ready(function(){initNavTree('pointer_8h_source.html','');});
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_a5e9e740bec7f5a1703088171e0b2557b"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#a5e9e740bec7f5a1703088171e0b2557b">rapidjson::GenericPointer::GetWithDefault</a></div><div class="ttdeci">ValueType &amp; GetWithDefault(GenericDocument&lt; EncodingType, typename ValueType::AllocatorType, stackAllocator &gt; &amp;document, const std::basic_string&lt; Ch &gt; &amp;defaultValue) const </div><div class="ttdoc">Query a value in a document with default std::basic_string. </div><div class="ttdef"><b>Definition:</b> pointer.h:559</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_a3e74f5b9c9fd3307f6ebac61a7131524"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#a3e74f5b9c9fd3307f6ebac61a7131524">rapidjson::GenericPointer::operator!=</a></div><div class="ttdeci">bool operator!=(const GenericPointer &amp;rhs) const </div><div class="ttdoc">Inequality operator. </div><div class="ttdef"><b>Definition:</b> pointer.h:349</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_a8f831aae14afc493a82b5fb6aa9c3c43"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#a8f831aae14afc493a82b5fb6aa9c3c43">rapidjson::GenericPointer::GenericPointer</a></div><div class="ttdeci">GenericPointer(const Ch *source, Allocator *allocator=0)</div><div class="ttdoc">Constructor that parses a string or URI fragment representation. </div><div class="ttdef"><b>Definition:</b> pointer.h:111</div></div>
-<div class="ttc" id="classrapidjson_1_1_generic_pointer_html"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer</a></div><div class="ttdoc">Represents a JSON Pointer. Use Pointer for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> pointer.h:76</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_pointer_html"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer</a></div><div class="ttdoc">Represents a JSON Pointer. Use Pointer for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> fwd.h:121</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_a112f364fe9aeabba2a72e83bcbeb8fda"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#a112f364fe9aeabba2a72e83bcbeb8fda">rapidjson::GenericPointer::IsValid</a></div><div class="ttdeci">bool IsValid() const </div><div class="ttdoc">Check whether this is a valid pointer. </div><div class="ttdef"><b>Definition:</b> pointer.h:298</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:716</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:557</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_a23194bb6ce6c07c78981344fe80ac3a6"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#a23194bb6ce6c07c78981344fe80ac3a6">rapidjson::GenericPointer::operator=</a></div><div class="ttdeci">GenericPointer &amp; operator=(const GenericPointer &amp;rhs)</div><div class="ttdoc">Assignment operator. </div><div class="ttdef"><b>Definition:</b> pointer.h:175</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_a151f17dc1c655b9dc0a9a3cf06e6bdcb"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#a151f17dc1c655b9dc0a9a3cf06e6bdcb">rapidjson::GenericPointer::Set</a></div><div class="ttdeci">ValueType &amp; Set(ValueType &amp;root, const std::basic_string&lt; Ch &gt; &amp;value, typename ValueType::AllocatorType &amp;allocator) const </div><div class="ttdoc">Set a std::basic_string in a subtree. </div><div class="ttdef"><b>Definition:</b> pointer.h:605</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_af89e3e8f87bb833d4eb4bb2fd4074431"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#af89e3e8f87bb833d4eb4bb2fd4074431">rapidjson::GenericPointer::GetWithDefault</a></div><div class="ttdeci">ValueType &amp; GetWithDefault(GenericDocument&lt; EncodingType, typename ValueType::AllocatorType, stackAllocator &gt; &amp;document, const ValueType &amp;defaultValue) const </div><div class="ttdoc">Query a value in a document with default value. </div><div class="ttdef"><b>Definition:</b> pointer.h:546</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">rapidjson::kObjectType</a></div><div class="ttdoc">object </div><div class="ttdef"><b>Definition:</b> rapidjson.h:720</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">rapidjson::kObjectType</a></div><div class="ttdoc">object </div><div class="ttdef"><b>Definition:</b> rapidjson.h:561</div></div>
<div class="ttc" id="document_8h_html"><div class="ttname"><a href="document_8h.html">document.h</a></div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_a0ee51e6c996d4665b398dae5dbf00bc4"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#a0ee51e6c996d4665b398dae5dbf00bc4">rapidjson::GenericPointer::GetTokens</a></div><div class="ttdeci">const Token * GetTokens() const </div><div class="ttdoc">Get the token array (const version only). </div><div class="ttdef"><b>Definition:</b> pointer.h:315</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_a83ff802b8fcacd96e60ba1c2627a19f0"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#a83ff802b8fcacd96e60ba1c2627a19f0">rapidjson::GenericPointer::Set</a></div><div class="ttdeci">ValueType &amp; Set(GenericDocument&lt; EncodingType, typename ValueType::AllocatorType, stackAllocator &gt; &amp;document, const ValueType &amp;value) const </div><div class="ttdoc">Set a value in a document, with copy semantics. </div><div class="ttdef"><b>Definition:</b> pointer.h:628</div></div>
@@ -1466,7 +1467,7 @@ $(document).ready(function(){initNavTree('pointer_8h_source.html','');});
<div class="ttc" id="rapidjson_8h_html_ab9e102fa2f1a0ae4914d4dac21f690a2"><div class="ttname"><a href="rapidjson_8h.html#ab9e102fa2f1a0ae4914d4dac21f690a2">RAPIDJSON_NEW</a></div><div class="ttdeci">#define RAPIDJSON_NEW(x)</div><div class="ttdoc">! customization point for global new </div><div class="ttdef"><b>Definition:</b> rapidjson.h:540</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_a98454081fb9557b3d2285c4e89bd34f6"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#a98454081fb9557b3d2285c4e89bd34f6">rapidjson::GenericPointer::Set</a></div><div class="ttdeci">ValueType &amp; Set(ValueType &amp;root, const Ch *value, typename ValueType::AllocatorType &amp;allocator) const </div><div class="ttdoc">Set a null-terminated string in a subtree. </div><div class="ttdef"><b>Definition:</b> pointer.h:599</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html">rapidjson::GenericDocument</a></div><div class="ttdoc">A document for parsing JSON text as DOM. </div><div class="ttdef"><b>Definition:</b> document.h:57</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">rapidjson::kArrayType</a></div><div class="ttdoc">array </div><div class="ttdef"><b>Definition:</b> rapidjson.h:721</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">rapidjson::kArrayType</a></div><div class="ttdoc">array </div><div class="ttdef"><b>Definition:</b> rapidjson.h:562</div></div>
<div class="ttc" id="rapidjson_8h_html_a52c941c3fdd646527cdcd42aa846a28a"><div class="ttname"><a href="rapidjson_8h.html#a52c941c3fdd646527cdcd42aa846a28a">RAPIDJSON_DELETE</a></div><div class="ttdeci">#define RAPIDJSON_DELETE(x)</div><div class="ttdoc">! customization point for global delete </div><div class="ttdef"><b>Definition:</b> rapidjson.h:544</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_af0d009a8322a7b61f63a9539ca8bddaf"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#af0d009a8322a7b61f63a9539ca8bddaf">rapidjson::GenericPointer::operator==</a></div><div class="ttdeci">bool operator==(const GenericPointer &amp;rhs) const </div><div class="ttdoc">Equality operator. </div><div class="ttdef"><b>Definition:</b> pointer.h:329</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_ab9166f175517b1bff8c2219ea769e506"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#ab9166f175517b1bff8c2219ea769e506">rapidjson::GenericPointer::Stringify</a></div><div class="ttdeci">bool Stringify(OutputStream &amp;os) const </div><div class="ttdoc">Stringify the pointer into string representation. </div><div class="ttdef"><b>Definition:</b> pointer.h:362</div></div>
diff --git a/prettywriter_8h_source.html b/prettywriter_8h_source.html
index a174a4c9..e63c4e13 100644
--- a/prettywriter_8h_source.html
+++ b/prettywriter_8h_source.html
@@ -276,7 +276,7 @@ $(document).ready(function(){initNavTree('prettywriter_8h_source.html','');});
<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; <span class="keywordtype">void</span> WriteIndent() {</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordtype">size_t</span> count = (Base::level_stack_.GetSize() / <span class="keyword">sizeof</span>(<span class="keyword">typename</span> Base::Level)) * indentCharCount_;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">PutN</a>(*Base::os_, static_cast&lt;typename TargetEncoding::Ch&gt;(indentChar_), count);</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a">PutN</a>(*Base::os_, static_cast&lt;typename TargetEncoding::Ch&gt;(indentChar_), count);</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; Ch indentChar_;</div>
@@ -295,22 +295,22 @@ $(document).ready(function(){initNavTree('prettywriter_8h_source.html','');});
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor">#endif</span></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="preprocessor">#endif // RAPIDJSON_RAPIDJSON_H_</span></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e">rapidjson::kTrueType</a></div><div class="ttdoc">true </div><div class="ttdef"><b>Definition:</b> rapidjson.h:719</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e">rapidjson::kTrueType</a></div><div class="ttdoc">true </div><div class="ttdef"><b>Definition:</b> rapidjson.h:560</div></div>
<div class="ttc" id="classrapidjson_1_1_pretty_writer_html_aec337a69de964cdbb8eed17d44065f3d"><div class="ttname"><a href="classrapidjson_1_1_pretty_writer.html#aec337a69de964cdbb8eed17d44065f3d">rapidjson::PrettyWriter::String</a></div><div class="ttdeci">bool String(const Ch *str)</div><div class="ttdoc">Simpler but slower overload. </div><div class="ttdef"><b>Definition:</b> prettywriter.h:141</div></div>
<div class="ttc" id="namespacerapidjson_html_a44eb33eaa523e36d466b1ced64b85c84"><div class="ttname"><a href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">rapidjson::SizeType</a></div><div class="ttdeci">unsigned SizeType</div><div class="ttdoc">Size type (for string lengths, array sizes, etc.) </div><div class="ttdef"><b>Definition:</b> rapidjson.h:349</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607">rapidjson::kFalseType</a></div><div class="ttdoc">false </div><div class="ttdef"><b>Definition:</b> rapidjson.h:718</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607">rapidjson::kFalseType</a></div><div class="ttdoc">false </div><div class="ttdef"><b>Definition:</b> rapidjson.h:559</div></div>
<div class="ttc" id="classrapidjson_1_1_pretty_writer_html"><div class="ttname"><a href="classrapidjson_1_1_pretty_writer.html">rapidjson::PrettyWriter</a></div><div class="ttdoc">Writer with indentation and spacing. </div><div class="ttdef"><b>Definition:</b> prettywriter.h:35</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:716</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">rapidjson::kObjectType</a></div><div class="ttdoc">object </div><div class="ttdef"><b>Definition:</b> rapidjson.h:720</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:557</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">rapidjson::kObjectType</a></div><div class="ttdoc">object </div><div class="ttdef"><b>Definition:</b> rapidjson.h:561</div></div>
<div class="ttc" id="classrapidjson_1_1_pretty_writer_html_ad85cd16f7cc2bcd563becab6b555aefc"><div class="ttname"><a href="classrapidjson_1_1_pretty_writer.html#ad85cd16f7cc2bcd563becab6b555aefc">rapidjson::PrettyWriter::SetIndent</a></div><div class="ttdeci">PrettyWriter &amp; SetIndent(Ch indentChar, unsigned indentCharCount)</div><div class="ttdoc">Set custom indentation. </div><div class="ttdef"><b>Definition:</b> prettywriter.h:53</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">rapidjson::kArrayType</a></div><div class="ttdoc">array </div><div class="ttdef"><b>Definition:</b> rapidjson.h:721</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">rapidjson::kArrayType</a></div><div class="ttdoc">array </div><div class="ttdef"><b>Definition:</b> rapidjson.h:562</div></div>
+<div class="ttc" id="namespacerapidjson_html_a1ac13bac5976fc06587e00fc0bcfb32a"><div class="ttname"><a href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a">rapidjson::PutN</a></div><div class="ttdeci">void PutN(FileWriteStream &amp;stream, char c, size_t n)</div><div class="ttdoc">Implement specialized version of PutN() with memset() for better performance. </div><div class="ttdef"><b>Definition:</b> filewritestream.h:94</div></div>
<div class="ttc" id="classrapidjson_1_1_pretty_writer_html_a96edf06d5bbb010d3e8c95b22b6f4750"><div class="ttname"><a href="classrapidjson_1_1_pretty_writer.html#a96edf06d5bbb010d3e8c95b22b6f4750">rapidjson::PrettyWriter::PrettyWriter</a></div><div class="ttdeci">PrettyWriter(OutputStream &amp;os, StackAllocator *allocator=0, size_t levelDepth=Base::kDefaultLevelDepth)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> prettywriter.h:45</div></div>
-<div class="ttc" id="classrapidjson_1_1_writer_html"><div class="ttname"><a href="classrapidjson_1_1_writer.html">rapidjson::Writer</a></div><div class="ttdoc">JSON writer. </div><div class="ttdef"><b>Definition:</b> writer.h:55</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff">rapidjson::kNullType</a></div><div class="ttdoc">null </div><div class="ttdef"><b>Definition:</b> rapidjson.h:717</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7">rapidjson::kStringType</a></div><div class="ttdoc">string </div><div class="ttdef"><b>Definition:</b> rapidjson.h:722</div></div>
+<div class="ttc" id="classrapidjson_1_1_writer_html"><div class="ttname"><a href="classrapidjson_1_1_writer.html">rapidjson::Writer</a></div><div class="ttdoc">JSON writer. </div><div class="ttdef"><b>Definition:</b> fwd.h:95</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff">rapidjson::kNullType</a></div><div class="ttdoc">null </div><div class="ttdef"><b>Definition:</b> rapidjson.h:558</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7">rapidjson::kStringType</a></div><div class="ttdoc">string </div><div class="ttdef"><b>Definition:</b> rapidjson.h:563</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a">rapidjson::kNumberType</a></div><div class="ttdoc">number </div><div class="ttdef"><b>Definition:</b> rapidjson.h:723</div></div>
-<div class="ttc" id="namespacerapidjson_html_a1d49d2cab617858b53a1db23b1759f43"><div class="ttname"><a href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">rapidjson::PutN</a></div><div class="ttdeci">void PutN(Stream &amp;stream, Ch c, size_t n)</div><div class="ttdoc">Put N copies of a character to a stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:632</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a">rapidjson::kNumberType</a></div><div class="ttdoc">number </div><div class="ttdef"><b>Definition:</b> rapidjson.h:564</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.7-->
diff --git a/rapidjson_8h.html b/rapidjson_8h.html
index aade6b0a..5b268f5e 100644
--- a/rapidjson_8h.html
+++ b/rapidjson_8h.html
@@ -85,12 +85,10 @@ $(document).ready(function(){initNavTree('rapidjson_8h.html','');});
<div class="header">
<div class="summary">
-<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
-<a href="#enum-members">Enumerations</a> &#124;
-<a href="#func-members">Functions</a> </div>
+<a href="#enum-members">Enumerations</a> </div>
<div class="headertitle">
<div class="title">rapidjson.h File Reference</div> </div>
</div><!--header-->
@@ -102,27 +100,9 @@ $(document).ready(function(){initNavTree('rapidjson_8h.html','');});
<code>#include &lt;cstring&gt;</code><br />
<code>#include &lt;string&gt;</code><br />
<code>#include &lt;cassert&gt;</code><br />
-<code>#include &quot;allocators.h&quot;</code><br />
-<code>#include &quot;encodings.h&quot;</code><br />
</div>
<p><a href="rapidjson_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
-Classes</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrapidjson_1_1_stream_traits.html">rapidjson::StreamTraits&lt; Stream &gt;</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides additional information for stream. <a href="structrapidjson_1_1_stream_traits.html#details">More...</a><br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrapidjson_1_1_generic_string_stream.html">rapidjson::GenericStringStream&lt; Encoding &gt;</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read-only string stream. <a href="structrapidjson_1_1_generic_string_stream.html#details">More...</a><br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html">rapidjson::StreamTraits&lt; GenericStringStream&lt; Encoding &gt; &gt;</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrapidjson_1_1_generic_insitu_string_stream.html">rapidjson::GenericInsituStringStream&lt; Encoding &gt;</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A read-write string stream. <a href="structrapidjson_1_1_generic_insitu_string_stream.html#details">More...</a><br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html">rapidjson::StreamTraits&lt; GenericInsituStringStream&lt; Encoding &gt; &gt;</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespacerapidjson"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html">rapidjson</a></td></tr>
@@ -209,17 +189,6 @@ Typedefs</h2></td></tr>
<tr class="memitem:a44eb33eaa523e36d466b1ced64b85c84"><td class="memItemLeft" align="right" valign="top">typedef unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">rapidjson::SizeType</a></td></tr>
<tr class="memdesc:a44eb33eaa523e36d466b1ced64b85c84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size type (for string lengths, array sizes, etc.) <a href="#a44eb33eaa523e36d466b1ced64b85c84">More...</a><br /></td></tr>
<tr class="separator:a44eb33eaa523e36d466b1ced64b85c84"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ada4cef9931d4a3a0017ee776c907807b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada4cef9931d4a3a0017ee776c907807b"></a>
-typedef GenericStringStream<br class="typebreak" />
-&lt; UTF8&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#ada4cef9931d4a3a0017ee776c907807b">rapidjson::StringStream</a></td></tr>
-<tr class="memdesc:ada4cef9931d4a3a0017ee776c907807b"><td class="mdescLeft">&#160;</td><td class="mdescRight">String stream with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
-<tr class="separator:ada4cef9931d4a3a0017ee776c907807b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5660e8e601d2719796bc86c3168a1787"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5660e8e601d2719796bc86c3168a1787"></a>
-typedef <br class="typebreak" />
-GenericInsituStringStream<br class="typebreak" />
-&lt; UTF8&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787">rapidjson::InsituStringStream</a></td></tr>
-<tr class="memdesc:a5660e8e601d2719796bc86c3168a1787"><td class="mdescLeft">&#160;</td><td class="mdescRight">Insitu string stream with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
-<tr class="separator:a5660e8e601d2719796bc86c3168a1787"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
@@ -236,24 +205,6 @@ Enumerations</h2></td></tr>
}</td></tr>
<tr class="memdesc:ae79a4751c1c460ff0de5ecc07874f3e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of JSON value. <a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">More...</a><br /></td></tr>
<tr class="separator:ae79a4751c1c460ff0de5ecc07874f3e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a820f77efccfbb749bd15fe4822d2c740"><td class="memTemplParams" colspan="2"><a class="anchor" id="a820f77efccfbb749bd15fe4822d2c740"></a>
-template&lt;typename Stream &gt; </td></tr>
-<tr class="memitem:a820f77efccfbb749bd15fe4822d2c740"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">rapidjson::PutReserve</a> (Stream &amp;stream, size_t count)</td></tr>
-<tr class="memdesc:a820f77efccfbb749bd15fe4822d2c740"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reserve n characters for writing to a stream. <br /></td></tr>
-<tr class="separator:a820f77efccfbb749bd15fe4822d2c740"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0a774dcffe8ae07686f459ae017d2f20"><td class="memTemplParams" colspan="2"><a class="anchor" id="a0a774dcffe8ae07686f459ae017d2f20"></a>
-template&lt;typename Stream &gt; </td></tr>
-<tr class="memitem:a0a774dcffe8ae07686f459ae017d2f20"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">rapidjson::PutUnsafe</a> (Stream &amp;stream, typename Stream::Ch c)</td></tr>
-<tr class="memdesc:a0a774dcffe8ae07686f459ae017d2f20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write character to a stream, presuming buffer is reserved. <br /></td></tr>
-<tr class="separator:a0a774dcffe8ae07686f459ae017d2f20"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1d49d2cab617858b53a1db23b1759f43"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1d49d2cab617858b53a1db23b1759f43"></a>
-template&lt;typename Stream , typename Ch &gt; </td></tr>
-<tr class="memitem:a1d49d2cab617858b53a1db23b1759f43"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">rapidjson::PutN</a> (Stream &amp;stream, Ch c, size_t n)</td></tr>
-<tr class="memdesc:a1d49d2cab617858b53a1db23b1759f43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Put N copies of a character to a stream. <br /></td></tr>
-<tr class="separator:a1d49d2cab617858b53a1db23b1759f43"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>common definitions and configuration </p>
diff --git a/rapidjson_8h.js b/rapidjson_8h.js
index 0f1bda9f..fa2d3a7a 100644
--- a/rapidjson_8h.js
+++ b/rapidjson_8h.js
@@ -1,10 +1,5 @@
var rapidjson_8h =
[
- [ "StreamTraits", "structrapidjson_1_1_stream_traits.html", "structrapidjson_1_1_stream_traits" ],
- [ "GenericStringStream", "structrapidjson_1_1_generic_string_stream.html", "structrapidjson_1_1_generic_string_stream" ],
- [ "StreamTraits< GenericStringStream< Encoding > >", "structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html", "structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4" ],
- [ "GenericInsituStringStream", "structrapidjson_1_1_generic_insitu_string_stream.html", "structrapidjson_1_1_generic_insitu_string_stream" ],
- [ "StreamTraits< GenericInsituStringStream< Encoding > >", "structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html", "structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4" ],
[ "RAPIDJSON_64BIT", "rapidjson_8h.html#a93973847cb99354b6b5bb5605aa7fe52", null ],
[ "RAPIDJSON_ALIGN", "group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga583915242504c7fdb36e826f02f76242", null ],
[ "RAPIDJSON_ASSERT", "group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c", null ],
@@ -26,9 +21,7 @@ var rapidjson_8h =
[ "RAPIDJSON_UINT64_C2", "rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f", null ],
[ "RAPIDJSON_UNLIKELY", "group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga6a2b1695c13e77ae425e3cbac980ccb5", null ],
[ "RAPIDJSON_VERSION_STRING", "group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gad283cfde97d9a32b7d8e8107b11f70a6", null ],
- [ "InsituStringStream", "rapidjson_8h.html#a5660e8e601d2719796bc86c3168a1787", null ],
[ "SizeType", "rapidjson_8h.html#a44eb33eaa523e36d466b1ced64b85c84", null ],
- [ "StringStream", "rapidjson_8h.html#ada4cef9931d4a3a0017ee776c907807b", null ],
[ "Type", "rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4", [
[ "kNullType", "rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff", null ],
[ "kFalseType", "rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607", null ],
@@ -37,8 +30,5 @@ var rapidjson_8h =
[ "kArrayType", "rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468", null ],
[ "kStringType", "rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7", null ],
[ "kNumberType", "rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a", null ]
- ] ],
- [ "PutN", "rapidjson_8h.html#a1d49d2cab617858b53a1db23b1759f43", null ],
- [ "PutReserve", "rapidjson_8h.html#a820f77efccfbb749bd15fe4822d2c740", null ],
- [ "PutUnsafe", "rapidjson_8h.html#a0a774dcffe8ae07686f459ae017d2f20", null ]
+ ] ]
]; \ No newline at end of file
diff --git a/rapidjson_8h_source.html b/rapidjson_8h_source.html
index 99b0125a..86ba5b3b 100644
--- a/rapidjson_8h_source.html
+++ b/rapidjson_8h_source.html
@@ -635,209 +635,37 @@ $(document).ready(function(){initNavTree('rapidjson_8h_source.html','');});
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<span class="comment">///////////////////////////////////////////////////////////////////////////////</span></div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;<span class="comment"></span><span class="comment">// Allocators and Encodings</span></div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;</div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="preprocessor">#include &quot;allocators.h&quot;</span></div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;<span class="preprocessor">#include &quot;encodings.h&quot;</span></div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="comment">/*! \namespace rapidjson</span></div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<span class="comment"> \brief main RapidJSON namespace</span></div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="comment"> \see RAPIDJSON_NAMESPACE</span></div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;RAPIDJSON_NAMESPACE_BEGIN</div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;<span class="comment">///////////////////////////////////////////////////////////////////////////////</span></div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;<span class="comment"></span><span class="comment">// Stream</span></div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;<span class="comment">/*! \class rapidjson::Stream</span></div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;<span class="comment"> \brief Concept for reading and writing characters.</span></div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<span class="comment"> For read-only stream, no need to implement PutBegin(), Put(), Flush() and PutEnd().</span></div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<span class="comment"> For write-only stream, only need to implement Put() and Flush().</span></div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="comment">\code</span></div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<span class="comment">concept Stream {</span></div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;<span class="comment"> typename Ch; //!&lt; Character type of the stream.</span></div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;<span class="comment"></span><span class="comment"></span></div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<span class="comment"> //! Read the current character from stream without moving the read cursor.</span></div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;<span class="comment"></span> Ch Peek() const;</div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="comment"> //! Read the current character from stream and moving the read cursor to next character.</span></div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;<span class="comment"></span> Ch Take();</div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="comment"> //! Get the current read cursor.</span></div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;<span class="comment"> //! \return Number of characters read from start.</span></div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;<span class="comment"></span> size_t Tell();</div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;<span class="comment"> //! Begin writing operation at the current read pointer.</span></div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;<span class="comment"> //! \return The begin writer pointer.</span></div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;<span class="comment"></span> Ch* PutBegin();</div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;<span class="comment"> //! Write a character.</span></div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="comment"></span> void Put(Ch c);</div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;<span class="comment"> //! Flush the buffer.</span></div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;<span class="comment"></span> void Flush();</div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;<span class="comment"> //! End the writing operation.</span></div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;<span class="comment"> //! \param begin The begin write pointer returned by PutBegin().</span></div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;<span class="comment"> //! \return Number of characters written.</span></div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="comment"></span> size_t PutEnd(Ch* begin);</div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;}</div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;\endcode</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;<span class="comment"></span></div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;<span class="comment">//! Provides additional information for stream.</span></div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;<span class="comment"></span><span class="comment">/*!</span></div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;<span class="comment"> By using traits pattern, this type provides a default configuration for stream.</span></div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;<span class="comment"> For custom stream, this type can be specialized for other configuration.</span></div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;<span class="comment"> See TEST(Reader, CustomStringStream) in readertest.cpp for example.</span></div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Stream&gt;</div>
-<div class="line"><a name="l00608"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_stream_traits.html"> 608</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_stream_traits.html">StreamTraits</a> {<span class="comment"></span></div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;<span class="comment"> //! Whether to make local copy of stream for optimization during parsing.</span></div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;<span class="comment"></span><span class="comment"> /*!</span></div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;<span class="comment"> By default, for safety, streams do not use local copy optimization.</span></div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<span class="comment"> Stream that can be copied fast should specialize this, like StreamTraits&lt;StringStream&gt;.</span></div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="keyword">enum</span> { copyOptimization = 0 };</div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;};</div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;<span class="comment">//! Reserve n characters for writing to a stream.</span></div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Stream&gt;</div>
-<div class="line"><a name="l00619"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740"> 619</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">PutReserve</a>(<a class="code" href="classrapidjson_1_1_stream.html">Stream</a>&amp; stream, <span class="keywordtype">size_t</span> count) {</div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; (void)stream;</div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; (void)count;</div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;}</div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;<span class="comment">//! Write character to a stream, presuming buffer is reserved.</span></div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Stream&gt;</div>
-<div class="line"><a name="l00626"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20"> 626</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(<a class="code" href="classrapidjson_1_1_stream.html">Stream</a>&amp; stream, <span class="keyword">typename</span> Stream::Ch c) {</div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; stream.Put(c);</div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;}</div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;<span class="comment">//! Put N copies of a character to a stream.</span></div>
-<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Stream, <span class="keyword">typename</span> Ch&gt;</div>
-<div class="line"><a name="l00632"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43"> 632</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">PutN</a>(<a class="code" href="classrapidjson_1_1_stream.html">Stream</a>&amp; stream, Ch c, <span class="keywordtype">size_t</span> n) {</div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; PutReserve&lt;Stream&gt;(stream, n);</div>
-<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; n; i++)</div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(stream, c);</div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;}</div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;<span class="comment">///////////////////////////////////////////////////////////////////////////////</span></div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;<span class="comment"></span><span class="comment">// StringStream</span></div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;<span class="comment">//! Read-only string stream.</span></div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;<span class="comment"></span><span class="comment">/*! \note implements Stream concept</span></div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding&gt;</div>
-<div class="line"><a name="l00645"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_generic_string_stream.html"> 645</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_generic_string_stream.html">GenericStringStream</a> {</div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> Encoding::Ch Ch;</div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;</div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <a class="code" href="structrapidjson_1_1_generic_string_stream.html">GenericStringStream</a>(<span class="keyword">const</span> Ch *src) : src_(src), head_(src) {}</div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;</div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; Ch Peek()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *src_; }</div>
-<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; Ch Take() { <span class="keywordflow">return</span> *src_++; }</div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <span class="keywordtype">size_t</span> Tell()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">size_t</span><span class="keyword">&gt;</span>(src_ - head_); }</div>
-<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;</div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; Ch* PutBegin() { <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(<span class="keyword">false</span>); <span class="keywordflow">return</span> 0; }</div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <span class="keywordtype">void</span> Put(Ch) { <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(<span class="keyword">false</span>); }</div>
-<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; <span class="keywordtype">void</span> Flush() { <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(<span class="keyword">false</span>); }</div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="keywordtype">size_t</span> PutEnd(Ch*) { <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(<span class="keyword">false</span>); <span class="keywordflow">return</span> 0; }</div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;</div>
-<div class="line"><a name="l00659"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_generic_string_stream.html#a9a38a9d5b1ce782cacd4ec1bdf87fc2d"> 659</a></span>&#160; <span class="keyword">const</span> Ch* <a class="code" href="structrapidjson_1_1_generic_string_stream.html#a9a38a9d5b1ce782cacd4ec1bdf87fc2d">src_</a>; <span class="comment">//!&lt; Current read position.</span></div>
-<div class="line"><a name="l00660"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_generic_string_stream.html#a2556705b0a0fd6393862efe6db025b32"> 660</a></span>&#160;<span class="comment"></span> <span class="keyword">const</span> Ch* <a class="code" href="structrapidjson_1_1_generic_string_stream.html#a2556705b0a0fd6393862efe6db025b32">head_</a>; <span class="comment">//!&lt; Original head of the string.</span></div>
-<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;<span class="comment"></span>};</div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;</div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding&gt;</div>
-<div class="line"><a name="l00664"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html"> 664</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_stream_traits.html">StreamTraits</a>&lt;<a class="code" href="structrapidjson_1_1_generic_string_stream.html">GenericStringStream</a>&lt;<a class="code" href="classrapidjson_1_1_encoding.html">Encoding</a>&gt; &gt; {</div>
-<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="keyword">enum</span> { copyOptimization = 1 };</div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;};</div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;<span class="comment">//! String stream with UTF8 encoding.</span></div>
-<div class="line"><a name="l00669"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ada4cef9931d4a3a0017ee776c907807b"> 669</a></span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="structrapidjson_1_1_generic_string_stream.html">GenericStringStream&lt;UTF8&lt;&gt;</a> &gt; <a class="code" href="namespacerapidjson.html#ada4cef9931d4a3a0017ee776c907807b">StringStream</a>;</div>
-<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;<span class="comment">///////////////////////////////////////////////////////////////////////////////</span></div>
-<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;<span class="comment"></span><span class="comment">// InsituStringStream</span></div>
-<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;<span class="comment">//! A read-write string stream.</span></div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;<span class="comment"></span><span class="comment">/*! This string stream is particularly designed for in-situ parsing.</span></div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;<span class="comment"> \note implements Stream concept</span></div>
-<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding&gt;</div>
-<div class="line"><a name="l00679"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_generic_insitu_string_stream.html"> 679</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_generic_insitu_string_stream.html">GenericInsituStringStream</a> {</div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> Encoding::Ch Ch;</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"> 682</span>&#160; <a class="code" href="structrapidjson_1_1_generic_insitu_string_stream.html">GenericInsituStringStream</a>(Ch *src) : src_(src), dst_(0), head_(src) {}</div>
-<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;</div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; <span class="comment">// Read</span></div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; Ch Peek() { <span class="keywordflow">return</span> *src_; }</div>
-<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; Ch Take() { <span class="keywordflow">return</span> *src_++; }</div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; <span class="keywordtype">size_t</span> Tell() { <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">size_t</span><span class="keyword">&gt;</span>(src_ - head_); }</div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;</div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="comment">// Write</span></div>
-<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <span class="keywordtype">void</span> Put(Ch c) { <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(dst_ != 0); *dst_++ = c; }</div>
-<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;</div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; Ch* PutBegin() { <span class="keywordflow">return</span> dst_ = src_; }</div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keywordtype">size_t</span> PutEnd(Ch* begin) { <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">size_t</span><span class="keyword">&gt;</span>(dst_ - begin); }</div>
-<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <span class="keywordtype">void</span> Flush() {}</div>
-<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;</div>
-<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; Ch* Push(<span class="keywordtype">size_t</span> count) { Ch* begin = dst_; dst_ += count; <span class="keywordflow">return</span> begin; }</div>
-<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <span class="keywordtype">void</span> Pop(<span class="keywordtype">size_t</span> count) { dst_ -= count; }</div>
-<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;</div>
-<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; Ch* src_;</div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; Ch* dst_;</div>
-<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; Ch* head_;</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"> 703</span>&#160;</div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding&gt;</div>
-<div class="line"><a name="l00705"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html"> 705</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_stream_traits.html">StreamTraits</a>&lt;<a class="code" href="structrapidjson_1_1_generic_insitu_string_stream.html">GenericInsituStringStream</a>&lt;<a class="code" href="classrapidjson_1_1_encoding.html">Encoding</a>&gt; &gt; {</div>
-<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <span class="keyword">enum</span> { copyOptimization = 1 };</div>
-<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;};</div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;<span class="comment">//! Insitu string stream with UTF8 encoding.</span></div>
-<div class="line"><a name="l00710"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787"> 710</a></span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="structrapidjson_1_1_generic_insitu_string_stream.html">GenericInsituStringStream&lt;UTF8&lt;&gt;</a> &gt; <a class="code" href="namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787">InsituStringStream</a>;</div>
-<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;<span class="comment">///////////////////////////////////////////////////////////////////////////////</span></div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;<span class="comment"></span><span class="comment">// Type</span></div>
-<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;<span class="comment">//! Type of JSON value</span></div>
-<div class="line"><a name="l00716"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4"> 716</a></span>&#160;<span class="comment"></span><span class="keyword">enum</span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">Type</a> {</div>
-<div class="line"><a name="l00717"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff"> 717</a></span>&#160; <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff">kNullType</a> = 0, <span class="comment">//!&lt; null</span></div>
-<div class="line"><a name="l00718"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607"> 718</a></span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607">kFalseType</a> = 1, <span class="comment">//!&lt; false</span></div>
-<div class="line"><a name="l00719"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e"> 719</a></span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e">kTrueType</a> = 2, <span class="comment">//!&lt; true</span></div>
-<div class="line"><a name="l00720"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"> 720</a></span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">kObjectType</a> = 3, <span class="comment">//!&lt; object</span></div>
-<div class="line"><a name="l00721"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"> 721</a></span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">kArrayType</a> = 4, <span class="comment">//!&lt; array </span></div>
-<div class="line"><a name="l00722"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7"> 722</a></span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7">kStringType</a> = 5, <span class="comment">//!&lt; string</span></div>
-<div class="line"><a name="l00723"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a"> 723</a></span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a">kNumberType</a> = 6 <span class="comment">//!&lt; number</span></div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;<span class="comment"></span>};</div>
-<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;</div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;RAPIDJSON_NAMESPACE_END</div>
-<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;</div>
-<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_RAPIDJSON_H_</span></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e">rapidjson::kTrueType</a></div><div class="ttdoc">true </div><div class="ttdef"><b>Definition:</b> rapidjson.h:719</div></div>
-<div class="ttc" id="structrapidjson_1_1_generic_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_string_stream.html">rapidjson::GenericStringStream</a></div><div class="ttdoc">Read-only string stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:645</div></div>
-<div class="ttc" id="namespacerapidjson_html_a820f77efccfbb749bd15fe4822d2c740"><div class="ttname"><a href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">rapidjson::PutReserve</a></div><div class="ttdeci">void PutReserve(Stream &amp;stream, size_t count)</div><div class="ttdoc">Reserve n characters for writing to a stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:619</div></div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;<span class="comment"></span><span class="comment">// Type</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="comment">/*! \namespace rapidjson</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;<span class="comment"> \brief main RapidJSON namespace</span></div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;<span class="comment"> \see RAPIDJSON_NAMESPACE</span></div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;RAPIDJSON_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;<span class="comment">//! Type of JSON value</span></div>
+<div class="line"><a name="l00557"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4"> 557</a></span>&#160;<span class="comment"></span><span class="keyword">enum</span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">Type</a> {</div>
+<div class="line"><a name="l00558"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff"> 558</a></span>&#160; <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff">kNullType</a> = 0, <span class="comment">//!&lt; null</span></div>
+<div class="line"><a name="l00559"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607"> 559</a></span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607">kFalseType</a> = 1, <span class="comment">//!&lt; false</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e"> 560</a></span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e">kTrueType</a> = 2, <span class="comment">//!&lt; true</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"> 561</a></span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">kObjectType</a> = 3, <span class="comment">//!&lt; object</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"> 562</a></span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">kArrayType</a> = 4, <span class="comment">//!&lt; array </span></div>
+<div class="line"><a name="l00563"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7"> 563</a></span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7">kStringType</a> = 5, <span class="comment">//!&lt; string</span></div>
+<div class="line"><a name="l00564"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a"> 564</a></span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a">kNumberType</a> = 6 <span class="comment">//!&lt; number</span></div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<span class="comment"></span>};</div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;</div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;RAPIDJSON_NAMESPACE_END</div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_RAPIDJSON_H_</span></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e">rapidjson::kTrueType</a></div><div class="ttdoc">true </div><div class="ttdef"><b>Definition:</b> rapidjson.h:560</div></div>
<div class="ttc" id="namespacerapidjson_html_a44eb33eaa523e36d466b1ced64b85c84"><div class="ttname"><a href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">rapidjson::SizeType</a></div><div class="ttdeci">unsigned SizeType</div><div class="ttdoc">Size type (for string lengths, array sizes, etc.) </div><div class="ttdef"><b>Definition:</b> rapidjson.h:349</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607">rapidjson::kFalseType</a></div><div class="ttdoc">false </div><div class="ttdef"><b>Definition:</b> rapidjson.h:718</div></div>
-<div class="ttc" id="structrapidjson_1_1_generic_string_stream_html_a2556705b0a0fd6393862efe6db025b32"><div class="ttname"><a href="structrapidjson_1_1_generic_string_stream.html#a2556705b0a0fd6393862efe6db025b32">rapidjson::GenericStringStream::head_</a></div><div class="ttdeci">const Ch * head_</div><div class="ttdoc">Original head of the string. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:660</div></div>
-<div class="ttc" id="structrapidjson_1_1_generic_string_stream_html_a9a38a9d5b1ce782cacd4ec1bdf87fc2d"><div class="ttname"><a href="structrapidjson_1_1_generic_string_stream.html#a9a38a9d5b1ce782cacd4ec1bdf87fc2d">rapidjson::GenericStringStream::src_</a></div><div class="ttdeci">const Ch * src_</div><div class="ttdoc">Current read position. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:659</div></div>
-<div class="ttc" id="namespacerapidjson_html_a5660e8e601d2719796bc86c3168a1787"><div class="ttname"><a href="namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787">rapidjson::InsituStringStream</a></div><div class="ttdeci">GenericInsituStringStream&lt; UTF8&lt;&gt; &gt; InsituStringStream</div><div class="ttdoc">Insitu string stream with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:710</div></div>
-<div class="ttc" id="classrapidjson_1_1_encoding_html"><div class="ttname"><a href="classrapidjson_1_1_encoding.html">rapidjson::Encoding</a></div><div class="ttdoc">Concept for encoding of Unicode characters. </div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:716</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">rapidjson::kObjectType</a></div><div class="ttdoc">object </div><div class="ttdef"><b>Definition:</b> rapidjson.h:720</div></div>
-<div class="ttc" id="namespacerapidjson_html_ada4cef9931d4a3a0017ee776c907807b"><div class="ttname"><a href="namespacerapidjson.html#ada4cef9931d4a3a0017ee776c907807b">rapidjson::StringStream</a></div><div class="ttdeci">GenericStringStream&lt; UTF8&lt;&gt; &gt; StringStream</div><div class="ttdoc">String stream with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:669</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">rapidjson::kArrayType</a></div><div class="ttdoc">array </div><div class="ttdef"><b>Definition:</b> rapidjson.h:721</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff">rapidjson::kNullType</a></div><div class="ttdoc">null </div><div class="ttdef"><b>Definition:</b> rapidjson.h:717</div></div>
-<div class="ttc" id="classrapidjson_1_1_stream_html"><div class="ttname"><a href="classrapidjson_1_1_stream.html">rapidjson::Stream</a></div><div class="ttdoc">Concept for reading and writing characters. </div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7">rapidjson::kStringType</a></div><div class="ttdoc">string </div><div class="ttdef"><b>Definition:</b> rapidjson.h:722</div></div>
-<div class="ttc" id="namespacerapidjson_html_a0a774dcffe8ae07686f459ae017d2f20"><div class="ttname"><a href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">rapidjson::PutUnsafe</a></div><div class="ttdeci">void PutUnsafe(Stream &amp;stream, typename Stream::Ch c)</div><div class="ttdoc">Write character to a stream, presuming buffer is reserved. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:626</div></div>
-<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a">rapidjson::kNumberType</a></div><div class="ttdoc">number </div><div class="ttdef"><b>Definition:</b> rapidjson.h:723</div></div>
-<div class="ttc" id="structrapidjson_1_1_stream_traits_html"><div class="ttname"><a href="structrapidjson_1_1_stream_traits.html">rapidjson::StreamTraits</a></div><div class="ttdoc">Provides additional information for stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:608</div></div>
-<div class="ttc" id="structrapidjson_1_1_generic_insitu_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_insitu_string_stream.html">rapidjson::GenericInsituStringStream</a></div><div class="ttdoc">A read-write string stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:679</div></div>
-<div class="ttc" id="namespacerapidjson_html_a1d49d2cab617858b53a1db23b1759f43"><div class="ttname"><a href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">rapidjson::PutN</a></div><div class="ttdeci">void PutN(Stream &amp;stream, Ch c, size_t n)</div><div class="ttdoc">Put N copies of a character to a stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:632</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607">rapidjson::kFalseType</a></div><div class="ttdoc">false </div><div class="ttdef"><b>Definition:</b> rapidjson.h:559</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:557</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">rapidjson::kObjectType</a></div><div class="ttdoc">object </div><div class="ttdef"><b>Definition:</b> rapidjson.h:561</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">rapidjson::kArrayType</a></div><div class="ttdoc">array </div><div class="ttdef"><b>Definition:</b> rapidjson.h:562</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff">rapidjson::kNullType</a></div><div class="ttdoc">null </div><div class="ttdef"><b>Definition:</b> rapidjson.h:558</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7">rapidjson::kStringType</a></div><div class="ttdoc">string </div><div class="ttdef"><b>Definition:</b> rapidjson.h:563</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a">rapidjson::kNumberType</a></div><div class="ttdoc">number </div><div class="ttdef"><b>Definition:</b> rapidjson.h:564</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.7-->
diff --git a/reader_8h.html b/reader_8h.html
index 5252f873..81839204 100644
--- a/reader_8h.html
+++ b/reader_8h.html
@@ -88,15 +88,14 @@ $(document).ready(function(){initNavTree('reader_8h.html','');});
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#define-members">Macros</a> &#124;
-<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">reader.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
-<div class="textblock"><code>#include &quot;<a class="el" href="rapidjson_8h_source.html">rapidjson.h</a>&quot;</code><br />
-<code>#include &quot;encodings.h&quot;</code><br />
+<div class="textblock"><code>#include &quot;allocators.h&quot;</code><br />
+<code>#include &quot;stream.h&quot;</code><br />
<code>#include &quot;internal/meta.h&quot;</code><br />
<code>#include &quot;internal/stack.h&quot;</code><br />
<code>#include &quot;internal/strtod.h&quot;</code><br />
@@ -131,14 +130,6 @@ Macros</h2></td></tr>
<tr class="memdesc:ga77005e892e6601599beaf421b0395c31"><td class="mdescLeft">&#160;</td><td class="mdescRight">User-defined kParseDefaultFlags definition. <a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga77005e892e6601599beaf421b0395c31">More...</a><br /></td></tr>
<tr class="separator:ga77005e892e6601599beaf421b0395c31"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:a4eaef42a208413d1f2c8d4655ecec52d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4eaef42a208413d1f2c8d4655ecec52d"></a>
-typedef GenericReader&lt; UTF8<br class="typebreak" />
-&lt;&gt;, UTF8&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a4eaef42a208413d1f2c8d4655ecec52d">rapidjson::Reader</a></td></tr>
-<tr class="memdesc:a4eaef42a208413d1f2c8d4655ecec52d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reader with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding and default allocator. <br /></td></tr>
-<tr class="separator:a4eaef42a208413d1f2c8d4655ecec52d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a81379eb4e94a0386d71d15fda882ebc9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a81379eb4e94a0386d71d15fda882ebc9">rapidjson::ParseFlag</a> { <br />
diff --git a/reader_8h.js b/reader_8h.js
index 2fb94d4f..1c0ed2a5 100644
--- a/reader_8h.js
+++ b/reader_8h.js
@@ -5,7 +5,6 @@ var reader_8h =
[ "RAPIDJSON_PARSE_DEFAULT_FLAGS", "group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga77005e892e6601599beaf421b0395c31", null ],
[ "RAPIDJSON_PARSE_ERROR", "group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gae3689840fa6e89a241313f33b602f865", null ],
[ "RAPIDJSON_PARSE_ERROR_NORETURN", "group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga7f8c4265b2edda78568ae3338aaf1461", null ],
- [ "Reader", "reader_8h.html#a4eaef42a208413d1f2c8d4655ecec52d", null ],
[ "ParseFlag", "reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9", [
[ "kParseNoFlags", "reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9af2c7fa21e9e7656e467bd71079ac8fb0", null ],
[ "kParseInsituFlag", "reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9a02748971d6ea0c5e22c69b8aa7f344ea", null ],
diff --git a/reader_8h_source.html b/reader_8h_source.html
index ede82997..75db1618 100644
--- a/reader_8h_source.html
+++ b/reader_8h_source.html
@@ -107,8 +107,8 @@ $(document).ready(function(){initNavTree('reader_8h_source.html','');});
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">/*! \file reader.h */</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rapidjson_8h.html">rapidjson.h</a>&quot;</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;encodings.h&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;allocators.h&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;stream.h&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;internal/meta.h&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;internal/stack.h&quot;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;internal/strtod.h&quot;</span></div>
@@ -275,10 +275,10 @@ $(document).ready(function(){initNavTree('reader_8h_source.html','');});
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="comment"> \note implements Handler concept</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Encoding = UTF8&lt;&gt;, <span class="keyword">typename</span> Derived = <span class="keywordtype">void</span>&gt;</div>
-<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_base_reader_handler.html"> 188</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_base_reader_handler.html">BaseReaderHandler</a> {</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="keyword">struct </span>BaseReaderHandler {</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> Encoding::Ch Ch;</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> internal::SelectIf&lt;internal::IsSame&lt;Derived, void&gt;, <a class="code" href="structrapidjson_1_1_base_reader_handler.html">BaseReaderHandler</a>, Derived&gt;<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">::Type</a> Override;</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> internal::SelectIf&lt;internal::IsSame&lt;Derived, void&gt;, BaseReaderHandler, Derived&gt;<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">::Type</a> Override;</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; <span class="keywordtype">bool</span> Default() { <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordtype">bool</span> Null() { <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>Override&amp;<span class="keyword">&gt;</span>(*this).Default(); }</div>
@@ -306,9 +306,9 @@ $(document).ready(function(){initNavTree('reader_8h_source.html','');});
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="comment">//! Do copy optimization.</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Stream&gt;</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="keyword">class </span>StreamLocalCopy&lt;<a class="code" href="classrapidjson_1_1_stream.html">Stream</a>, 1&gt; {</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="keyword">class </span>StreamLocalCopy&lt;Stream, 1&gt; {</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; StreamLocalCopy(<a class="code" href="classrapidjson_1_1_stream.html">Stream</a>&amp; original) : s(original), original_(original) {}</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; StreamLocalCopy(Stream&amp; original) : s(original), original_(original) {}</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; ~StreamLocalCopy() { original_ = s; }</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; Stream s;</div>
@@ -466,7 +466,7 @@ $(document).ready(function(){initNavTree('reader_8h_source.html','');});
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="comment"> \tparam StackAllocator Allocator type for stack.</span></div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> SourceEncoding, <span class="keyword">typename</span> TargetEncoding, <span class="keyword">typename</span> StackAllocator = CrtAllocator&gt;</div>
-<div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_reader.html"> 379</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_reader.html">GenericReader</a> {</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="keyword">class </span>GenericReader {</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_reader.html#a0781d19e8c6bc044d9cc5f5d3dde287e"> 381</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> SourceEncoding::Ch <a class="code" href="classrapidjson_1_1_generic_reader.html#a0781d19e8c6bc044d9cc5f5d3dde287e">Ch</a>; <span class="comment">//!&lt; SourceEncoding character type</span></div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="comment"></span><span class="comment"></span></div>
@@ -890,7 +890,7 @@ $(document).ready(function(){initNavTree('reader_8h_source.html','');});
<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;<span class="preprocessor">#if defined(RAPIDJSON_SSE2) || defined(RAPIDJSON_SSE42)</span></div>
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <span class="comment">// StringStream -&gt; StackStream&lt;char&gt;</span></div>
-<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="keyword">static</span> RAPIDJSON_FORCEINLINE <span class="keywordtype">void</span> ScanCopyUnescapedString(<a class="code" href="namespacerapidjson.html#ada4cef9931d4a3a0017ee776c907807b">StringStream</a>&amp; is, StackStream&lt;char&gt;&amp; os) {</div>
+<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="keyword">static</span> RAPIDJSON_FORCEINLINE <span class="keywordtype">void</span> ScanCopyUnescapedString(StringStream&amp; is, StackStream&lt;char&gt;&amp; os) {</div>
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* p = is.src_;</div>
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;</div>
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="comment">// Scan one by one until alignment (unaligned load may cross page boundary and cause crash)</span></div>
@@ -941,7 +941,7 @@ $(document).ready(function(){initNavTree('reader_8h_source.html','');});
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; }</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="comment">// InsituStringStream -&gt; InsituStringStream</span></div>
-<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; <span class="keyword">static</span> RAPIDJSON_FORCEINLINE <span class="keywordtype">void</span> ScanCopyUnescapedString(<a class="code" href="namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787">InsituStringStream</a>&amp; is, <a class="code" href="namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787">InsituStringStream</a>&amp; os) {</div>
+<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; <span class="keyword">static</span> RAPIDJSON_FORCEINLINE <span class="keywordtype">void</span> ScanCopyUnescapedString(InsituStringStream&amp; is, InsituStringStream&amp; os) {</div>
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(&amp;is == &amp;os);</div>
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; (void)os;</div>
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160;</div>
@@ -1000,7 +1000,7 @@ $(document).ready(function(){initNavTree('reader_8h_source.html','');});
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; }</div>
<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160;</div>
<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; <span class="comment">// When read/write pointers are the same for insitu stream, just skip unescaped characters</span></div>
-<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; <span class="keyword">static</span> RAPIDJSON_FORCEINLINE <span class="keywordtype">void</span> SkipUnescapedString(<a class="code" href="namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787">InsituStringStream</a>&amp; is) {</div>
+<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; <span class="keyword">static</span> RAPIDJSON_FORCEINLINE <span class="keywordtype">void</span> SkipUnescapedString(InsituStringStream&amp; is) {</div>
<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(is.src_ == is.dst_);</div>
<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <span class="keywordtype">char</span>* p = is.src_;</div>
<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160;</div>
@@ -1764,7 +1764,7 @@ $(document).ready(function(){initNavTree('reader_8h_source.html','');});
<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160;}; <span class="comment">// class GenericReader</span></div>
<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;<span class="comment">//! Reader with UTF8 encoding and default allocator.</span></div>
-<div class="line"><a name="l01677"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a4eaef42a208413d1f2c8d4655ecec52d"> 1677</a></span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_reader.html">GenericReader&lt;UTF8&lt;&gt;</a>, <a class="code" href="structrapidjson_1_1_u_t_f8.html">UTF8&lt;&gt;</a> &gt; <a class="code" href="namespacerapidjson.html#a4eaef42a208413d1f2c8d4655ecec52d">Reader</a>;</div>
+<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;<span class="comment"></span><span class="keyword">typedef</span> GenericReader&lt;UTF8&lt;&gt;, UTF8&lt;&gt; &gt; <a class="code" href="namespacerapidjson.html#ad5310edd1226f5b3ea82dc0d4d3740c6">Reader</a>;</div>
<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;</div>
<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160;RAPIDJSON_NAMESPACE_END</div>
<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160;</div>
@@ -1782,7 +1782,7 @@ $(document).ready(function(){initNavTree('reader_8h_source.html','');});
<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160;</div>
<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_READER_H_</span></div>
-<div class="ttc" id="structrapidjson_1_1_generic_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_string_stream.html">rapidjson::GenericStringStream</a></div><div class="ttdoc">Read-only string stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:645</div></div>
+<div class="ttc" id="structrapidjson_1_1_generic_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_string_stream.html">rapidjson::GenericStringStream</a></div><div class="ttdoc">Read-only string stream. </div><div class="ttdef"><b>Definition:</b> fwd.h:47</div></div>
<div class="ttc" id="namespacerapidjson_html_a81379eb4e94a0386d71d15fda882ebc9a7923686c8bdb7614699f1fb1bb615bb2"><div class="ttname"><a href="namespacerapidjson.html#a81379eb4e94a0386d71d15fda882ebc9a7923686c8bdb7614699f1fb1bb615bb2">rapidjson::kParseIterativeFlag</a></div><div class="ttdoc">Iterative(constant complexity in terms of function call stack size) parsing. </div><div class="ttdef"><b>Definition:</b> reader.h:146</div></div>
<div class="ttc" id="classrapidjson_1_1_handler_html"><div class="ttname"><a href="classrapidjson_1_1_handler.html">rapidjson::Handler</a></div><div class="ttdoc">Concept for receiving events from GenericReader upon parsing. The functions return true if no error o...</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_reader_html_ac9c540b77de19661f6f45e04b9b0937b"><div class="ttname"><a href="classrapidjson_1_1_generic_reader.html#ac9c540b77de19661f6f45e04b9b0937b">rapidjson::GenericReader::Parse</a></div><div class="ttdeci">ParseResult Parse(InputStream &amp;is, Handler &amp;handler)</div><div class="ttdoc">Parse JSON text. </div><div class="ttdef"><b>Definition:</b> reader.h:398</div></div>
@@ -1791,7 +1791,6 @@ $(document).ready(function(){initNavTree('reader_8h_source.html','');});
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60a636209a2e516fbdb4db5ad0a83a6b386"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a636209a2e516fbdb4db5ad0a83a6b386">rapidjson::kParseErrorStringUnicodeSurrogateInvalid</a></div><div class="ttdoc">The surrogate pair in string is invalid. </div><div class="ttdef"><b>Definition:</b> error.h:79</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gae3689840fa6e89a241313f33b602f865"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gae3689840fa6e89a241313f33b602f865">RAPIDJSON_PARSE_ERROR</a></div><div class="ttdeci">#define RAPIDJSON_PARSE_ERROR(parseErrorCode, offset)</div><div class="ttdoc">(Internal) macro to indicate and handle a parse error. </div><div class="ttdef"><b>Definition:</b> reader.h:115</div></div>
<div class="ttc" id="rapidjson_8h_html_aaee1245f375a71be1ac9b8a07ba5fb8f"><div class="ttname"><a href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a></div><div class="ttdeci">#define RAPIDJSON_UINT64_C2(high32, low32)</div><div class="ttdoc">Construct a 64-bit literal by a pair of 32-bit integer. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:288</div></div>
-<div class="ttc" id="classrapidjson_1_1_generic_reader_html"><div class="ttname"><a href="classrapidjson_1_1_generic_reader.html">rapidjson::GenericReader</a></div><div class="ttdoc">SAX-style JSON parser. Use Reader for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> reader.h:379</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60a58e952084a0dfdbc5630f624252aef5c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a58e952084a0dfdbc5630f624252aef5c">rapidjson::kParseErrorObjectMissColon</a></div><div class="ttdoc">Missing a colon after a name of object member. </div><div class="ttdef"><b>Definition:</b> error.h:73</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60a23c38bf88b8448555c0eb41e1735bd92"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a23c38bf88b8448555c0eb41e1735bd92">rapidjson::kParseErrorStringUnicodeEscapeInvalidHex</a></div><div class="ttdoc">Incorrect hex digit after \u escape in string. </div><div class="ttdef"><b>Definition:</b> error.h:78</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_reader_html_a46ded2951b8fa395ed421989d66e71fe"><div class="ttname"><a href="classrapidjson_1_1_generic_reader.html#a46ded2951b8fa395ed421989d66e71fe">rapidjson::GenericReader::HasParseError</a></div><div class="ttdeci">bool HasParseError() const </div><div class="ttdoc">Whether a parse error has occured in the last parsing. </div><div class="ttdef"><b>Definition:</b> reader.h:444</div></div>
@@ -1802,45 +1801,39 @@ $(document).ready(function(){initNavTree('reader_8h_source.html','');});
<div class="ttc" id="classrapidjson_1_1_generic_reader_html_ab907a36c410e96154c99797a6a0ce16d"><div class="ttname"><a href="classrapidjson_1_1_generic_reader.html#ab907a36c410e96154c99797a6a0ce16d">rapidjson::GenericReader::GetErrorOffset</a></div><div class="ttdeci">size_t GetErrorOffset() const </div><div class="ttdoc">Get the position of last parsing error in input, 0 otherwise. </div><div class="ttdef"><b>Definition:</b> reader.h:450</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_a17c9f7f81675283393222658d613000f"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#a17c9f7f81675283393222658d613000f">rapidjson::ParseResult::Clear</a></div><div class="ttdeci">void Clear()</div><div class="ttdoc">Reset error code. </div><div class="ttdef"><b>Definition:</b> error.h:128</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60a1a4ac97731f997e9591b40f98ecd9f93"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a1a4ac97731f997e9591b40f98ecd9f93">rapidjson::kParseErrorArrayMissCommaOrSquareBracket</a></div><div class="ttdoc">Missing a comma or &#39;]&#39; after an array element. </div><div class="ttdef"><b>Definition:</b> error.h:76</div></div>
+<div class="ttc" id="namespacerapidjson_html_ad5310edd1226f5b3ea82dc0d4d3740c6"><div class="ttname"><a href="namespacerapidjson.html#ad5310edd1226f5b3ea82dc0d4d3740c6">rapidjson::Reader</a></div><div class="ttdeci">GenericReader&lt; UTF8&lt; char &gt;, UTF8&lt; char &gt;, CrtAllocator &gt; Reader</div><div class="ttdoc">Reader with UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> fwd.h:88</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_reader_html_a0781d19e8c6bc044d9cc5f5d3dde287e"><div class="ttname"><a href="classrapidjson_1_1_generic_reader.html#a0781d19e8c6bc044d9cc5f5d3dde287e">rapidjson::GenericReader::Ch</a></div><div class="ttdeci">SourceEncoding::Ch Ch</div><div class="ttdoc">SourceEncoding character type. </div><div class="ttdef"><b>Definition:</b> reader.h:381</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60a2022599bcd4f64d58885a026f95751d5"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a2022599bcd4f64d58885a026f95751d5">rapidjson::kParseErrorDocumentRootNotSingular</a></div><div class="ttdoc">The document root must not follow by other values. </div><div class="ttdef"><b>Definition:</b> error.h:68</div></div>
-<div class="ttc" id="structrapidjson_1_1_generic_string_stream_html_a9a38a9d5b1ce782cacd4ec1bdf87fc2d"><div class="ttname"><a href="structrapidjson_1_1_generic_string_stream.html#a9a38a9d5b1ce782cacd4ec1bdf87fc2d">rapidjson::GenericStringStream::src_</a></div><div class="ttdeci">const Ch * src_</div><div class="ttdoc">Current read position. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:659</div></div>
+<div class="ttc" id="structrapidjson_1_1_generic_string_stream_html_a9a38a9d5b1ce782cacd4ec1bdf87fc2d"><div class="ttname"><a href="structrapidjson_1_1_generic_string_stream.html#a9a38a9d5b1ce782cacd4ec1bdf87fc2d">rapidjson::GenericStringStream::src_</a></div><div class="ttdeci">const Ch * src_</div><div class="ttdoc">Current read position. </div><div class="ttdef"><b>Definition:</b> stream.h:124</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_ga7f8c4265b2edda78568ae3338aaf1461"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga7f8c4265b2edda78568ae3338aaf1461">RAPIDJSON_PARSE_ERROR_NORETURN</a></div><div class="ttdeci">#define RAPIDJSON_PARSE_ERROR_NORETURN(parseErrorCode, offset)</div><div class="ttdoc">Macro to indicate a parse error. </div><div class="ttdef"><b>Definition:</b> reader.h:96</div></div>
<div class="ttc" id="namespacerapidjson_html_a81379eb4e94a0386d71d15fda882ebc9af2c7fa21e9e7656e467bd71079ac8fb0"><div class="ttname"><a href="namespacerapidjson.html#a81379eb4e94a0386d71d15fda882ebc9af2c7fa21e9e7656e467bd71079ac8fb0">rapidjson::kParseNoFlags</a></div><div class="ttdoc">No flags are set. </div><div class="ttdef"><b>Definition:</b> reader.h:143</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_ga5dc14176a9e71ace282404b0bcda57a1"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga5dc14176a9e71ace282404b0bcda57a1">RAPIDJSON_LIKELY</a></div><div class="ttdeci">#define RAPIDJSON_LIKELY(x)</div><div class="ttdoc">Compiler branching hint for expression with high probability to be true. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:424</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60a7abf1a337294d984a3f4d18b5843fb24"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a7abf1a337294d984a3f4d18b5843fb24">rapidjson::kParseErrorUnspecificSyntaxError</a></div><div class="ttdoc">Unspecific syntax error. </div><div class="ttdef"><b>Definition:</b> error.h:89</div></div>
<div class="ttc" id="error_8h_html"><div class="ttname"><a href="error_8h.html">error.h</a></div></div>
-<div class="ttc" id="namespacerapidjson_html_a5660e8e601d2719796bc86c3168a1787"><div class="ttname"><a href="namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787">rapidjson::InsituStringStream</a></div><div class="ttdeci">GenericInsituStringStream&lt; UTF8&lt;&gt; &gt; InsituStringStream</div><div class="ttdoc">Insitu string stream with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:710</div></div>
<div class="ttc" id="namespacerapidjson_html_a81379eb4e94a0386d71d15fda882ebc9adf80892cdfa076b2d1a7dd9530e15cb0"><div class="ttname"><a href="namespacerapidjson.html#a81379eb4e94a0386d71d15fda882ebc9adf80892cdfa076b2d1a7dd9530e15cb0">rapidjson::kParseFullPrecisionFlag</a></div><div class="ttdoc">Parse number in full precision (but slower). </div><div class="ttdef"><b>Definition:</b> reader.h:148</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60af7daa91caa53abb881ea231a874a4f40"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60af7daa91caa53abb881ea231a874a4f40">rapidjson::kParseErrorStringMissQuotationMark</a></div><div class="ttdoc">Missing a closing quotation mark in string. </div><div class="ttdef"><b>Definition:</b> error.h:81</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60a8dd0af5e6103a6503c61c38cb2b0bab9"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a8dd0af5e6103a6503c61c38cb2b0bab9">rapidjson::kParseErrorStringEscapeInvalid</a></div><div class="ttdoc">Invalid escape character in string. </div><div class="ttdef"><b>Definition:</b> error.h:80</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_structrapidjson_1_1_parse_result"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#structrapidjson_1_1_parse_result">rapidjson::ParseResult</a></div><div class="ttdoc">Result of parsing (wraps ParseErrorCode) </div><div class="ttdef"><b>Definition:</b> error.h:106</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60ab707b848425668e765def25554735242"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60ab707b848425668e765def25554735242">rapidjson::kParseErrorObjectMissName</a></div><div class="ttdoc">Missing a name for object member. </div><div class="ttdef"><b>Definition:</b> error.h:72</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:716</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:557</div></div>
<div class="ttc" id="namespacerapidjson_html_a81379eb4e94a0386d71d15fda882ebc9af84c60868704433b80aa51a62e042bb1"><div class="ttname"><a href="namespacerapidjson.html#a81379eb4e94a0386d71d15fda882ebc9af84c60868704433b80aa51a62e042bb1">rapidjson::kParseStopWhenDoneFlag</a></div><div class="ttdoc">After parsing a complete JSON root from stream, stop further processing the rest of stream...</div><div class="ttdef"><b>Definition:</b> reader.h:147</div></div>
-<div class="ttc" id="namespacerapidjson_html_ada4cef9931d4a3a0017ee776c907807b"><div class="ttname"><a href="namespacerapidjson.html#ada4cef9931d4a3a0017ee776c907807b">rapidjson::StringStream</a></div><div class="ttdeci">GenericStringStream&lt; UTF8&lt;&gt; &gt; StringStream</div><div class="ttdoc">String stream with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:669</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_ga6a2b1695c13e77ae425e3cbac980ccb5"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga6a2b1695c13e77ae425e3cbac980ccb5">RAPIDJSON_UNLIKELY</a></div><div class="ttdeci">#define RAPIDJSON_UNLIKELY(x)</div><div class="ttdoc">Compiler branching hint for expression with low probability to be true. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:437</div></div>
<div class="ttc" id="namespacerapidjson_html_a81379eb4e94a0386d71d15fda882ebc9a5640cb00db7814b7f22be3683dda9835"><div class="ttname"><a href="namespacerapidjson.html#a81379eb4e94a0386d71d15fda882ebc9a5640cb00db7814b7f22be3683dda9835">rapidjson::kParseDefaultFlags</a></div><div class="ttdoc">Default parse flags. Can be customized by defining RAPIDJSON_PARSE_DEFAULT_FLAGS. ...</div><div class="ttdef"><b>Definition:</b> reader.h:150</div></div>
<div class="ttc" id="namespacerapidjson_html_a81379eb4e94a0386d71d15fda882ebc9"><div class="ttname"><a href="namespacerapidjson.html#a81379eb4e94a0386d71d15fda882ebc9">rapidjson::ParseFlag</a></div><div class="ttdeci">ParseFlag</div><div class="ttdoc">Combination of parseFlags. </div><div class="ttdef"><b>Definition:</b> reader.h:142</div></div>
-<div class="ttc" id="classrapidjson_1_1_stream_html"><div class="ttname"><a href="classrapidjson_1_1_stream.html">rapidjson::Stream</a></div><div class="ttdoc">Concept for reading and writing characters. </div></div>
<div class="ttc" id="namespacerapidjson_html_a81379eb4e94a0386d71d15fda882ebc9ab5d719b36aac626135d5d622d0d837c1"><div class="ttname"><a href="namespacerapidjson.html#a81379eb4e94a0386d71d15fda882ebc9ab5d719b36aac626135d5d622d0d837c1">rapidjson::kParseCommentsFlag</a></div><div class="ttdoc">Allow one-line (//) and multi-line (/**/) comments. </div><div class="ttdef"><b>Definition:</b> reader.h:149</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60ab250f87c3d8454c579364b5a0f697a50"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60ab250f87c3d8454c579364b5a0f697a50">rapidjson::kParseErrorTermination</a></div><div class="ttdoc">Parsing was terminated. </div><div class="ttdef"><b>Definition:</b> error.h:88</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60a240cebadea89f7282ab263b5a22c9805"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a240cebadea89f7282ab263b5a22c9805">rapidjson::kParseErrorNumberTooBig</a></div><div class="ttdoc">Number too big to be stored in double. </div><div class="ttdef"><b>Definition:</b> error.h:84</div></div>
-<div class="ttc" id="structrapidjson_1_1_base_reader_handler_html"><div class="ttname"><a href="structrapidjson_1_1_base_reader_handler.html">rapidjson::BaseReaderHandler</a></div><div class="ttdoc">Default implementation of Handler. </div><div class="ttdef"><b>Definition:</b> reader.h:188</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60a28a1c720ae63560780ccd992dc999ab7"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a28a1c720ae63560780ccd992dc999ab7">rapidjson::kParseErrorNumberMissExponent</a></div><div class="ttdoc">Miss exponent in number. </div><div class="ttdef"><b>Definition:</b> error.h:86</div></div>
-<div class="ttc" id="rapidjson_8h_html"><div class="ttname"><a href="rapidjson_8h.html">rapidjson.h</a></div><div class="ttdoc">common definitions and configuration </div></div>
<div class="ttc" id="namespacerapidjson_html_a81379eb4e94a0386d71d15fda882ebc9a02748971d6ea0c5e22c69b8aa7f344ea"><div class="ttname"><a href="namespacerapidjson.html#a81379eb4e94a0386d71d15fda882ebc9a02748971d6ea0c5e22c69b8aa7f344ea">rapidjson::kParseInsituFlag</a></div><div class="ttdoc">In-situ(destructive) parsing. </div><div class="ttdef"><b>Definition:</b> reader.h:144</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_reader_html_a2bac14d193873d661d79ad000473a908"><div class="ttname"><a href="classrapidjson_1_1_generic_reader.html#a2bac14d193873d661d79ad000473a908">rapidjson::GenericReader::Parse</a></div><div class="ttdeci">ParseResult Parse(InputStream &amp;is, Handler &amp;handler)</div><div class="ttdoc">Parse JSON text (with kParseDefaultFlags) </div><div class="ttdef"><b>Definition:</b> reader.h:439</div></div>
-<div class="ttc" id="structrapidjson_1_1_u_t_f8_html"><div class="ttname"><a href="structrapidjson_1_1_u_t_f8.html">rapidjson::UTF8</a></div><div class="ttdoc">UTF-8 encoding. </div><div class="ttdef"><b>Definition:</b> encodings.h:96</div></div>
<div class="ttc" id="namespacerapidjson_html_a791735c27e073a70d720c2775ddf9568"><div class="ttname"><a href="namespacerapidjson.html#a791735c27e073a70d720c2775ddf9568">rapidjson::SkipWhitespace</a></div><div class="ttdeci">void SkipWhitespace(StringStream &amp;is)</div><div class="ttdoc">Template function specialization for StringStream. </div><div class="ttdef"><b>Definition:</b> reader.h:354</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_reader_html_a40fd326bad7d7033f096b549cbf159db"><div class="ttname"><a href="classrapidjson_1_1_generic_reader.html#a40fd326bad7d7033f096b549cbf159db">rapidjson::GenericReader::GetParseErrorCode</a></div><div class="ttdeci">ParseErrorCode GetParseErrorCode() const </div><div class="ttdoc">Get the ParseErrorCode of last parsing. </div><div class="ttdef"><b>Definition:</b> reader.h:447</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60a06183076357ebd9eca228666f614c286"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a06183076357ebd9eca228666f614c286">rapidjson::kParseErrorDocumentEmpty</a></div><div class="ttdoc">The document is empty. </div><div class="ttdef"><b>Definition:</b> error.h:67</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60a2a81a684f39fc882ec99f07e86343f73"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a2a81a684f39fc882ec99f07e86343f73">rapidjson::kParseErrorObjectMissCommaOrCurlyBracket</a></div><div class="ttdoc">Missing a comma or &#39;}&#39; after an object member. </div><div class="ttdef"><b>Definition:</b> error.h:74</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60a62ce0f5c74e4ab34ac325d2adda8fa8f"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a62ce0f5c74e4ab34ac325d2adda8fa8f">rapidjson::kParseErrorStringInvalidEncoding</a></div><div class="ttdoc">Invalid encoding in string. </div><div class="ttdef"><b>Definition:</b> error.h:82</div></div>
-<div class="ttc" id="namespacerapidjson_html_a4eaef42a208413d1f2c8d4655ecec52d"><div class="ttname"><a href="namespacerapidjson.html#a4eaef42a208413d1f2c8d4655ecec52d">rapidjson::Reader</a></div><div class="ttdeci">GenericReader&lt; UTF8&lt;&gt;, UTF8&lt;&gt; &gt; Reader</div><div class="ttdoc">Reader with UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> reader.h:1677</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_ga77005e892e6601599beaf421b0395c31"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga77005e892e6601599beaf421b0395c31">RAPIDJSON_PARSE_DEFAULT_FLAGS</a></div><div class="ttdeci">#define RAPIDJSON_PARSE_DEFAULT_FLAGS</div><div class="ttdoc">User-defined kParseDefaultFlags definition. </div><div class="ttdef"><b>Definition:</b> reader.h:136</div></div>
-<div class="ttc" id="structrapidjson_1_1_generic_insitu_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_insitu_string_stream.html">rapidjson::GenericInsituStringStream</a></div><div class="ttdoc">A read-write string stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:679</div></div>
+<div class="ttc" id="structrapidjson_1_1_generic_insitu_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_insitu_string_stream.html">rapidjson::GenericInsituStringStream</a></div><div class="ttdoc">A read-write string stream. </div><div class="ttdef"><b>Definition:</b> fwd.h:52</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.7-->
diff --git a/regex_8h_source.html b/regex_8h_source.html
index c1109d4f..4637d92f 100644
--- a/regex_8h_source.html
+++ b/regex_8h_source.html
@@ -105,666 +105,667 @@ $(document).ready(function(){initNavTree('regex_8h_source.html','');});
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_INTERNAL_REGEX_H_</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define RAPIDJSON_INTERNAL_REGEX_H_</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../rapidjson.h&quot;</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;stack.h&quot;</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#ifdef __clang__</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;RAPIDJSON_DIAG_PUSH</div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;RAPIDJSON_DIAG_OFF(padded)</div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;RAPIDJSON_DIAG_OFF(switch-enum)</div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;RAPIDJSON_DIAG_OFF(implicit-fallthrough)</div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#ifdef __GNUC__</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;RAPIDJSON_DIAG_PUSH</div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;RAPIDJSON_DIAG_OFF(effc++)</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_REGEX_VERBOSE</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#define RAPIDJSON_REGEX_VERBOSE 0</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;RAPIDJSON_NAMESPACE_BEGIN</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>internal {</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">///////////////////////////////////////////////////////////////////////////////</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"></span><span class="comment">// GenericRegex</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> kRegexInvalidState = ~<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a>(0); <span class="comment">//!&lt; Represents an invalid index in GenericRegex::State::out, out1</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"></span><span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> kRegexInvalidRange = ~<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a>(0);</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">//! Regular expression engine with subset of ECMAscript grammar.</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"></span><span class="comment">/*!</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> Supported regular expression syntax:</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> - \c ab Concatenation</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"> - \c a|b Alternation</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> - \c a? Zero or one</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> - \c a* Zero or more</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> - \c a+ One or more</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> - \c a{3} Exactly 3 times</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"> - \c a{3,} At least 3 times</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"> - \c a{3,5} 3 to 5 times</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment"> - \c (ab) Grouping</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"> - \c ^a At the beginning</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"> - \c a$ At the end</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment"> - \c . Any character</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"> - \c [abc] Character classes</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment"> - \c [a-c] Character class range</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment"> - \c [a-z0-9_] Character class combination</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment"> - \c [^abc] Negated character classes</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment"> - \c [^a-c] Negated character class range</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment"> - \c [\b] Backspace (U+0008)</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment"> - \c \\| \\\\ ... Escape characters</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment"> - \c \\f Form feed (U+000C)</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment"> - \c \\n Line feed (U+000A)</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment"> - \c \\r Carriage return (U+000D)</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment"> - \c \\t Tab (U+0009)</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment"> - \c \\v Vertical tab (U+000B)</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment"> \note This is a Thompson NFA engine, implemented with reference to </span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment"> Cox, Russ. &quot;Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby,...).&quot;, </span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment"> https://swtch.com/~rsc/regexp/regexp1.html </span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator = CrtAllocator&gt;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="keyword">class </span>GenericRegex {</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> Encoding::Ch Ch;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GenericRegex(<span class="keyword">const</span> Ch* source, Allocator* allocator = 0) : </div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; states_(allocator, 256), ranges_(allocator, 256), root_(kRegexInvalidState), stateCount_(), rangeCount_(), </div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; stateSet_(), state0_(allocator, 0), state1_(allocator, 0), anchorBegin_(), anchorEnd_()</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; {</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GenericStringStream&lt;Encoding&gt; ss(source);</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; DecodedStream&lt;GenericStringStream&lt;Encoding&gt; &gt; ds(ss);</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; Parse(ds);</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; ~GenericRegex() {</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; Allocator::Free(stateSet_);</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;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordtype">bool</span> IsValid()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> root_ != kRegexInvalidState;</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="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordtype">bool</span> Match(InputStream&amp; is)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">return</span> SearchWithAnchoring(is, <span class="keyword">true</span>, <span class="keyword">true</span>);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordtype">bool</span> Match(<span class="keyword">const</span> Ch* s)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GenericStringStream&lt;Encoding&gt; is(s);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">return</span> Match(is);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordtype">bool</span> Search(InputStream&amp; is)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">return</span> SearchWithAnchoring(is, anchorBegin_, anchorEnd_);</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordtype">bool</span> Search(<span class="keyword">const</span> Ch* s)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; GenericStringStream&lt;Encoding&gt; is(s);</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> Search(is);</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="keyword">private</span>:</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">enum</span> Operator {</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; kZeroOrOne,</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; kZeroOrMore,</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; kOneOrMore,</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; kConcatenation,</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; kAlternation,</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; kLeftParenthesis</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; };</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> kAnyCharacterClass = 0xFFFFFFFF; <span class="comment">//!&lt; For &#39;.&#39;</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment"></span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> kRangeCharacterClass = 0xFFFFFFFE;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> kRangeNegationFlag = 0x80000000;</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; <span class="keyword">struct </span>Range {</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordtype">unsigned</span> start; <span class="comment">// </span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordtype">unsigned</span> end;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> next;</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;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">struct </span>State {</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> out; <span class="comment">//!&lt; Equals to kInvalid for matching state</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> out1; <span class="comment">//!&lt; Equals to non-kInvalid for split</span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> rangeStart;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">unsigned</span> codepoint;</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; };</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">struct </span>Frag {</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; Frag(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> o, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> m) : start(s), out(o), minIndex(m) {}</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> start;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> out; <span class="comment">//!&lt; link-list of all output states</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> minIndex;</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;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> SourceStream&gt;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">class </span>DecodedStream {</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; DecodedStream(SourceStream&amp; ss) : ss_(ss), codepoint_() { Decode(); }</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordtype">unsigned</span> Peek() { <span class="keywordflow">return</span> codepoint_; }</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordtype">unsigned</span> Take() {</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordtype">unsigned</span> c = codepoint_;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">if</span> (c) <span class="comment">// No further decoding when &#39;\0&#39;</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; Decode();</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">return</span> c;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordtype">void</span> Decode() {</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">if</span> (!Encoding::Decode(ss_, &amp;codepoint_))</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; codepoint_ = 0;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</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; SourceStream&amp; ss_;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordtype">unsigned</span> codepoint_;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; };</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; State&amp; GetState(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> index) {</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(index &lt; stateCount_);</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> states_.template Bottom&lt;State&gt;()[index];</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">const</span> State&amp; GetState(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> index)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(index &lt; stateCount_);</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">return</span> states_.template Bottom&lt;State&gt;()[index];</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; }</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; Range&amp; GetRange(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> index) {</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(index &lt; rangeCount_);</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">return</span> ranges_.template Bottom&lt;Range&gt;()[index];</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">const</span> Range&amp; GetRange(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> index)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(index &lt; rangeCount_);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> ranges_.template Bottom&lt;Range&gt;()[index];</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordtype">void</span> Parse(DecodedStream&lt;InputStream&gt;&amp; ds) {</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; Allocator allocator;</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; Stack&lt;Allocator&gt; operandStack(&amp;allocator, 256); <span class="comment">// Frag</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; Stack&lt;Allocator&gt; operatorStack(&amp;allocator, 256); <span class="comment">// Operator</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; Stack&lt;Allocator&gt; atomCountStack(&amp;allocator, 256); <span class="comment">// unsigned (Atom per parenthesis)</span></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; *atomCountStack.template Push&lt;unsigned&gt;() = 0;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordtype">unsigned</span> codepoint;</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">while</span> (ds.Peek() != 0) {</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">switch</span> (codepoint = ds.Take()) {</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;^&#39;</span>:</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; anchorBegin_ = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;$&#39;</span>:</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; anchorEnd_ = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;|&#39;</span>:</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">while</span> (!operatorStack.Empty() &amp;&amp; *operatorStack.template Top&lt;Operator&gt;() &lt; kAlternation)</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">if</span> (!Eval(operandStack, *operatorStack.template Pop&lt;Operator&gt;(1)))</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; *operatorStack.template Push&lt;Operator&gt;() = kAlternation;</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; *atomCountStack.template Top&lt;unsigned&gt;() = 0;</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;(&#39;</span>:</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; *operatorStack.template Push&lt;Operator&gt;() = kLeftParenthesis;</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; *atomCountStack.template Push&lt;unsigned&gt;() = 0;</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;)&#39;</span>:</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">while</span> (!operatorStack.Empty() &amp;&amp; *operatorStack.template Top&lt;Operator&gt;() != kLeftParenthesis)</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span> (!Eval(operandStack, *operatorStack.template Pop&lt;Operator&gt;(1)))</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">if</span> (operatorStack.Empty())</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; operatorStack.template Pop&lt;Operator&gt;(1);</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; atomCountStack.template Pop&lt;unsigned&gt;(1);</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; ImplicitConcatenation(atomCountStack, operatorStack);</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">break</span>;</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; <span class="keywordflow">case</span> <span class="charliteral">&#39;?&#39;</span>:</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">if</span> (!Eval(operandStack, kZeroOrOne))</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">break</span>;</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="keywordflow">case</span> <span class="charliteral">&#39;*&#39;</span>:</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">if</span> (!Eval(operandStack, kZeroOrMore))</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">break</span>;</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; <span class="keywordflow">case</span> <span class="charliteral">&#39;+&#39;</span>:</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">if</span> (!Eval(operandStack, kOneOrMore))</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">break</span>;</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="keywordflow">case</span> <span class="charliteral">&#39;{&#39;</span>:</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; {</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordtype">unsigned</span> n, m;</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">if</span> (!ParseUnsigned(ds, &amp;n) || n == 0)</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">if</span> (ds.Peek() == <span class="charliteral">&#39;,&#39;</span>) {</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; ds.Take();</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">if</span> (ds.Peek() == <span class="charliteral">&#39;}&#39;</span>)</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; m = 0;</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!ParseUnsigned(ds, &amp;m) || m &lt; n)</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">return</span>;</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="keywordflow">else</span></div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; m = n;</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">if</span> (!EvalQuantifier(operandStack, n, m) || ds.Peek() != <span class="charliteral">&#39;}&#39;</span>)</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; ds.Take();</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; }</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;.&#39;</span>:</div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; PushOperand(operandStack, kAnyCharacterClass);</div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; ImplicitConcatenation(atomCountStack, operatorStack);</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;[&#39;</span>:</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; {</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> range;</div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">if</span> (!ParseRange(ds, &amp;range))</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s = NewState(kRegexInvalidState, kRegexInvalidState, kRangeCharacterClass);</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; GetState(s).rangeStart = range;</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(s, s, s);</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; }</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; ImplicitConcatenation(atomCountStack, operatorStack);</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;\\&#39;</span>: <span class="comment">// Escape character</span></div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">if</span> (!CharacterEscape(ds, &amp;codepoint))</div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">return</span>; <span class="comment">// Unsupported escape character</span></div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="comment">// fall through to default</span></div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">default</span>: <span class="comment">// Pattern character</span></div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; PushOperand(operandStack, codepoint);</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; ImplicitConcatenation(atomCountStack, operatorStack);</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; }</div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; }</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">while</span> (!operatorStack.Empty())</div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">if</span> (!Eval(operandStack, *operatorStack.template Pop&lt;Operator&gt;(1)))</div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="comment">// Link the operand to matching state.</span></div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() == <span class="keyword">sizeof</span>(Frag)) {</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; Frag* e = operandStack.template Pop&lt;Frag&gt;(1);</div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; Patch(e-&gt;out, NewState(kRegexInvalidState, kRegexInvalidState, 0));</div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; root_ = e-&gt;start;</div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;</div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="preprocessor">#if RAPIDJSON_REGEX_VERBOSE</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; printf(<span class="stringliteral">&quot;root: %d\n&quot;</span>, root_);</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> i = 0; i &lt; stateCount_ ; i++) {</div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; State&amp; s = GetState(i);</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; printf(<span class="stringliteral">&quot;[%2d] out: %2d out1: %2d c: &#39;%c&#39;\n&quot;</span>, i, s.out, s.out1, (<span class="keywordtype">char</span>)s.codepoint);</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; }</div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; printf(<span class="stringliteral">&quot;\n&quot;</span>);</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="preprocessor">#endif</span></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"> 325</span>&#160; <span class="comment">// Preallocate buffer for SearchWithAnchoring()</span></div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(stateSet_ == 0);</div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">if</span> (stateCount_ &gt; 0) {</div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; stateSet_ = <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span>*<span class="keyword">&gt;</span>(states_.GetAllocator().Malloc(GetStateSetSize()));</div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; state0_.template Reserve&lt;SizeType&gt;(stateCount_);</div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; state1_.template Reserve&lt;SizeType&gt;(stateCount_);</div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; }</div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; }</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; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> NewState(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> out, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> out1, <span class="keywordtype">unsigned</span> codepoint) {</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; State* s = states_.template Push&lt;State&gt;();</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; s-&gt;out = out;</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; s-&gt;out1 = out1;</div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; s-&gt;codepoint = codepoint;</div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; s-&gt;rangeStart = kRegexInvalidRange;</div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">return</span> stateCount_++;</div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; }</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="keywordtype">void</span> PushOperand(Stack&lt;Allocator&gt;&amp; operandStack, <span class="keywordtype">unsigned</span> codepoint) {</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s = NewState(kRegexInvalidState, kRegexInvalidState, codepoint);</div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(s, s, s);</div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; }</div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordtype">void</span> ImplicitConcatenation(Stack&lt;Allocator&gt;&amp; atomCountStack, Stack&lt;Allocator&gt;&amp; operatorStack) {</div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">if</span> (*atomCountStack.template Top&lt;unsigned&gt;())</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; *operatorStack.template Push&lt;Operator&gt;() = kConcatenation;</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; (*atomCountStack.template Top&lt;unsigned&gt;())++;</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; }</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; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> Append(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> l1, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> l2) {</div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> old = l1;</div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">while</span> (GetState(l1).out != kRegexInvalidState)</div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; l1 = GetState(l1).out;</div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; GetState(l1).out = l2;</div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">return</span> old;</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"> 361</span>&#160;</div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordtype">void</span> Patch(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> l, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s) {</div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> next; l != kRegexInvalidState; l = next) {</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; next = GetState(l).out;</div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; GetState(l).out = s;</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"> 367</span>&#160; }</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordtype">bool</span> Eval(Stack&lt;Allocator&gt;&amp; operandStack, Operator op) {</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">switch</span> (op) {</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">case</span> kConcatenation:</div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() &gt;= <span class="keyword">sizeof</span>(Frag) * 2) {</div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; Frag e2 = *operandStack.template Pop&lt;Frag&gt;(1);</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; Frag e1 = *operandStack.template Pop&lt;Frag&gt;(1);</div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; Patch(e1.out, e2.start);</div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(e1.start, e2.out, Min(e1.minIndex, e2.minIndex));</div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</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"> 379</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">case</span> kAlternation:</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() &gt;= <span class="keyword">sizeof</span>(Frag) * 2) {</div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; Frag e2 = *operandStack.template Pop&lt;Frag&gt;(1);</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; Frag e1 = *operandStack.template Pop&lt;Frag&gt;(1);</div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s = NewState(e1.start, e2.start, 0);</div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(s, Append(e1.out, e2.out), Min(e1.minIndex, e2.minIndex));</div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">case</span> kZeroOrOne:</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() &gt;= <span class="keyword">sizeof</span>(Frag)) {</div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; Frag e = *operandStack.template Pop&lt;Frag&gt;(1);</div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s = NewState(kRegexInvalidState, e.start, 0);</div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(s, Append(e.out, s), e.minIndex);</div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; }</div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">case</span> kZeroOrMore:</div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() &gt;= <span class="keyword">sizeof</span>(Frag)) {</div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; Frag e = *operandStack.template Pop&lt;Frag&gt;(1);</div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s = NewState(kRegexInvalidState, e.start, 0);</div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; Patch(e.out, s);</div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(s, s, e.minIndex);</div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; }</div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;</div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">case</span> kOneOrMore:</div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() &gt;= <span class="keyword">sizeof</span>(Frag)) {</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; Frag e = *operandStack.template Pop&lt;Frag&gt;(1);</div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s = NewState(kRegexInvalidState, e.start, 0);</div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; Patch(e.out, s);</div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(e.start, s, e.minIndex);</div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; }</div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;</div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">default</span>:</div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; }</div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; }</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; <span class="keywordtype">bool</span> EvalQuantifier(Stack&lt;Allocator&gt;&amp; operandStack, <span class="keywordtype">unsigned</span> n, <span class="keywordtype">unsigned</span> m) {</div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(n &gt; 0);</div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(m == 0 || n &lt;= m); <span class="comment">// m == 0 means infinity</span></div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() &lt; <span class="keyword">sizeof</span>(Frag))</div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;</div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i &lt; n - 1; i++) <span class="comment">// a{3} -&gt; a a a</span></div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; CloneTopOperand(operandStack);</div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;</div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">if</span> (m == 0)</div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; Eval(operandStack, kOneOrMore); <span class="comment">// a{3,} -&gt; a a a+</span></div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (m &gt; n) {</div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; CloneTopOperand(operandStack); <span class="comment">// a{3,5} -&gt; a a a a</span></div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; Eval(operandStack, kZeroOrOne); <span class="comment">// a{3,5} -&gt; a a a a?</span></div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = n; i &lt; m - 1; i++)</div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; CloneTopOperand(operandStack); <span class="comment">// a{3,5} -&gt; a a a a? a?</span></div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = n; i &lt; m; i++)</div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; Eval(operandStack, kConcatenation); <span class="comment">// a{3,5} -&gt; a a aa?a?</span></div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; }</div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;</div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i &lt; n - 1; i++)</div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; Eval(operandStack, kConcatenation); <span class="comment">// a{3} -&gt; aaa, a{3,} -&gt; aaa+, a{3.5} -&gt; aaaa?a?</span></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">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; }</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; <span class="keyword">static</span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> Min(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> a, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> b) { <span class="keywordflow">return</span> a &lt; b ? a : b; }</div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;</div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordtype">void</span> CloneTopOperand(Stack&lt;Allocator&gt;&amp; operandStack) {</div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keyword">const</span> Frag *src = operandStack.template Top&lt;Frag&gt;();</div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> count = stateCount_ - src-&gt;minIndex; <span class="comment">// Assumes top operand contains states in [src-&gt;minIndex, stateCount_)</span></div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; State* s = states_.template Push&lt;State&gt;(count);</div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; memcpy(s, &amp;GetState(src-&gt;minIndex), count * <span class="keyword">sizeof</span>(State));</div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> j = 0; j &lt; count; j++) {</div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">if</span> (s[j].out != kRegexInvalidState)</div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; s[j].out += count;</div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">if</span> (s[j].out1 != kRegexInvalidState)</div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; s[j].out1 += count;</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; }</div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(src-&gt;start + count, src-&gt;out + count, src-&gt;minIndex + count);</div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; stateCount_ += count;</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"> 467</span>&#160;</div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordtype">bool</span> ParseUnsigned(DecodedStream&lt;InputStream&gt;&amp; ds, <span class="keywordtype">unsigned</span>* u) {</div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordtype">unsigned</span> r = 0;</div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordflow">while</span> (ds.Peek() &gt;= <span class="charliteral">&#39;0&#39;</span> &amp;&amp; ds.Peek() &lt;= <span class="charliteral">&#39;9&#39;</span>) {</div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordflow">if</span> (r &gt;= 429496729 &amp;&amp; ds.Peek() &gt; <span class="charliteral">&#39;5&#39;</span>) <span class="comment">// 2^32 - 1 = 4294967295</span></div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// overflow</span></div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; r = r * 10 + (ds.Take() - <span class="charliteral">&#39;0&#39;</span>);</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"> 476</span>&#160; *u = r;</div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; }</div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;</div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordtype">bool</span> ParseRange(DecodedStream&lt;InputStream&gt;&amp; ds, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a>* range) {</div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordtype">bool</span> isBegin = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordtype">bool</span> negate = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordtype">int</span> step = 0;</div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> start = kRegexInvalidRange;</div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> current = kRegexInvalidRange;</div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordtype">unsigned</span> codepoint;</div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordflow">while</span> ((codepoint = ds.Take()) != 0) {</div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">if</span> (isBegin) {</div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; isBegin = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">if</span> (codepoint == <span class="charliteral">&#39;^&#39;</span>) {</div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; negate = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">continue</span>;</div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; }</div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; }</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordflow">switch</span> (codepoint) {</div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;]&#39;</span>:</div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordflow">if</span> (start == kRegexInvalidRange)</div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// Error: nothing inside []</span></div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">if</span> (step == 2) { <span class="comment">// Add trailing &#39;-&#39;</span></div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> r = NewRange(<span class="charliteral">&#39;-&#39;</span>);</div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(current != kRegexInvalidRange);</div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; GetRange(current).next = r;</div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; }</div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">if</span> (negate)</div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; GetRange(start).start |= kRangeNegationFlag;</div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; *range = start;</div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;\\&#39;</span>:</div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordflow">if</span> (ds.Peek() == <span class="charliteral">&#39;b&#39;</span>) {</div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; ds.Take();</div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; codepoint = 0x0008; <span class="comment">// Escape backspace character</span></div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; }</div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!CharacterEscape(ds, &amp;codepoint))</div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="comment">// fall through to default</span></div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;</div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keywordflow">default</span>:</div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordflow">switch</span> (step) {</div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="keywordflow">case</span> 1:</div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordflow">if</span> (codepoint == <span class="charliteral">&#39;-&#39;</span>) {</div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; step++;</div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keywordflow">break</span>;</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="comment">// fall through to step 0 for other characters</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; <span class="keywordflow">case</span> 0:</div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; {</div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> r = NewRange(codepoint);</div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordflow">if</span> (current != kRegexInvalidRange)</div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; GetRange(current).next = r;</div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keywordflow">if</span> (start == kRegexInvalidRange)</div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; start = r;</div>
-<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; current = r;</div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; }</div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; step = 1;</div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;</div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keywordflow">default</span>:</div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(step == 2);</div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; GetRange(current).end = codepoint;</div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; step = 0;</div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; }</div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; }</div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; }</div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; }</div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; </div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> NewRange(<span class="keywordtype">unsigned</span> codepoint) {</div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; Range* r = ranges_.template Push&lt;Range&gt;();</div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; r-&gt;start = r-&gt;end = codepoint;</div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; r-&gt;next = kRegexInvalidRange;</div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">return</span> rangeCount_++;</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;</div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordtype">bool</span> CharacterEscape(DecodedStream&lt;InputStream&gt;&amp; ds, <span class="keywordtype">unsigned</span>* escapedCodepoint) {</div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordtype">unsigned</span> codepoint;</div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordflow">switch</span> (codepoint = ds.Take()) {</div>
-<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;^&#39;</span>:</div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;$&#39;</span>:</div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;|&#39;</span>:</div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;(&#39;</span>:</div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;)&#39;</span>:</div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;?&#39;</span>:</div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;*&#39;</span>:</div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;+&#39;</span>:</div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;.&#39;</span>:</div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;[&#39;</span>:</div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;]&#39;</span>:</div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;{&#39;</span>:</div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;}&#39;</span>:</div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;\\&#39;</span>:</div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; *escapedCodepoint = codepoint; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;f&#39;</span>: *escapedCodepoint = 0x000C; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;n&#39;</span>: *escapedCodepoint = 0x000A; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;r&#39;</span>: *escapedCodepoint = 0x000D; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;t&#39;</span>: *escapedCodepoint = 0x0009; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;v&#39;</span>: *escapedCodepoint = 0x000B; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">default</span>:</div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// Unsupported escape character</span></div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; }</div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; }</div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;</div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="keywordtype">bool</span> SearchWithAnchoring(InputStream&amp; is, <span class="keywordtype">bool</span> anchorBegin, <span class="keywordtype">bool</span> anchorEnd)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(IsValid());</div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; DecodedStream&lt;InputStream&gt; ds(is);</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"> 592</span>&#160; state0_.Clear();</div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; Stack&lt;Allocator&gt; *current = &amp;state0_, *next = &amp;state1_;</div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> stateSetSize = GetStateSetSize();</div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; std::memset(stateSet_, 0, stateSetSize);</div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;</div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="keywordtype">bool</span> matched = AddState(*current, root_);</div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="keywordtype">unsigned</span> codepoint;</div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordflow">while</span> (!current-&gt;Empty() &amp;&amp; (codepoint = ds.Take()) != 0) {</div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; std::memset(stateSet_, 0, stateSetSize);</div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; next-&gt;Clear();</div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; matched = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a>* s = current-&gt;template Bottom&lt;SizeType&gt;(); s != current-&gt;template End&lt;SizeType&gt;(); ++s) {</div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="keyword">const</span> State&amp; sr = GetState(*s);</div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="keywordflow">if</span> (sr.codepoint == codepoint ||</div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; sr.codepoint == kAnyCharacterClass || </div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; (sr.codepoint == kRangeCharacterClass &amp;&amp; MatchRange(sr.rangeStart, codepoint)))</div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; {</div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; matched = AddState(*next, sr.out) || matched;</div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <span class="keywordflow">if</span> (!anchorEnd &amp;&amp; matched)</div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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">if</span> (!anchorBegin)</div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; AddState(*next, root_);</div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; }</div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; internal::Swap(current, next);</div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; }</div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;</div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="keywordflow">return</span> matched;</div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; }</div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;</div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="keywordtype">size_t</span> GetStateSetSize()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="keywordflow">return</span> (stateCount_ + 31) / 32 * 4;</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="comment">// Return whether the added states is a match state</span></div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="keywordtype">bool</span> AddState(Stack&lt;Allocator&gt;&amp; l, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> index)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keywordflow">if</span> (index == kRegexInvalidState)</div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;</div>
-<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="keyword">const</span> State&amp; s = GetState(index);</div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <span class="keywordflow">if</span> (s.out1 != kRegexInvalidState) { <span class="comment">// Split</span></div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="keywordtype">bool</span> matched = AddState(l, s.out);</div>
-<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <span class="keywordflow">return</span> AddState(l, s.out1) || matched;</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"> 636</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!(stateSet_[index &gt;&gt; 5] &amp; (1 &lt;&lt; (index &amp; 31)))) {</div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; stateSet_[index &gt;&gt; 5] |= (1 &lt;&lt; (index &amp; 31));</div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; *l.template PushUnsafe&lt;SizeType&gt;() = index;</div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; }</div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <span class="keywordflow">return</span> s.out == kRegexInvalidState; <span class="comment">// by using PushUnsafe() above, we can ensure s is not validated due to reallocation.</span></div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; }</div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;</div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="keywordtype">bool</span> MatchRange(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> rangeIndex, <span class="keywordtype">unsigned</span> codepoint)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="keywordtype">bool</span> yes = (GetRange(rangeIndex).start &amp; kRangeNegationFlag) == 0;</div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">while</span> (rangeIndex != kRegexInvalidRange) {</div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="keyword">const</span> Range&amp; r = GetRange(rangeIndex);</div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keywordflow">if</span> (codepoint &gt;= (r.start &amp; ~kRangeNegationFlag) &amp;&amp; codepoint &lt;= r.end)</div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="keywordflow">return</span> yes;</div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; rangeIndex = r.next;</div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; }</div>
-<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="keywordflow">return</span> !yes;</div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; }</div>
-<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;</div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; Stack&lt;Allocator&gt; states_;</div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; Stack&lt;Allocator&gt; ranges_;</div>
-<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> root_;</div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> stateCount_;</div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> rangeCount_;</div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;</div>
-<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="comment">// For SearchWithAnchoring()</span></div>
-<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; uint32_t* stateSet_; <span class="comment">// allocated by states_.GetAllocator()</span></div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <span class="keyword">mutable</span> Stack&lt;Allocator&gt; state0_;</div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keyword">mutable</span> Stack&lt;Allocator&gt; state1_;</div>
-<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="keywordtype">bool</span> anchorBegin_;</div>
-<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="keywordtype">bool</span> anchorEnd_;</div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;};</div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;</div>
-<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;<span class="keyword">typedef</span> GenericRegex&lt;UTF8&lt;&gt; &gt; Regex;</div>
-<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;</div>
-<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;} <span class="comment">// namespace internal</span></div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;RAPIDJSON_NAMESPACE_END</div>
-<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;</div>
-<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;<span class="preprocessor">#ifdef __clang__</span></div>
-<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;RAPIDJSON_DIAG_POP</div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;<span class="preprocessor">#endif</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;<span class="preprocessor">#endif // RAPIDJSON_INTERNAL_REGEX_H_</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../allocators.h&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../stream.h&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;stack.h&quot;</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"> 22</span>&#160;<span class="preprocessor">#ifdef __clang__</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;RAPIDJSON_DIAG_PUSH</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;RAPIDJSON_DIAG_OFF(padded)</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;RAPIDJSON_DIAG_OFF(switch-enum)</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;RAPIDJSON_DIAG_OFF(implicit-fallthrough)</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifdef __GNUC__</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;RAPIDJSON_DIAG_PUSH</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;RAPIDJSON_DIAG_OFF(effc++)</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_REGEX_VERBOSE</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#define RAPIDJSON_REGEX_VERBOSE 0</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;RAPIDJSON_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span>internal {</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">///////////////////////////////////////////////////////////////////////////////</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"></span><span class="comment">// GenericRegex</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> kRegexInvalidState = ~<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a>(0); <span class="comment">//!&lt; Represents an invalid index in GenericRegex::State::out, out1</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"></span><span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> kRegexInvalidRange = ~<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a>(0);</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">//! Regular expression engine with subset of ECMAscript grammar.</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"></span><span class="comment">/*!</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> Supported regular expression syntax:</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"> - \c ab Concatenation</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> - \c a|b Alternation</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> - \c a? Zero or one</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> - \c a* Zero or more</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> - \c a+ One or more</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"> - \c a{3} Exactly 3 times</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"> - \c a{3,} At least 3 times</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment"> - \c a{3,5} 3 to 5 times</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"> - \c (ab) Grouping</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"> - \c ^a At the beginning</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment"> - \c a$ At the end</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"> - \c . Any character</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment"> - \c [abc] Character classes</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment"> - \c [a-c] Character class range</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment"> - \c [a-z0-9_] Character class combination</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment"> - \c [^abc] Negated character classes</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment"> - \c [^a-c] Negated character class range</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment"> - \c [\b] Backspace (U+0008)</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment"> - \c \\| \\\\ ... Escape characters</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment"> - \c \\f Form feed (U+000C)</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment"> - \c \\n Line feed (U+000A)</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment"> - \c \\r Carriage return (U+000D)</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment"> - \c \\t Tab (U+0009)</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment"> - \c \\v Vertical tab (U+000B)</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment"> \note This is a Thompson NFA engine, implemented with reference to </span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment"> Cox, Russ. &quot;Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby,...).&quot;, </span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment"> https://swtch.com/~rsc/regexp/regexp1.html </span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator = CrtAllocator&gt;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="keyword">class </span>GenericRegex {</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> Encoding::Ch Ch;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; GenericRegex(<span class="keyword">const</span> Ch* source, Allocator* allocator = 0) : </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; states_(allocator, 256), ranges_(allocator, 256), root_(kRegexInvalidState), stateCount_(), rangeCount_(), </div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; stateSet_(), state0_(allocator, 0), state1_(allocator, 0), anchorBegin_(), anchorEnd_()</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GenericStringStream&lt;Encoding&gt; ss(source);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; DecodedStream&lt;GenericStringStream&lt;Encoding&gt; &gt; ds(ss);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; Parse(ds);</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; ~GenericRegex() {</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; Allocator::Free(stateSet_);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordtype">bool</span> IsValid()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> root_ != kRegexInvalidState;</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;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordtype">bool</span> Match(InputStream&amp; is)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> SearchWithAnchoring(is, <span class="keyword">true</span>, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</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="keywordtype">bool</span> Match(<span class="keyword">const</span> Ch* s)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GenericStringStream&lt;Encoding&gt; is(s);</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> Match(is);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordtype">bool</span> Search(InputStream&amp; is)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> SearchWithAnchoring(is, anchorBegin_, anchorEnd_);</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordtype">bool</span> Search(<span class="keyword">const</span> Ch* s)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; GenericStringStream&lt;Encoding&gt; is(s);</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> Search(is);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">enum</span> Operator {</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; kZeroOrOne,</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; kZeroOrMore,</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; kOneOrMore,</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; kConcatenation,</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; kAlternation,</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; kLeftParenthesis</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; };</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> kAnyCharacterClass = 0xFFFFFFFF; <span class="comment">//!&lt; For &#39;.&#39;</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment"></span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> kRangeCharacterClass = 0xFFFFFFFE;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> kRangeNegationFlag = 0x80000000;</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">struct </span>Range {</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordtype">unsigned</span> start; <span class="comment">// </span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordtype">unsigned</span> end;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> next;</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; };</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="keyword">struct </span>State {</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> out; <span class="comment">//!&lt; Equals to kInvalid for matching state</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> out1; <span class="comment">//!&lt; Equals to non-kInvalid for split</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> rangeStart;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">unsigned</span> codepoint;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; };</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">struct </span>Frag {</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; Frag(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> o, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> m) : start(s), out(o), minIndex(m) {}</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> start;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> out; <span class="comment">//!&lt; link-list of all output states</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> minIndex;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; };</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"> 155</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> SourceStream&gt;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">class </span>DecodedStream {</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; DecodedStream(SourceStream&amp; ss) : ss_(ss), codepoint_() { Decode(); }</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordtype">unsigned</span> Peek() { <span class="keywordflow">return</span> codepoint_; }</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordtype">unsigned</span> Take() {</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordtype">unsigned</span> c = codepoint_;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">if</span> (c) <span class="comment">// No further decoding when &#39;\0&#39;</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; Decode();</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> c;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</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"> 167</span>&#160; <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordtype">void</span> Decode() {</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">if</span> (!Encoding::Decode(ss_, &amp;codepoint_))</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; codepoint_ = 0;</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;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; SourceStream&amp; ss_;</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordtype">unsigned</span> codepoint_;</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;</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; State&amp; GetState(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> index) {</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(index &lt; stateCount_);</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">return</span> states_.template Bottom&lt;State&gt;()[index];</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">const</span> State&amp; GetState(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> index)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(index &lt; stateCount_);</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span> states_.template Bottom&lt;State&gt;()[index];</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</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; Range&amp; GetRange(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> index) {</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(index &lt; rangeCount_);</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">return</span> ranges_.template Bottom&lt;Range&gt;()[index];</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">const</span> Range&amp; GetRange(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> index)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(index &lt; rangeCount_);</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">return</span> ranges_.template Bottom&lt;Range&gt;()[index];</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; }</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordtype">void</span> Parse(DecodedStream&lt;InputStream&gt;&amp; ds) {</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; Allocator allocator;</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; Stack&lt;Allocator&gt; operandStack(&amp;allocator, 256); <span class="comment">// Frag</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; Stack&lt;Allocator&gt; operatorStack(&amp;allocator, 256); <span class="comment">// Operator</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; Stack&lt;Allocator&gt; atomCountStack(&amp;allocator, 256); <span class="comment">// unsigned (Atom per parenthesis)</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; *atomCountStack.template Push&lt;unsigned&gt;() = 0;</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; <span class="keywordtype">unsigned</span> codepoint;</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">while</span> (ds.Peek() != 0) {</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">switch</span> (codepoint = ds.Take()) {</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;^&#39;</span>:</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; anchorBegin_ = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;$&#39;</span>:</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; anchorEnd_ = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;|&#39;</span>:</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">while</span> (!operatorStack.Empty() &amp;&amp; *operatorStack.template Top&lt;Operator&gt;() &lt; kAlternation)</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">if</span> (!Eval(operandStack, *operatorStack.template Pop&lt;Operator&gt;(1)))</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; *operatorStack.template Push&lt;Operator&gt;() = kAlternation;</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; *atomCountStack.template Top&lt;unsigned&gt;() = 0;</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;(&#39;</span>:</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; *operatorStack.template Push&lt;Operator&gt;() = kLeftParenthesis;</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; *atomCountStack.template Push&lt;unsigned&gt;() = 0;</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;)&#39;</span>:</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">while</span> (!operatorStack.Empty() &amp;&amp; *operatorStack.template Top&lt;Operator&gt;() != kLeftParenthesis)</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">if</span> (!Eval(operandStack, *operatorStack.template Pop&lt;Operator&gt;(1)))</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">if</span> (operatorStack.Empty())</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; operatorStack.template Pop&lt;Operator&gt;(1);</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; atomCountStack.template Pop&lt;unsigned&gt;(1);</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; ImplicitConcatenation(atomCountStack, operatorStack);</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;?&#39;</span>:</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">if</span> (!Eval(operandStack, kZeroOrOne))</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;*&#39;</span>:</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">if</span> (!Eval(operandStack, kZeroOrMore))</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;+&#39;</span>:</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">if</span> (!Eval(operandStack, kOneOrMore))</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;{&#39;</span>:</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; {</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordtype">unsigned</span> n, m;</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">if</span> (!ParseUnsigned(ds, &amp;n) || n == 0)</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">if</span> (ds.Peek() == <span class="charliteral">&#39;,&#39;</span>) {</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; ds.Take();</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">if</span> (ds.Peek() == <span class="charliteral">&#39;}&#39;</span>)</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; m = 0;</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!ParseUnsigned(ds, &amp;m) || m &lt; n)</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; }</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; m = n;</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">if</span> (!EvalQuantifier(operandStack, n, m) || ds.Peek() != <span class="charliteral">&#39;}&#39;</span>)</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; ds.Take();</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">break</span>;</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; <span class="keywordflow">case</span> <span class="charliteral">&#39;.&#39;</span>:</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; PushOperand(operandStack, kAnyCharacterClass);</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; ImplicitConcatenation(atomCountStack, operatorStack);</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;[&#39;</span>:</div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; {</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> range;</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">if</span> (!ParseRange(ds, &amp;range))</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s = NewState(kRegexInvalidState, kRegexInvalidState, kRangeCharacterClass);</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; GetState(s).rangeStart = range;</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(s, s, s);</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; }</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; ImplicitConcatenation(atomCountStack, operatorStack);</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;\\&#39;</span>: <span class="comment">// Escape character</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">if</span> (!CharacterEscape(ds, &amp;codepoint))</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">return</span>; <span class="comment">// Unsupported escape character</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="comment">// fall through to default</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">default</span>: <span class="comment">// Pattern character</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; PushOperand(operandStack, codepoint);</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; ImplicitConcatenation(atomCountStack, operatorStack);</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; }</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">while</span> (!operatorStack.Empty())</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">if</span> (!Eval(operandStack, *operatorStack.template Pop&lt;Operator&gt;(1)))</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="comment">// Link the operand to matching state.</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() == <span class="keyword">sizeof</span>(Frag)) {</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; Frag* e = operandStack.template Pop&lt;Frag&gt;(1);</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; Patch(e-&gt;out, NewState(kRegexInvalidState, kRegexInvalidState, 0));</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; root_ = e-&gt;start;</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="preprocessor">#if RAPIDJSON_REGEX_VERBOSE</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; printf(<span class="stringliteral">&quot;root: %d\n&quot;</span>, root_);</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> i = 0; i &lt; stateCount_ ; i++) {</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; State&amp; s = GetState(i);</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; printf(<span class="stringliteral">&quot;[%2d] out: %2d out1: %2d c: &#39;%c&#39;\n&quot;</span>, i, s.out, s.out1, (<span class="keywordtype">char</span>)s.codepoint);</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; }</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; printf(<span class="stringliteral">&quot;\n&quot;</span>);</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="preprocessor">#endif</span></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"> 325</span>&#160;</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="comment">// Preallocate buffer for SearchWithAnchoring()</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(stateSet_ == 0);</div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">if</span> (stateCount_ &gt; 0) {</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; stateSet_ = <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span>*<span class="keyword">&gt;</span>(states_.GetAllocator().Malloc(GetStateSetSize()));</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; state0_.template Reserve&lt;SizeType&gt;(stateCount_);</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; state1_.template Reserve&lt;SizeType&gt;(stateCount_);</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; }</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;</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> NewState(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> out, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> out1, <span class="keywordtype">unsigned</span> codepoint) {</div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; State* s = states_.template Push&lt;State&gt;();</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; s-&gt;out = out;</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; s-&gt;out1 = out1;</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; s-&gt;codepoint = codepoint;</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; s-&gt;rangeStart = kRegexInvalidRange;</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">return</span> stateCount_++;</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;</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordtype">void</span> PushOperand(Stack&lt;Allocator&gt;&amp; operandStack, <span class="keywordtype">unsigned</span> codepoint) {</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s = NewState(kRegexInvalidState, kRegexInvalidState, codepoint);</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(s, s, s);</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; }</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; <span class="keywordtype">void</span> ImplicitConcatenation(Stack&lt;Allocator&gt;&amp; atomCountStack, Stack&lt;Allocator&gt;&amp; operatorStack) {</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">if</span> (*atomCountStack.template Top&lt;unsigned&gt;())</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; *operatorStack.template Push&lt;Operator&gt;() = kConcatenation;</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; (*atomCountStack.template Top&lt;unsigned&gt;())++;</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"> 355</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> Append(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> l1, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> l2) {</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> old = l1;</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">while</span> (GetState(l1).out != kRegexInvalidState)</div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; l1 = GetState(l1).out;</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; GetState(l1).out = l2;</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">return</span> old;</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; }</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordtype">void</span> Patch(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> l, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s) {</div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> next; l != kRegexInvalidState; l = next) {</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; next = GetState(l).out;</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; GetState(l).out = s;</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; }</div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; }</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordtype">bool</span> Eval(Stack&lt;Allocator&gt;&amp; operandStack, Operator op) {</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">switch</span> (op) {</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">case</span> kConcatenation:</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() &gt;= <span class="keyword">sizeof</span>(Frag) * 2) {</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; Frag e2 = *operandStack.template Pop&lt;Frag&gt;(1);</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; Frag e1 = *operandStack.template Pop&lt;Frag&gt;(1);</div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; Patch(e1.out, e2.start);</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(e1.start, e2.out, Min(e1.minIndex, e2.minIndex));</div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; }</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">case</span> kAlternation:</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() &gt;= <span class="keyword">sizeof</span>(Frag) * 2) {</div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; Frag e2 = *operandStack.template Pop&lt;Frag&gt;(1);</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; Frag e1 = *operandStack.template Pop&lt;Frag&gt;(1);</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s = NewState(e1.start, e2.start, 0);</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(s, Append(e1.out, e2.out), Min(e1.minIndex, e2.minIndex));</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; }</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">case</span> kZeroOrOne:</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() &gt;= <span class="keyword">sizeof</span>(Frag)) {</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; Frag e = *operandStack.template Pop&lt;Frag&gt;(1);</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s = NewState(kRegexInvalidState, e.start, 0);</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(s, Append(e.out, s), e.minIndex);</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; }</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">case</span> kZeroOrMore:</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() &gt;= <span class="keyword">sizeof</span>(Frag)) {</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; Frag e = *operandStack.template Pop&lt;Frag&gt;(1);</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s = NewState(kRegexInvalidState, e.start, 0);</div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; Patch(e.out, s);</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(s, s, e.minIndex);</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</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">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">case</span> kOneOrMore:</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() &gt;= <span class="keyword">sizeof</span>(Frag)) {</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; Frag e = *operandStack.template Pop&lt;Frag&gt;(1);</div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s = NewState(kRegexInvalidState, e.start, 0);</div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; Patch(e.out, s);</div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(e.start, s, e.minIndex);</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; }</div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; }</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; <span class="keywordtype">bool</span> EvalQuantifier(Stack&lt;Allocator&gt;&amp; operandStack, <span class="keywordtype">unsigned</span> n, <span class="keywordtype">unsigned</span> m) {</div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(n &gt; 0);</div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(m == 0 || n &lt;= m); <span class="comment">// m == 0 means infinity</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() &lt; <span class="keyword">sizeof</span>(Frag))</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;</div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i &lt; n - 1; i++) <span class="comment">// a{3} -&gt; a a a</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; CloneTopOperand(operandStack);</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">if</span> (m == 0)</div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; Eval(operandStack, kOneOrMore); <span class="comment">// a{3,} -&gt; a a a+</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (m &gt; n) {</div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; CloneTopOperand(operandStack); <span class="comment">// a{3,5} -&gt; a a a a</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; Eval(operandStack, kZeroOrOne); <span class="comment">// a{3,5} -&gt; a a a a?</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = n; i &lt; m - 1; i++)</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; CloneTopOperand(operandStack); <span class="comment">// a{3,5} -&gt; a a a a? a?</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = n; i &lt; m; i++)</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; Eval(operandStack, kConcatenation); <span class="comment">// a{3,5} -&gt; a a aa?a?</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; }</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i &lt; n - 1; i++)</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; Eval(operandStack, kConcatenation); <span class="comment">// a{3} -&gt; aaa, a{3,} -&gt; aaa+, a{3.5} -&gt; aaaa?a?</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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"> 452</span>&#160; <span class="keyword">static</span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> Min(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> a, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> b) { <span class="keywordflow">return</span> a &lt; b ? a : b; }</div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;</div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordtype">void</span> CloneTopOperand(Stack&lt;Allocator&gt;&amp; operandStack) {</div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keyword">const</span> Frag *src = operandStack.template Top&lt;Frag&gt;();</div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> count = stateCount_ - src-&gt;minIndex; <span class="comment">// Assumes top operand contains states in [src-&gt;minIndex, stateCount_)</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; State* s = states_.template Push&lt;State&gt;(count);</div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; memcpy(s, &amp;GetState(src-&gt;minIndex), count * <span class="keyword">sizeof</span>(State));</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> j = 0; j &lt; count; j++) {</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">if</span> (s[j].out != kRegexInvalidState)</div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; s[j].out += count;</div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">if</span> (s[j].out1 != kRegexInvalidState)</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; s[j].out1 += count;</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; }</div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(src-&gt;start + count, src-&gt;out + count, src-&gt;minIndex + count);</div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; stateCount_ += count;</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; }</div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;</div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordtype">bool</span> ParseUnsigned(DecodedStream&lt;InputStream&gt;&amp; ds, <span class="keywordtype">unsigned</span>* u) {</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordtype">unsigned</span> r = 0;</div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordflow">while</span> (ds.Peek() &gt;= <span class="charliteral">&#39;0&#39;</span> &amp;&amp; ds.Peek() &lt;= <span class="charliteral">&#39;9&#39;</span>) {</div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordflow">if</span> (r &gt;= 429496729 &amp;&amp; ds.Peek() &gt; <span class="charliteral">&#39;5&#39;</span>) <span class="comment">// 2^32 - 1 = 4294967295</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// overflow</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; r = r * 10 + (ds.Take() - <span class="charliteral">&#39;0&#39;</span>);</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; }</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; *u = r;</div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; }</div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordtype">bool</span> ParseRange(DecodedStream&lt;InputStream&gt;&amp; ds, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a>* range) {</div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordtype">bool</span> isBegin = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordtype">bool</span> negate = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keywordtype">int</span> step = 0;</div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> start = kRegexInvalidRange;</div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> current = kRegexInvalidRange;</div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordtype">unsigned</span> codepoint;</div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">while</span> ((codepoint = ds.Take()) != 0) {</div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keywordflow">if</span> (isBegin) {</div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; isBegin = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">if</span> (codepoint == <span class="charliteral">&#39;^&#39;</span>) {</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; negate = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; }</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; }</div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;</div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">switch</span> (codepoint) {</div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;]&#39;</span>:</div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">if</span> (start == kRegexInvalidRange)</div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// Error: nothing inside []</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordflow">if</span> (step == 2) { <span class="comment">// Add trailing &#39;-&#39;</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> r = NewRange(<span class="charliteral">&#39;-&#39;</span>);</div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(current != kRegexInvalidRange);</div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; GetRange(current).next = r;</div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; }</div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">if</span> (negate)</div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; GetRange(start).start |= kRangeNegationFlag;</div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; *range = start;</div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;</div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;\\&#39;</span>:</div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keywordflow">if</span> (ds.Peek() == <span class="charliteral">&#39;b&#39;</span>) {</div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; ds.Take();</div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; codepoint = 0x0008; <span class="comment">// Escape backspace character</span></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">else</span> <span class="keywordflow">if</span> (!CharacterEscape(ds, &amp;codepoint))</div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="comment">// fall through to default</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;</div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="keywordflow">switch</span> (step) {</div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordflow">case</span> 1:</div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="keywordflow">if</span> (codepoint == <span class="charliteral">&#39;-&#39;</span>) {</div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; step++;</div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; }</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="comment">// fall through to step 0 for other characters</span></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"> 530</span>&#160; <span class="keywordflow">case</span> 0:</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"> 532</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> r = NewRange(codepoint);</div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keywordflow">if</span> (current != kRegexInvalidRange)</div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; GetRange(current).next = r;</div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordflow">if</span> (start == kRegexInvalidRange)</div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; start = r;</div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; current = r;</div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; }</div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; step = 1;</div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;</div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(step == 2);</div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; GetRange(current).end = codepoint;</div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; step = 0;</div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; }</div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; }</div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; }</div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; }</div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; </div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> NewRange(<span class="keywordtype">unsigned</span> codepoint) {</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; Range* r = ranges_.template Push&lt;Range&gt;();</div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; r-&gt;start = r-&gt;end = codepoint;</div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; r-&gt;next = kRegexInvalidRange;</div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keywordflow">return</span> rangeCount_++;</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; }</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordtype">bool</span> CharacterEscape(DecodedStream&lt;InputStream&gt;&amp; ds, <span class="keywordtype">unsigned</span>* escapedCodepoint) {</div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordtype">unsigned</span> codepoint;</div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">switch</span> (codepoint = ds.Take()) {</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;^&#39;</span>:</div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;$&#39;</span>:</div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;|&#39;</span>:</div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;(&#39;</span>:</div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;)&#39;</span>:</div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;?&#39;</span>:</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;*&#39;</span>:</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;+&#39;</span>:</div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;.&#39;</span>:</div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;[&#39;</span>:</div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;]&#39;</span>:</div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;{&#39;</span>:</div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;}&#39;</span>:</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;\\&#39;</span>:</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; *escapedCodepoint = codepoint; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;f&#39;</span>: *escapedCodepoint = 0x000C; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;n&#39;</span>: *escapedCodepoint = 0x000A; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;r&#39;</span>: *escapedCodepoint = 0x000D; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;t&#39;</span>: *escapedCodepoint = 0x0009; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;v&#39;</span>: *escapedCodepoint = 0x000B; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// Unsupported escape character</span></div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; }</div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; }</div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;</div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordtype">bool</span> SearchWithAnchoring(InputStream&amp; is, <span class="keywordtype">bool</span> anchorBegin, <span class="keywordtype">bool</span> anchorEnd)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(IsValid());</div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; DecodedStream&lt;InputStream&gt; ds(is);</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;</div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; state0_.Clear();</div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; Stack&lt;Allocator&gt; *current = &amp;state0_, *next = &amp;state1_;</div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> stateSetSize = GetStateSetSize();</div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; std::memset(stateSet_, 0, stateSetSize);</div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;</div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="keywordtype">bool</span> matched = AddState(*current, root_);</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordtype">unsigned</span> codepoint;</div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="keywordflow">while</span> (!current-&gt;Empty() &amp;&amp; (codepoint = ds.Take()) != 0) {</div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; std::memset(stateSet_, 0, stateSetSize);</div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; next-&gt;Clear();</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; matched = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a>* s = current-&gt;template Bottom&lt;SizeType&gt;(); s != current-&gt;template End&lt;SizeType&gt;(); ++s) {</div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="keyword">const</span> State&amp; sr = GetState(*s);</div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keywordflow">if</span> (sr.codepoint == codepoint ||</div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; sr.codepoint == kAnyCharacterClass || </div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; (sr.codepoint == kRangeCharacterClass &amp;&amp; MatchRange(sr.rangeStart, codepoint)))</div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; {</div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; matched = AddState(*next, sr.out) || matched;</div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordflow">if</span> (!anchorEnd &amp;&amp; matched)</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; }</div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="keywordflow">if</span> (!anchorBegin)</div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; AddState(*next, root_);</div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; }</div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; internal::Swap(current, next);</div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; }</div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;</div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="keywordflow">return</span> matched;</div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; }</div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;</div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="keywordtype">size_t</span> GetStateSetSize()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keywordflow">return</span> (stateCount_ + 31) / 32 * 4;</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;</div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="comment">// Return whether the added states is a match state</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keywordtype">bool</span> AddState(Stack&lt;Allocator&gt;&amp; l, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> index)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="keywordflow">if</span> (index == kRegexInvalidState)</div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;</div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <span class="keyword">const</span> State&amp; s = GetState(index);</div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="keywordflow">if</span> (s.out1 != kRegexInvalidState) { <span class="comment">// Split</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <span class="keywordtype">bool</span> matched = AddState(l, s.out);</div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="keywordflow">return</span> AddState(l, s.out1) || matched;</div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; }</div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!(stateSet_[index &gt;&gt; 5] &amp; (1 &lt;&lt; (index &amp; 31)))) {</div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; stateSet_[index &gt;&gt; 5] |= (1 &lt;&lt; (index &amp; 31));</div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; *l.template PushUnsafe&lt;SizeType&gt;() = index;</div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; }</div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keywordflow">return</span> s.out == kRegexInvalidState; <span class="comment">// by using PushUnsafe() above, we can ensure s is not validated due to reallocation.</span></div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; }</div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;</div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="keywordtype">bool</span> MatchRange(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> rangeIndex, <span class="keywordtype">unsigned</span> codepoint)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordtype">bool</span> yes = (GetRange(rangeIndex).start &amp; kRangeNegationFlag) == 0;</div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="keywordflow">while</span> (rangeIndex != kRegexInvalidRange) {</div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keyword">const</span> Range&amp; r = GetRange(rangeIndex);</div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="keywordflow">if</span> (codepoint &gt;= (r.start &amp; ~kRangeNegationFlag) &amp;&amp; codepoint &lt;= r.end)</div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="keywordflow">return</span> yes;</div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; rangeIndex = r.next;</div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; }</div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <span class="keywordflow">return</span> !yes;</div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; }</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; Stack&lt;Allocator&gt; states_;</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; Stack&lt;Allocator&gt; ranges_;</div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> root_;</div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> stateCount_;</div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> rangeCount_;</div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; <span class="comment">// For SearchWithAnchoring()</span></div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; uint32_t* stateSet_; <span class="comment">// allocated by states_.GetAllocator()</span></div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keyword">mutable</span> Stack&lt;Allocator&gt; state0_;</div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="keyword">mutable</span> Stack&lt;Allocator&gt; state1_;</div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="keywordtype">bool</span> anchorBegin_;</div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <span class="keywordtype">bool</span> anchorEnd_;</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;};</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;</div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;<span class="keyword">typedef</span> GenericRegex&lt;UTF8&lt;&gt; &gt; Regex;</div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;</div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;} <span class="comment">// namespace internal</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;RAPIDJSON_NAMESPACE_END</div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;</div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;<span class="preprocessor">#ifdef __clang__</span></div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;RAPIDJSON_DIAG_POP</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;</div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_INTERNAL_REGEX_H_</span></div>
<div class="ttc" id="namespacerapidjson_html_a44eb33eaa523e36d466b1ced64b85c84"><div class="ttname"><a href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">rapidjson::SizeType</a></div><div class="ttdeci">unsigned SizeType</div><div class="ttdoc">Size type (for string lengths, array sizes, etc.) </div><div class="ttdef"><b>Definition:</b> rapidjson.h:349</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
</div><!-- fragment --></div><!-- contents -->
diff --git a/schema_8h_source.html b/schema_8h_source.html
index 52c99ca2..08846a61 100644
--- a/schema_8h_source.html
+++ b/schema_8h_source.html
@@ -107,7 +107,7 @@ $(document).ready(function(){initNavTree('schema_8h_source.html','');});
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="document_8h.html">document.h</a>&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;pointer.h&quot;</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span> <span class="comment">// HUGE_VAL, abs, floor</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span> <span class="comment">// abs, floor</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"> 22</span>&#160;<span class="preprocessor">#ifdef __clang__</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;RAPIDJSON_DIAG_PUSH</div>
@@ -215,7 +215,7 @@ $(document).ready(function(){initNavTree('schema_8h_source.html','');});
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment"></span><span class="comment">// Forward declarations</span></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="keyword">template</span> &lt;<span class="keyword">typename</span> ValueType, <span class="keyword">typename</span> Allocator&gt;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_schema_document.html"> 128</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_schema_document.html">GenericSchemaDocument</a>;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="keyword">class </span>GenericSchemaDocument;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="keyword">namespace </span>internal {</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
@@ -1370,11 +1370,11 @@ $(document).ready(function(){initNavTree('schema_8h_source.html','');});
<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;<span class="comment"></span><span class="comment">// IGenericRemoteSchemaDocumentProvider</span></div>
<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;</div>
<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> SchemaDocumentType&gt;</div>
-<div class="line"><a name="l01283"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html"> 1283</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IGenericRemoteSchemaDocumentProvider</a> {</div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;<span class="keyword">class </span>IGenericRemoteSchemaDocumentProvider {</div>
<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> SchemaDocumentType::Ch Ch;</div>
<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160;</div>
-<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IGenericRemoteSchemaDocumentProvider</a>() {}</div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; <span class="keyword">virtual</span> ~IGenericRemoteSchemaDocumentProvider() {}</div>
<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> SchemaDocumentType* GetRemoteDocument(<span class="keyword">const</span> Ch* uri, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> length) = 0;</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"> 1290</span>&#160;<span class="comment"></span></div>
@@ -1391,18 +1391,18 @@ $(document).ready(function(){initNavTree('schema_8h_source.html','');});
<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;<span class="comment"> \tparam Allocator Allocator type for allocating memory of this document.</span></div>
<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> ValueT, <span class="keyword">typename</span> Allocator = CrtAllocator&gt;</div>
-<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_schema_document.html">GenericSchemaDocument</a> {</div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;<span class="keyword">class </span>GenericSchemaDocument {</div>
<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160; <span class="keyword">typedef</span> ValueT ValueType;</div>
-<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160; <span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IGenericRemoteSchemaDocumentProvider&lt;GenericSchemaDocument&gt;</a> IRemoteSchemaDocumentProviderType;</div>
-<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160; <span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_allocator.html">Allocator</a> AllocatorType;</div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160; <span class="keyword">typedef</span> IGenericRemoteSchemaDocumentProvider&lt;GenericSchemaDocument&gt; IRemoteSchemaDocumentProviderType;</div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160; <span class="keyword">typedef</span> Allocator AllocatorType;</div>
<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> ValueType::EncodingType EncodingType;</div>
<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> EncodingType::Ch Ch;</div>
<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160; <span class="keyword">typedef</span> internal::Schema&lt;GenericSchemaDocument&gt; SchemaType;</div>
-<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160; <span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_pointer.html">GenericPointer&lt;ValueType, Allocator&gt;</a> PointerType;</div>
-<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span>internal::Schema&lt;<a class="code" href="classrapidjson_1_1_generic_schema_document.html">GenericSchemaDocument</a>&gt;;</div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160; <span class="keyword">typedef</span> GenericPointer&lt;ValueType, Allocator&gt; PointerType;</div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span>internal::Schema&lt;GenericSchemaDocument&gt;;</div>
<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, <span class="keyword">typename</span>, <span class="keyword">typename</span>&gt;</div>
-<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_schema_validator.html">GenericSchemaValidator</a>;</div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span>GenericSchemaValidator;</div>
<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;<span class="comment"> //! Constructor.</span></div>
<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;<span class="comment"></span><span class="comment"> /*!</span></div>
@@ -1412,7 +1412,7 @@ $(document).ready(function(){initNavTree('schema_8h_source.html','');});
<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;<span class="comment"> \param remoteProvider An optional remote schema document provider for resolving remote reference. Can be null.</span></div>
<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;<span class="comment"> \param allocator An optional allocator instance for allocating memory. Can be null.</span></div>
<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l01325"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_schema_document.html#a09c94a10d412ee188de575b82292a90e"> 1325</a></span>&#160; <a class="code" href="classrapidjson_1_1_generic_schema_document.html#a09c94a10d412ee188de575b82292a90e">GenericSchemaDocument</a>(<span class="keyword">const</span> ValueType&amp; document, <a class="code" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IRemoteSchemaDocumentProviderType</a>* remoteProvider = 0, <a class="code" href="classrapidjson_1_1_allocator.html">Allocator</a>* allocator = 0) : </div>
+<div class="line"><a name="l01325"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_schema_document.html#ad200cc7bcb193c8568cdbda7b7fd0496"> 1325</a></span>&#160; <a class="code" href="classrapidjson_1_1_generic_schema_document.html#ad200cc7bcb193c8568cdbda7b7fd0496">GenericSchemaDocument</a>(<span class="keyword">const</span> ValueType&amp; document, <a class="code" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IRemoteSchemaDocumentProviderType</a>* remoteProvider = 0, <a class="code" href="classrapidjson_1_1_allocator.html">Allocator</a>* allocator = 0) : </div>
<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160; remoteProvider_(remoteProvider),</div>
<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160; allocator_(allocator),</div>
<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160; ownAllocator_(),</div>
@@ -1448,7 +1448,7 @@ $(document).ready(function(){initNavTree('schema_8h_source.html','');});
<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160; }</div>
<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;<span class="comment"> //! Destructor</span></div>
-<div class="line"><a name="l01361"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_schema_document.html#ad05d77ee8910b43513acf48fadf99c28"> 1361</a></span>&#160;<span class="comment"></span> <a class="code" href="classrapidjson_1_1_generic_schema_document.html#ad05d77ee8910b43513acf48fadf99c28">~GenericSchemaDocument</a>() {</div>
+<div class="line"><a name="l01361"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_schema_document.html#adf6f3372013227873ed392dee1e752bf"> 1361</a></span>&#160;<span class="comment"></span> <a class="code" href="classrapidjson_1_1_generic_schema_document.html#adf6f3372013227873ed392dee1e752bf">~GenericSchemaDocument</a>() {</div>
<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160; <span class="keywordflow">while</span> (!schemaMap_.Empty())</div>
<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; schemaMap_.template Pop&lt;SchemaEntry&gt;(1)-&gt;~SchemaEntry();</div>
<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;</div>
@@ -1456,7 +1456,7 @@ $(document).ready(function(){initNavTree('schema_8h_source.html','');});
<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160; }</div>
<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;<span class="comment"> //! Get the root schema.</span></div>
-<div class="line"><a name="l01369"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_schema_document.html#a666d94105aa39c446327105339378320"> 1369</a></span>&#160;<span class="comment"></span> <span class="keyword">const</span> SchemaType&amp; <a class="code" href="classrapidjson_1_1_generic_schema_document.html#a666d94105aa39c446327105339378320">GetRoot</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *root_; }</div>
+<div class="line"><a name="l01369"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_schema_document.html#af64ea17654ab0f1a91e382d422f91daf"> 1369</a></span>&#160;<span class="comment"></span> <span class="keyword">const</span> SchemaType&amp; <a class="code" href="classrapidjson_1_1_generic_schema_document.html#af64ea17654ab0f1a91e382d422f91daf">GetRoot</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *root_; }</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="keyword">private</span>:</div>
<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160; <span class="keyword">struct </span>SchemaRefEntry {</div>
@@ -1582,9 +1582,9 @@ $(document).ready(function(){initNavTree('schema_8h_source.html','');});
<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;};</div>
<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160;<span class="comment">//! GenericSchemaDocument using Value type.</span></div>
-<div class="line"><a name="l01495"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a1039ee639733008423fd0dfb67122e54"> 1495</a></span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_schema_document.html">GenericSchemaDocument&lt;Value&gt;</a> <a class="code" href="classrapidjson_1_1_generic_schema_document.html">SchemaDocument</a>;<span class="comment"></span></div>
+<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;<span class="comment"></span><span class="keyword">typedef</span> GenericSchemaDocument&lt;Value&gt; <a class="code" href="namespacerapidjson.html#a52bbb5d64d1319495089e1713a0653cf">SchemaDocument</a>;<span class="comment"></span></div>
<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;<span class="comment">//! IGenericRemoteSchemaDocumentProvider using SchemaDocument.</span></div>
-<div class="line"><a name="l01497"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a735a06a6e822111798e302c2f3af3de9"> 1497</a></span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IGenericRemoteSchemaDocumentProvider&lt;SchemaDocument&gt;</a> <a class="code" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IRemoteSchemaDocumentProvider</a>;</div>
+<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;<span class="comment"></span><span class="keyword">typedef</span> IGenericRemoteSchemaDocumentProvider&lt;SchemaDocument&gt; <a class="code" href="namespacerapidjson.html#af91eb8eea47b79d75b23e29fa9c0abb5">IRemoteSchemaDocumentProvider</a>;</div>
<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160;<span class="comment">///////////////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;<span class="comment"></span><span class="comment">// GenericSchemaValidator</span></div>
@@ -1603,9 +1603,9 @@ $(document).ready(function(){initNavTree('schema_8h_source.html','');});
<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160;<span class="keyword">template</span> &lt;</div>
<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160; <span class="keyword">typename</span> SchemaDocumentType,</div>
-<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160; <span class="keyword">typename</span> OutputHandler = <a class="code" href="structrapidjson_1_1_base_reader_handler.html">BaseReaderHandler&lt;typename SchemaDocumentType::SchemaType::EncodingType&gt;</a>,</div>
-<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160; <span class="keyword">typename</span> StateAllocator = <a class="code" href="classrapidjson_1_1_crt_allocator.html">CrtAllocator</a>&gt;</div>
-<div class="line"><a name="l01518"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_schema_validator.html"> 1518</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_schema_validator.html">GenericSchemaValidator</a> :</div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160; <span class="keyword">typename</span> OutputHandler = BaseReaderHandler&lt;typename SchemaDocumentType::SchemaType::EncodingType&gt;,</div>
+<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160; <span class="keyword">typename</span> StateAllocator = CrtAllocator&gt;</div>
+<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160;<span class="keyword">class </span>GenericSchemaValidator :</div>
<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160; <span class="keyword">public</span> internal::ISchemaStateFactory&lt;typename SchemaDocumentType::SchemaType&gt;, </div>
<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160; <span class="keyword">public</span> internal::ISchemaValidator</div>
<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160;{</div>
@@ -2067,42 +2067,41 @@ $(document).ready(function(){initNavTree('schema_8h_source.html','');});
<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160;</div>
<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_SCHEMA_H_</span></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e">rapidjson::kTrueType</a></div><div class="ttdoc">true </div><div class="ttdef"><b>Definition:</b> rapidjson.h:719</div></div>
-<div class="ttc" id="classrapidjson_1_1_generic_schema_document_html_ad05d77ee8910b43513acf48fadf99c28"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_document.html#ad05d77ee8910b43513acf48fadf99c28">rapidjson::GenericSchemaDocument::~GenericSchemaDocument</a></div><div class="ttdeci">~GenericSchemaDocument()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> schema.h:1361</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e">rapidjson::kTrueType</a></div><div class="ttdoc">true </div><div class="ttdef"><b>Definition:</b> rapidjson.h:560</div></div>
+<div class="ttc" id="namespacerapidjson_html_af91eb8eea47b79d75b23e29fa9c0abb5"><div class="ttname"><a href="namespacerapidjson.html#af91eb8eea47b79d75b23e29fa9c0abb5">rapidjson::IRemoteSchemaDocumentProvider</a></div><div class="ttdeci">IGenericRemoteSchemaDocumentProvider&lt; SchemaDocument &gt; IRemoteSchemaDocumentProvider</div><div class="ttdoc">IGenericRemoteSchemaDocumentProvider using SchemaDocument. </div><div class="ttdef"><b>Definition:</b> fwd.h:134</div></div>
<div class="ttc" id="classrapidjson_1_1_handler_html"><div class="ttname"><a href="classrapidjson_1_1_handler.html">rapidjson::Handler</a></div><div class="ttdoc">Concept for receiving events from GenericReader upon parsing. The functions return true if no error o...</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_schema_validator_html_a8381f8d4dca195449f086ffbd25bb9b7"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_validator.html#a8381f8d4dca195449f086ffbd25bb9b7">rapidjson::GenericSchemaValidator::GetInvalidSchemaPointer</a></div><div class="ttdeci">PointerType GetInvalidSchemaPointer() const </div><div class="ttdoc">Gets the JSON pointer pointed to the invalid schema. </div><div class="ttdef"><b>Definition:</b> schema.h:1602</div></div>
<div class="ttc" id="rapidjson_8h_html_aaee1245f375a71be1ac9b8a07ba5fb8f"><div class="ttname"><a href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a></div><div class="ttdeci">#define RAPIDJSON_UINT64_C2(high32, low32)</div><div class="ttdoc">Construct a 64-bit literal by a pair of 32-bit integer. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:288</div></div>
-<div class="ttc" id="classrapidjson_1_1_generic_reader_html"><div class="ttname"><a href="classrapidjson_1_1_generic_reader.html">rapidjson::GenericReader</a></div><div class="ttdoc">SAX-style JSON parser. Use Reader for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> reader.h:379</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_reader_html"><div class="ttname"><a href="classrapidjson_1_1_generic_reader.html">rapidjson::GenericReader</a></div><div class="ttdoc">SAX-style JSON parser. Use Reader for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> fwd.h:88</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_schema_validator_html_a914628c4d69faea91ada1dee61d25d59"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_validator.html#a914628c4d69faea91ada1dee61d25d59">rapidjson::GenericSchemaValidator::GetInvalidSchemaKeyword</a></div><div class="ttdeci">const Ch * GetInvalidSchemaKeyword() const </div><div class="ttdoc">Gets the keyword of invalid schema. </div><div class="ttdef"><b>Definition:</b> schema.h:1607</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_schema_document_html_ad200cc7bcb193c8568cdbda7b7fd0496"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_document.html#ad200cc7bcb193c8568cdbda7b7fd0496">rapidjson::GenericSchemaDocument::GenericSchemaDocument</a></div><div class="ttdeci">GenericSchemaDocument(const ValueType &amp;document, IRemoteSchemaDocumentProviderType *remoteProvider=0, Allocator *allocator=0)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> schema.h:1325</div></div>
<div class="ttc" id="namespacerapidjson_html_a44eb33eaa523e36d466b1ced64b85c84"><div class="ttname"><a href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">rapidjson::SizeType</a></div><div class="ttdeci">unsigned SizeType</div><div class="ttdoc">Size type (for string lengths, array sizes, etc.) </div><div class="ttdef"><b>Definition:</b> rapidjson.h:349</div></div>
-<div class="ttc" id="classrapidjson_1_1_generic_schema_document_html_a666d94105aa39c446327105339378320"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_document.html#a666d94105aa39c446327105339378320">rapidjson::GenericSchemaDocument::GetRoot</a></div><div class="ttdeci">const SchemaType &amp; GetRoot() const </div><div class="ttdoc">Get the root schema. </div><div class="ttdef"><b>Definition:</b> schema.h:1369</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607">rapidjson::kFalseType</a></div><div class="ttdoc">false </div><div class="ttdef"><b>Definition:</b> rapidjson.h:718</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607">rapidjson::kFalseType</a></div><div class="ttdoc">false </div><div class="ttdef"><b>Definition:</b> rapidjson.h:559</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_schema_validator_html_ad9f00d71bf62b8983cf2514c43fb1572"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_validator.html#ad9f00d71bf62b8983cf2514c43fb1572">rapidjson::GenericSchemaValidator::~GenericSchemaValidator</a></div><div class="ttdeci">~GenericSchemaValidator()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> schema.h:1584</div></div>
-<div class="ttc" id="classrapidjson_1_1_crt_allocator_html"><div class="ttname"><a href="classrapidjson_1_1_crt_allocator.html">rapidjson::CrtAllocator</a></div><div class="ttdoc">C-runtime library allocator. </div><div class="ttdef"><b>Definition:</b> allocators.h:62</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_schema_validator_html_acc07bd08b00195d84bb5b83f59c593d3"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_validator.html#acc07bd08b00195d84bb5b83f59c593d3">rapidjson::GenericSchemaValidator::GenericSchemaValidator</a></div><div class="ttdeci">GenericSchemaValidator(const SchemaDocumentType &amp;schemaDocument, StateAllocator *allocator=0, size_t schemaStackCapacity=kDefaultSchemaStackCapacity, size_t documentStackCapacity=kDefaultDocumentStackCapacity)</div><div class="ttdoc">Constructor without output handler. </div><div class="ttdef"><b>Definition:</b> schema.h:1535</div></div>
-<div class="ttc" id="classrapidjson_1_1_generic_pointer_html"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer</a></div><div class="ttdoc">Represents a JSON Pointer. Use Pointer for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> pointer.h:76</div></div>
-<div class="ttc" id="classrapidjson_1_1_generic_schema_document_html"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument</a></div><div class="ttdoc">JSON schema document. </div><div class="ttdef"><b>Definition:</b> schema.h:128</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:716</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">rapidjson::kObjectType</a></div><div class="ttdoc">object </div><div class="ttdef"><b>Definition:</b> rapidjson.h:720</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_pointer_html"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer</a></div><div class="ttdoc">Represents a JSON Pointer. Use Pointer for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> fwd.h:121</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:557</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">rapidjson::kObjectType</a></div><div class="ttdoc">object </div><div class="ttdef"><b>Definition:</b> rapidjson.h:561</div></div>
<div class="ttc" id="document_8h_html"><div class="ttname"><a href="document_8h.html">document.h</a></div></div>
<div class="ttc" id="classrapidjson_1_1_generic_schema_validator_html_afe6cd0d9088a1d4cf8100c0efc9f76fc"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_validator.html#afe6cd0d9088a1d4cf8100c0efc9f76fc">rapidjson::GenericSchemaValidator::Reset</a></div><div class="ttdeci">void Reset()</div><div class="ttdoc">Reset the internal states. </div><div class="ttdef"><b>Definition:</b> schema.h:1590</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_schema_validator_html_ab520a4ee6df3e23ffb948c8d5ae7bf38"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_validator.html#ab520a4ee6df3e23ffb948c8d5ae7bf38">rapidjson::GenericSchemaValidator::IsValid</a></div><div class="ttdeci">virtual bool IsValid() const </div><div class="ttdoc">Checks whether the current state is valid. </div><div class="ttdef"><b>Definition:</b> schema.h:1599</div></div>
-<div class="ttc" id="classrapidjson_1_1_i_generic_remote_schema_document_provider_html"><div class="ttname"><a href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">rapidjson::IGenericRemoteSchemaDocumentProvider</a></div><div class="ttdef"><b>Definition:</b> schema.h:1283</div></div>
+<div class="ttc" id="classrapidjson_1_1_i_generic_remote_schema_document_provider_html"><div class="ttname"><a href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">rapidjson::IGenericRemoteSchemaDocumentProvider</a></div><div class="ttdef"><b>Definition:</b> fwd.h:128</div></div>
<div class="ttc" id="rapidjson_8h_html_ab9e102fa2f1a0ae4914d4dac21f690a2"><div class="ttname"><a href="rapidjson_8h.html#ab9e102fa2f1a0ae4914d4dac21f690a2">RAPIDJSON_NEW</a></div><div class="ttdeci">#define RAPIDJSON_NEW(x)</div><div class="ttdoc">! customization point for global new </div><div class="ttdef"><b>Definition:</b> rapidjson.h:540</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">rapidjson::kArrayType</a></div><div class="ttdoc">array </div><div class="ttdef"><b>Definition:</b> rapidjson.h:721</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">rapidjson::kArrayType</a></div><div class="ttdoc">array </div><div class="ttdef"><b>Definition:</b> rapidjson.h:562</div></div>
<div class="ttc" id="rapidjson_8h_html_a52c941c3fdd646527cdcd42aa846a28a"><div class="ttname"><a href="rapidjson_8h.html#a52c941c3fdd646527cdcd42aa846a28a">RAPIDJSON_DELETE</a></div><div class="ttdeci">#define RAPIDJSON_DELETE(x)</div><div class="ttdoc">! customization point for global delete </div><div class="ttdef"><b>Definition:</b> rapidjson.h:544</div></div>
<div class="ttc" id="classrapidjson_1_1_schema_validating_reader_html_a1e2bcc66cad23376241cd91e8bf8c706"><div class="ttname"><a href="classrapidjson_1_1_schema_validating_reader.html#a1e2bcc66cad23376241cd91e8bf8c706">rapidjson::SchemaValidatingReader::SchemaValidatingReader</a></div><div class="ttdeci">SchemaValidatingReader(InputStream &amp;is, const SchemaDocumentType &amp;sd)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> schema.h:1930</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff">rapidjson::kNullType</a></div><div class="ttdoc">null </div><div class="ttdef"><b>Definition:</b> rapidjson.h:717</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7">rapidjson::kStringType</a></div><div class="ttdoc">string </div><div class="ttdef"><b>Definition:</b> rapidjson.h:722</div></div>
-<div class="ttc" id="structrapidjson_1_1_base_reader_handler_html"><div class="ttname"><a href="structrapidjson_1_1_base_reader_handler.html">rapidjson::BaseReaderHandler</a></div><div class="ttdoc">Default implementation of Handler. </div><div class="ttdef"><b>Definition:</b> reader.h:188</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_schema_document_html_adf6f3372013227873ed392dee1e752bf"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_document.html#adf6f3372013227873ed392dee1e752bf">rapidjson::GenericSchemaDocument::~GenericSchemaDocument</a></div><div class="ttdeci">~GenericSchemaDocument()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> schema.h:1361</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff">rapidjson::kNullType</a></div><div class="ttdoc">null </div><div class="ttdef"><b>Definition:</b> rapidjson.h:558</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7">rapidjson::kStringType</a></div><div class="ttdoc">string </div><div class="ttdef"><b>Definition:</b> rapidjson.h:563</div></div>
+<div class="ttc" id="namespacerapidjson_html_a52bbb5d64d1319495089e1713a0653cf"><div class="ttname"><a href="namespacerapidjson.html#a52bbb5d64d1319495089e1713a0653cf">rapidjson::SchemaDocument</a></div><div class="ttdeci">GenericSchemaDocument&lt; Value, CrtAllocator &gt; SchemaDocument</div><div class="ttdoc">GenericSchemaDocument using Value type. </div><div class="ttdef"><b>Definition:</b> fwd.h:131</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_schema_validator_html_af66e4a41d71c89edfabb176af7839f04"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_validator.html#af66e4a41d71c89edfabb176af7839f04">rapidjson::GenericSchemaValidator::GetInvalidDocumentPointer</a></div><div class="ttdeci">PointerType GetInvalidDocumentPointer() const </div><div class="ttdoc">Gets the JSON pointer pointed to the invalid value. </div><div class="ttdef"><b>Definition:</b> schema.h:1612</div></div>
-<div class="ttc" id="classrapidjson_1_1_generic_schema_validator_html"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_validator.html">rapidjson::GenericSchemaValidator</a></div><div class="ttdoc">JSON Schema Validator. </div><div class="ttdef"><b>Definition:</b> schema.h:1518</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_schema_validator_html"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_validator.html">rapidjson::GenericSchemaValidator</a></div><div class="ttdoc">JSON Schema Validator. </div><div class="ttdef"><b>Definition:</b> fwd.h:140</div></div>
<div class="ttc" id="classrapidjson_1_1_allocator_html"><div class="ttname"><a href="classrapidjson_1_1_allocator.html">rapidjson::Allocator</a></div><div class="ttdoc">Concept for allocating, resizing and freeing memory block. </div></div>
-<div class="ttc" id="classrapidjson_1_1_generic_schema_document_html_a09c94a10d412ee188de575b82292a90e"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_document.html#a09c94a10d412ee188de575b82292a90e">rapidjson::GenericSchemaDocument::GenericSchemaDocument</a></div><div class="ttdeci">GenericSchemaDocument(const ValueType &amp;document, IRemoteSchemaDocumentProviderType *remoteProvider=0, Allocator *allocator=0)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> schema.h:1325</div></div>
<div class="ttc" id="classrapidjson_1_1_schema_validating_reader_html"><div class="ttname"><a href="classrapidjson_1_1_schema_validating_reader.html">rapidjson::SchemaValidatingReader</a></div><div class="ttdoc">A helper class for parsing with validation. </div><div class="ttdef"><b>Definition:</b> schema.h:1920</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_schema_validator_html_a0e1d8f19381bd53d77cc00a9a6dcd067"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_validator.html#a0e1d8f19381bd53d77cc00a9a6dcd067">rapidjson::GenericSchemaValidator::GenericSchemaValidator</a></div><div class="ttdeci">GenericSchemaValidator(const SchemaDocumentType &amp;schemaDocument, OutputHandler &amp;outputHandler, StateAllocator *allocator=0, size_t schemaStackCapacity=kDefaultSchemaStackCapacity, size_t documentStackCapacity=kDefaultDocumentStackCapacity)</div><div class="ttdoc">Constructor with output handler. </div><div class="ttdef"><b>Definition:</b> schema.h:1562</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a">rapidjson::kNumberType</a></div><div class="ttdoc">number </div><div class="ttdef"><b>Definition:</b> rapidjson.h:723</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_schema_document_html_af64ea17654ab0f1a91e382d422f91daf"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_document.html#af64ea17654ab0f1a91e382d422f91daf">rapidjson::GenericSchemaDocument::GetRoot</a></div><div class="ttdeci">const SchemaType &amp; GetRoot() const </div><div class="ttdoc">Get the root schema. </div><div class="ttdef"><b>Definition:</b> schema.h:1369</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a">rapidjson::kNumberType</a></div><div class="ttdoc">number </div><div class="ttdef"><b>Definition:</b> rapidjson.h:564</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.7-->
diff --git a/search/all_10.js b/search/all_10.js
index e4007939..fabf4c81 100644
--- a/search/all_10.js
+++ b/search/all_10.js
@@ -4,7 +4,7 @@ var searchData=
['schema',['Schema',['../md_doc_schema.html',1,'']]],
['stream',['Stream',['../md_doc_stream.html',1,'']]],
['s',['s',['../structrapidjson_1_1_generic_string_ref.html#a001276ee57cbcbd3c14449045c71e994',1,'rapidjson::GenericStringRef']]],
- ['schemadocument',['SchemaDocument',['../namespacerapidjson.html#a1039ee639733008423fd0dfb67122e54',1,'rapidjson']]],
+ ['schemadocument',['SchemaDocument',['../namespacerapidjson.html#a52bbb5d64d1319495089e1713a0653cf',1,'rapidjson']]],
['schemavalidatingreader',['SchemaValidatingReader',['../classrapidjson_1_1_schema_validating_reader.html#a1e2bcc66cad23376241cd91e8bf8c706',1,'rapidjson::SchemaValidatingReader']]],
['schemavalidatingreader',['SchemaValidatingReader',['../classrapidjson_1_1_schema_validating_reader.html',1,'rapidjson']]],
['set',['Set',['../group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#a40c0bd4d6c535c57acbb5c2e656bea38',1,'rapidjson::ParseResult::Set()'],['../classrapidjson_1_1_generic_pointer.html#aecea7b5c4786f509e35c3917efa57fce',1,'rapidjson::GenericPointer::Set(ValueType &amp;root, ValueType &amp;value, typename ValueType::AllocatorType &amp;allocator) const '],['../classrapidjson_1_1_generic_pointer.html#ac19f479c656ddd6a8bd9888a9fb27f96',1,'rapidjson::GenericPointer::Set(ValueType &amp;root, const ValueType &amp;value, typename ValueType::AllocatorType &amp;allocator) const '],['../classrapidjson_1_1_generic_pointer.html#a98454081fb9557b3d2285c4e89bd34f6',1,'rapidjson::GenericPointer::Set(ValueType &amp;root, const Ch *value, typename ValueType::AllocatorType &amp;allocator) const '],['../classrapidjson_1_1_generic_pointer.html#a151f17dc1c655b9dc0a9a3cf06e6bdcb',1,'rapidjson::GenericPointer::Set(ValueType &amp;root, const std::basic_string&lt; Ch &gt; &amp;value, typename ValueType::AllocatorType &amp;allocator) const '],['../classrapidjson_1_1_generic_pointer.html#ae9037fa1a22498e2a8c0f96f866f6288',1,'rapidjson::GenericPointer::Set(ValueType &amp;root, T value, typename ValueType::AllocatorType &amp;allocator) const '],['../classrapidjson_1_1_generic_pointer.html#add58edd4f813645f8ffead6956967f96',1,'rapidjson::GenericPointer::Set(GenericDocument&lt; EncodingType, typename ValueType::AllocatorType, stackAllocator &gt; &amp;document, ValueType &amp;value) const '],['../classrapidjson_1_1_generic_pointer.html#a83ff802b8fcacd96e60ba1c2627a19f0',1,'rapidjson::GenericPointer::Set(GenericDocument&lt; EncodingType, typename ValueType::AllocatorType, stackAllocator &gt; &amp;document, const ValueType &amp;value) const '],['../classrapidjson_1_1_generic_pointer.html#a2ee50bcbfa76119094eef0284eeddfbe',1,'rapidjson::GenericPointer::Set(GenericDocument&lt; EncodingType, typename ValueType::AllocatorType, stackAllocator &gt; &amp;document, const Ch *value) const '],['../classrapidjson_1_1_generic_pointer.html#a9bd1c4076e732ffc1b4527ac5659264e',1,'rapidjson::GenericPointer::Set(GenericDocument&lt; EncodingType, typename ValueType::AllocatorType, stackAllocator &gt; &amp;document, const std::basic_string&lt; Ch &gt; &amp;value) const '],['../classrapidjson_1_1_generic_pointer.html#af547130d348ca1805d882955a377bbe4',1,'rapidjson::GenericPointer::Set(GenericDocument&lt; EncodingType, typename ValueType::AllocatorType, stackAllocator &gt; &amp;document, T value) const ']]],
@@ -17,17 +17,17 @@ var searchData=
['size_5f',['size_',['../structrapidjson_1_1_memory_stream.html#a8c8437d59c32168a74226312d9e96ace',1,'rapidjson::MemoryStream']]],
['sizetype',['SizeType',['../namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84',1,'rapidjson']]],
['skipwhitespace',['SkipWhitespace',['../namespacerapidjson.html#a6efb0f4d2a6f81477a59718d42e9464a',1,'rapidjson::SkipWhitespace(InputStream &amp;is)'],['../namespacerapidjson.html#a3caa6f393c9940e6525d5f1c21ed9ea2',1,'rapidjson::SkipWhitespace(InsituStringStream &amp;is)'],['../namespacerapidjson.html#a791735c27e073a70d720c2775ddf9568',1,'rapidjson::SkipWhitespace(StringStream &amp;is)']]],
- ['src_5f',['src_',['../structrapidjson_1_1_generic_string_stream.html#a9a38a9d5b1ce782cacd4ec1bdf87fc2d',1,'rapidjson::GenericStringStream::src_()'],['../structrapidjson_1_1_memory_stream.html#ac0b4da6016e5ba6241604fd4258fb722',1,'rapidjson::MemoryStream::src_()']]],
+ ['src_5f',['src_',['../structrapidjson_1_1_memory_stream.html#ac0b4da6016e5ba6241604fd4258fb722',1,'rapidjson::MemoryStream::src_()'],['../structrapidjson_1_1_generic_string_stream.html#a9a38a9d5b1ce782cacd4ec1bdf87fc2d',1,'rapidjson::GenericStringStream::src_()']]],
['stream',['Stream',['../classrapidjson_1_1_stream.html',1,'rapidjson']]],
['streamtraits',['StreamTraits',['../structrapidjson_1_1_stream_traits.html',1,'rapidjson']]],
['streamtraits_3c_20genericinsitustringstream_3c_20encoding_20_3e_20_3e',['StreamTraits&lt; GenericInsituStringStream&lt; Encoding &gt; &gt;',['../structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html',1,'rapidjson']]],
['streamtraits_3c_20genericstringstream_3c_20encoding_20_3e_20_3e',['StreamTraits&lt; GenericStringStream&lt; Encoding &gt; &gt;',['../structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html',1,'rapidjson']]],
['string',['String',['../classrapidjson_1_1_pretty_writer.html#aec337a69de964cdbb8eed17d44065f3d',1,'rapidjson::PrettyWriter::String()'],['../classrapidjson_1_1_writer.html#a2efd8a54a3cb86f8adedfd6bb692d0d9',1,'rapidjson::Writer::String()']]],
- ['stringbuffer',['StringBuffer',['../namespacerapidjson.html#a51a6c35028b76e354bbb9e25d7125641',1,'rapidjson']]],
+ ['stringbuffer',['StringBuffer',['../namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21',1,'rapidjson']]],
['stringify',['Stringify',['../classrapidjson_1_1_generic_pointer.html#ab9166f175517b1bff8c2219ea769e506',1,'rapidjson::GenericPointer']]],
['stringifyurifragment',['StringifyUriFragment',['../classrapidjson_1_1_generic_pointer.html#a40413907ac94e218f93625d3a5c8c454',1,'rapidjson::GenericPointer']]],
['stringref',['StringRef',['../structrapidjson_1_1_generic_string_ref.html#aa6b9fd9f6aa49405a574c362ba9af6b5',1,'rapidjson::GenericStringRef::StringRef(const CharType *str)'],['../structrapidjson_1_1_generic_string_ref.html#a578c51ab574a50a9c760b9da7c7562f2',1,'rapidjson::GenericStringRef::StringRef(const CharType *str, size_t length)'],['../structrapidjson_1_1_generic_string_ref.html#af94951529a5d51e8c4e6e770bb707c1f',1,'rapidjson::GenericStringRef::StringRef(const std::basic_string&lt; CharType &gt; &amp;str)'],['../namespacerapidjson.html#aa6b9fd9f6aa49405a574c362ba9af6b5',1,'rapidjson::StringRef(const CharType *str)'],['../namespacerapidjson.html#a578c51ab574a50a9c760b9da7c7562f2',1,'rapidjson::StringRef(const CharType *str, size_t length)'],['../namespacerapidjson.html#af94951529a5d51e8c4e6e770bb707c1f',1,'rapidjson::StringRef(const std::basic_string&lt; CharType &gt; &amp;str)']]],
['stringreftype',['StringRefType',['../classrapidjson_1_1_generic_value.html#a559eb9cea54364a35518b02f6d74f379',1,'rapidjson::GenericValue']]],
- ['stringstream',['StringStream',['../namespacerapidjson.html#ada4cef9931d4a3a0017ee776c907807b',1,'rapidjson']]],
+ ['stringstream',['StringStream',['../namespacerapidjson.html#a021f77051e9f85188fc2f71ff5a15ebc',1,'rapidjson']]],
['swap',['Swap',['../classrapidjson_1_1_generic_value.html#a06f10ef54f5692ce08206c26624a21db',1,'rapidjson::GenericValue::Swap()'],['../classrapidjson_1_1_generic_document.html#abf1cbab989b856f9d260787b2575750b',1,'rapidjson::GenericDocument::Swap()'],['../classrapidjson_1_1_generic_pointer.html#aaaa5b0ecdfa6af45e7dabc1987c87cac',1,'rapidjson::GenericPointer::Swap(ValueType &amp;root, ValueType &amp;value, typename ValueType::AllocatorType &amp;allocator) const '],['../classrapidjson_1_1_generic_pointer.html#ad9f28da15453d91c3669618a6f48bfcc',1,'rapidjson::GenericPointer::Swap(GenericDocument&lt; EncodingType, typename ValueType::AllocatorType, stackAllocator &gt; &amp;document, ValueType &amp;value) const '],['../classrapidjson_1_1_generic_value.html#a58ecce8a34fc029039b8079de246bdaa',1,'rapidjson::GenericValue::swap()'],['../classrapidjson_1_1_generic_document.html#a0d63efcc43758ac3aed77e868233369d',1,'rapidjson::GenericDocument::swap()']]]
];
diff --git a/search/all_13.js b/search/all_13.js
index f1a32f9f..efa17410 100644
--- a/search/all_13.js
+++ b/search/all_13.js
@@ -1,7 +1,7 @@
var searchData=
[
['validate',['Validate',['../structrapidjson_1_1_transcoder.html#ae9178e512e99394a38785e73927140da',1,'rapidjson::Transcoder']]],
- ['value',['value',['../structrapidjson_1_1_generic_member.html#a8ffff2076e62d988a070a136da6ffca6',1,'rapidjson::GenericMember::value()'],['../namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d',1,'rapidjson::Value()']]],
+ ['value',['value',['../structrapidjson_1_1_generic_member.html#a8ffff2076e62d988a070a136da6ffca6',1,'rapidjson::GenericMember::value()'],['../namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505',1,'rapidjson::Value()']]],
['valuecount',['valueCount',['../structrapidjson_1_1_writer_1_1_level.html#a8e478a154f4230449e441ce986c49970',1,'rapidjson::Writer::Level']]],
['valueiterator',['ValueIterator',['../classrapidjson_1_1_generic_value.html#a06ce0e14ec83b53c83e1b1699b53a25e',1,'rapidjson::GenericValue']]],
['valuetype',['ValueType',['../classrapidjson_1_1_generic_value.html#ad2935191ab28c2c2e472b739a9d58202',1,'rapidjson::GenericValue::ValueType()'],['../classrapidjson_1_1_generic_document.html#a41bbec044c421e870a9d355075d741bc',1,'rapidjson::GenericDocument::ValueType()']]]
diff --git a/search/all_15.js b/search/all_15.js
index e89a14f8..2696f5f1 100644
--- a/search/all_15.js
+++ b/search/all_15.js
@@ -1,7 +1,7 @@
var searchData=
[
['_7egenericpointer',['~GenericPointer',['../classrapidjson_1_1_generic_pointer.html#a0e144b9956a5272c13ceff3b9306e748',1,'rapidjson::GenericPointer']]],
- ['_7egenericschemadocument',['~GenericSchemaDocument',['../classrapidjson_1_1_generic_schema_document.html#ad05d77ee8910b43513acf48fadf99c28',1,'rapidjson::GenericSchemaDocument']]],
+ ['_7egenericschemadocument',['~GenericSchemaDocument',['../classrapidjson_1_1_generic_schema_document.html#adf6f3372013227873ed392dee1e752bf',1,'rapidjson::GenericSchemaDocument']]],
['_7egenericschemavalidator',['~GenericSchemaValidator',['../classrapidjson_1_1_generic_schema_validator.html#ad9f00d71bf62b8983cf2514c43fb1572',1,'rapidjson::GenericSchemaValidator']]],
['_7egenericvalue',['~GenericValue',['../classrapidjson_1_1_generic_value.html#a433a64b466c80cadf7d1acaa6f065437',1,'rapidjson::GenericValue']]],
['_7ememorypoolallocator',['~MemoryPoolAllocator',['../classrapidjson_1_1_memory_pool_allocator.html#aa1d5b36c67611937e8ad6b2be53a483e',1,'rapidjson::MemoryPoolAllocator']]]
diff --git a/search/all_3.js b/search/all_3.js
index a1be1464..ba41dc81 100644
--- a/search/all_3.js
+++ b/search/all_3.js
@@ -1,7 +1,7 @@
var searchData=
[
['differencetype',['DifferenceType',['../classrapidjson_1_1_generic_member_iterator.html#a41b953d6523fdc09f4f21c7b345e5833',1,'rapidjson::GenericMemberIterator']]],
- ['document',['Document',['../namespacerapidjson.html#a660c934c2959121babf799b6cb206659',1,'rapidjson']]],
+ ['document',['Document',['../namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8',1,'rapidjson']]],
['document_2eh',['document.h',['../document_8h.html',1,'']]],
['double',['Double',['../classrapidjson_1_1_writer.html#ad5f042d9c1a8ce5be2d52e18255b4390',1,'rapidjson::Writer']]],
['dom',['DOM',['../md_doc_dom.html',1,'']]]
diff --git a/search/all_6.js b/search/all_6.js
index 67f85888..c50e207b 100644
--- a/search/all_6.js
+++ b/search/all_6.js
@@ -12,7 +12,7 @@ var searchData=
['genericreader',['GenericReader',['../classrapidjson_1_1_generic_reader.html#a56ab1065ea75167aeacb4802425bf57f',1,'rapidjson::GenericReader']]],
['genericreader',['GenericReader',['../classrapidjson_1_1_generic_reader.html',1,'rapidjson']]],
['genericschemadocument',['GenericSchemaDocument',['../classrapidjson_1_1_generic_schema_document.html',1,'rapidjson']]],
- ['genericschemadocument',['GenericSchemaDocument',['../classrapidjson_1_1_generic_schema_document.html#a09c94a10d412ee188de575b82292a90e',1,'rapidjson::GenericSchemaDocument']]],
+ ['genericschemadocument',['GenericSchemaDocument',['../classrapidjson_1_1_generic_schema_document.html#ad200cc7bcb193c8568cdbda7b7fd0496',1,'rapidjson::GenericSchemaDocument']]],
['genericschemavalidator',['GenericSchemaValidator',['../classrapidjson_1_1_generic_schema_validator.html',1,'rapidjson']]],
['genericschemavalidator',['GenericSchemaValidator',['../classrapidjson_1_1_generic_schema_validator.html#acc07bd08b00195d84bb5b83f59c593d3',1,'rapidjson::GenericSchemaValidator::GenericSchemaValidator(const SchemaDocumentType &amp;schemaDocument, StateAllocator *allocator=0, size_t schemaStackCapacity=kDefaultSchemaStackCapacity, size_t documentStackCapacity=kDefaultDocumentStackCapacity)'],['../classrapidjson_1_1_generic_schema_validator.html#a0e1d8f19381bd53d77cc00a9a6dcd067',1,'rapidjson::GenericSchemaValidator::GenericSchemaValidator(const SchemaDocumentType &amp;schemaDocument, OutputHandler &amp;outputHandler, StateAllocator *allocator=0, size_t schemaStackCapacity=kDefaultSchemaStackCapacity, size_t documentStackCapacity=kDefaultDocumentStackCapacity)']]],
['genericstringbuffer',['GenericStringBuffer',['../classrapidjson_1_1_generic_string_buffer.html',1,'rapidjson']]],
@@ -34,7 +34,7 @@ var searchData=
['getparseerrorcode',['GetParseErrorCode',['../classrapidjson_1_1_generic_pointer.html#ac817b123619422f03c44a46978d9fbd0',1,'rapidjson::GenericPointer::GetParseErrorCode()'],['../classrapidjson_1_1_generic_reader.html#a40fd326bad7d7033f096b549cbf159db',1,'rapidjson::GenericReader::GetParseErrorCode()']]],
['getparseerrorfunc',['GetParseErrorFunc',['../group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga4e77e464ec8abe1111ee581fc2cb00de',1,'rapidjson']]],
['getparseerroroffset',['GetParseErrorOffset',['../classrapidjson_1_1_generic_pointer.html#adc01f1be5f05127f849a2bf10a97e89b',1,'rapidjson::GenericPointer']]],
- ['getroot',['GetRoot',['../classrapidjson_1_1_generic_schema_document.html#a666d94105aa39c446327105339378320',1,'rapidjson::GenericSchemaDocument']]],
+ ['getroot',['GetRoot',['../classrapidjson_1_1_generic_schema_document.html#af64ea17654ab0f1a91e382d422f91daf',1,'rapidjson::GenericSchemaDocument']]],
['getstackcapacity',['GetStackCapacity',['../classrapidjson_1_1_generic_document.html#ac785c064649dea6cfa67207b6bda748e',1,'rapidjson::GenericDocument']]],
['getstringlength',['GetStringLength',['../classrapidjson_1_1_generic_value.html#a979c4ba6dd2a311be837ae083423aca8',1,'rapidjson::GenericValue']]],
['gettokencount',['GetTokenCount',['../classrapidjson_1_1_generic_pointer.html#a2949cb104effdf323781ae70ce469ed9',1,'rapidjson::GenericPointer']]],
diff --git a/search/all_8.js b/search/all_8.js
index 7348e0f9..653e5e0f 100644
--- a/search/all_8.js
+++ b/search/all_8.js
@@ -4,8 +4,8 @@ var searchData=
['igenericremoteschemadocumentprovider',['IGenericRemoteSchemaDocumentProvider',['../classrapidjson_1_1_i_generic_remote_schema_document_provider.html',1,'rapidjson']]],
['inarray',['inArray',['../structrapidjson_1_1_writer_1_1_level.html#a5920547a092cb88db486d75064ffe50e',1,'rapidjson::Writer::Level']]],
['index',['index',['../structrapidjson_1_1_generic_pointer_1_1_token.html#a50331c9e3dedc34d2c79745b2e58fb2d',1,'rapidjson::GenericPointer::Token']]],
- ['insitustringstream',['InsituStringStream',['../namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787',1,'rapidjson']]],
- ['iremoteschemadocumentprovider',['IRemoteSchemaDocumentProvider',['../namespacerapidjson.html#a735a06a6e822111798e302c2f3af3de9',1,'rapidjson']]],
+ ['insitustringstream',['InsituStringStream',['../namespacerapidjson.html#a64e957c8d9d7cd15b193ffc31410038e',1,'rapidjson']]],
+ ['iremoteschemadocumentprovider',['IRemoteSchemaDocumentProvider',['../namespacerapidjson.html#af91eb8eea47b79d75b23e29fa9c0abb5',1,'rapidjson']]],
['iscomplete',['IsComplete',['../classrapidjson_1_1_writer.html#ad70218827efbda426bbc8620a9339c3e',1,'rapidjson::Writer']]],
['iserror',['IsError',['../group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#a5ab5548c7a7776f4da20eac09fe57c1b',1,'rapidjson::ParseResult']]],
['isvalid',['IsValid',['../classrapidjson_1_1_generic_pointer.html#a112f364fe9aeabba2a72e83bcbeb8fda',1,'rapidjson::GenericPointer::IsValid()'],['../classrapidjson_1_1_generic_schema_validator.html#ab520a4ee6df3e23ffb948c8d5ae7bf38',1,'rapidjson::GenericSchemaValidator::IsValid()']]],
diff --git a/search/all_e.js b/search/all_e.js
index 076ca556..e0d80416 100644
--- a/search/all_e.js
+++ b/search/all_e.js
@@ -9,14 +9,14 @@ var searchData=
['parseresult',['ParseResult',['../group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#a0f03679d5fa2736d9e351541e767fac1',1,'rapidjson::ParseResult::ParseResult()'],['../group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ad15710045513f13ba526753c4a2cb59b',1,'rapidjson::ParseResult::ParseResult(ParseErrorCode code, size_t offset)']]],
['parseresult',['ParseResult',['../group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#structrapidjson_1_1_parse_result',1,'rapidjson']]],
['parsestream',['ParseStream',['../classrapidjson_1_1_generic_document.html#a3ae97682cf04685c7db9d89ebc399b85',1,'rapidjson::GenericDocument::ParseStream(InputStream &amp;is)'],['../classrapidjson_1_1_generic_document.html#ae4ee7d86b8c906c83dbe15e57eb6ac6a',1,'rapidjson::GenericDocument::ParseStream(InputStream &amp;is)'],['../classrapidjson_1_1_generic_document.html#acf96a3c7fd61486d049c701b1fe5d414',1,'rapidjson::GenericDocument::ParseStream(InputStream &amp;is)']]],
- ['pointer',['Pointer',['../classrapidjson_1_1_generic_member_iterator.html#a17955e32a06f667c672b270e6a4d2195',1,'rapidjson::GenericMemberIterator::Pointer()'],['../namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3',1,'rapidjson::Pointer()']]],
+ ['pointer',['Pointer',['../classrapidjson_1_1_generic_member_iterator.html#a17955e32a06f667c672b270e6a4d2195',1,'rapidjson::GenericMemberIterator::Pointer()'],['../namespacerapidjson.html#a080910f74d2f5046e6724280159cf374',1,'rapidjson::Pointer()']]],
['pointerparseerrorcode',['PointerParseErrorCode',['../group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gade540ee4cc2a416c23b8ee2c12393c7b',1,'rapidjson']]],
['popback',['PopBack',['../classrapidjson_1_1_generic_value.html#ae475f31fb851138ced40e2ff6cb43ca6',1,'rapidjson::GenericValue']]],
['populate',['Populate',['../classrapidjson_1_1_generic_document.html#a63e18887979da500ece6f0bd10d29b64',1,'rapidjson::GenericDocument']]],
['prettywriter',['PrettyWriter',['../classrapidjson_1_1_pretty_writer.html',1,'rapidjson']]],
['prettywriter',['PrettyWriter',['../classrapidjson_1_1_pretty_writer.html#a96edf06d5bbb010d3e8c95b22b6f4750',1,'rapidjson::PrettyWriter']]],
['pushback',['PushBack',['../classrapidjson_1_1_generic_value.html#a0ec9f34bef5890241d4bc882b73b1db4',1,'rapidjson::GenericValue::PushBack(GenericValue &amp;value, Allocator &amp;allocator)'],['../classrapidjson_1_1_generic_value.html#a41946915cb219a684f6ffc9341efee22',1,'rapidjson::GenericValue::PushBack(StringRefType value, Allocator &amp;allocator)'],['../classrapidjson_1_1_generic_value.html#aa59273e0adfe2a9d0e6ac29d2537d9ed',1,'rapidjson::GenericValue::PushBack(T value, Allocator &amp;allocator)']]],
- ['putn',['PutN',['../namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43',1,'rapidjson::PutN(Stream &amp;stream, Ch c, size_t n)'],['../namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a',1,'rapidjson::PutN(FileWriteStream &amp;stream, char c, size_t n)'],['../namespacerapidjson.html#aba27b0c8dcf724aa2b288a24fda0811b',1,'rapidjson::PutN(MemoryBuffer &amp;memoryBuffer, char c, size_t n)'],['../namespacerapidjson.html#a9d43be9c033dc49738b713fe6fbafecf',1,'rapidjson::PutN(GenericStringBuffer&lt; UTF8&lt;&gt; &gt; &amp;stream, char c, size_t n)']]],
+ ['putn',['PutN',['../namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a',1,'rapidjson::PutN(FileWriteStream &amp;stream, char c, size_t n)'],['../namespacerapidjson.html#aba27b0c8dcf724aa2b288a24fda0811b',1,'rapidjson::PutN(MemoryBuffer &amp;memoryBuffer, char c, size_t n)'],['../namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43',1,'rapidjson::PutN(Stream &amp;stream, Ch c, size_t n)'],['../namespacerapidjson.html#a9d43be9c033dc49738b713fe6fbafecf',1,'rapidjson::PutN(GenericStringBuffer&lt; UTF8&lt;&gt; &gt; &amp;stream, char c, size_t n)']]],
['putreserve',['PutReserve',['../namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740',1,'rapidjson']]],
['putunsafe',['PutUnsafe',['../namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20',1,'rapidjson']]]
];
diff --git a/search/all_f.js b/search/all_f.js
index 8901ebbe..06b68ccc 100644
--- a/search/all_f.js
+++ b/search/all_f.js
@@ -30,7 +30,7 @@ var searchData=
['rapidjson_5fuint64_5fc2',['RAPIDJSON_UINT64_C2',['../rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f',1,'rapidjson.h']]],
['rapidjson_5funlikely',['RAPIDJSON_UNLIKELY',['../group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga6a2b1695c13e77ae425e3cbac980ccb5',1,'rapidjson.h']]],
['rapidjson_5fversion_5fstring',['RAPIDJSON_VERSION_STRING',['../group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gad283cfde97d9a32b7d8e8107b11f70a6',1,'rapidjson.h']]],
- ['reader',['Reader',['../namespacerapidjson.html#a4eaef42a208413d1f2c8d4655ecec52d',1,'rapidjson']]],
+ ['reader',['Reader',['../namespacerapidjson.html#ad5310edd1226f5b3ea82dc0d4d3740c6',1,'rapidjson']]],
['reader_2eh',['reader.h',['../reader_8h.html',1,'']]],
['realloc',['Realloc',['../classrapidjson_1_1_memory_pool_allocator.html#a880524b17bbecb5d2691b8075050d55d',1,'rapidjson::MemoryPoolAllocator']]],
['reference',['Reference',['../classrapidjson_1_1_generic_member_iterator.html#a915a1b6f0a0bbe6a1df69571a789e348',1,'rapidjson::GenericMemberIterator']]],
diff --git a/search/functions_11.js b/search/functions_11.js
index e89a14f8..2696f5f1 100644
--- a/search/functions_11.js
+++ b/search/functions_11.js
@@ -1,7 +1,7 @@
var searchData=
[
['_7egenericpointer',['~GenericPointer',['../classrapidjson_1_1_generic_pointer.html#a0e144b9956a5272c13ceff3b9306e748',1,'rapidjson::GenericPointer']]],
- ['_7egenericschemadocument',['~GenericSchemaDocument',['../classrapidjson_1_1_generic_schema_document.html#ad05d77ee8910b43513acf48fadf99c28',1,'rapidjson::GenericSchemaDocument']]],
+ ['_7egenericschemadocument',['~GenericSchemaDocument',['../classrapidjson_1_1_generic_schema_document.html#adf6f3372013227873ed392dee1e752bf',1,'rapidjson::GenericSchemaDocument']]],
['_7egenericschemavalidator',['~GenericSchemaValidator',['../classrapidjson_1_1_generic_schema_validator.html#ad9f00d71bf62b8983cf2514c43fb1572',1,'rapidjson::GenericSchemaValidator']]],
['_7egenericvalue',['~GenericValue',['../classrapidjson_1_1_generic_value.html#a433a64b466c80cadf7d1acaa6f065437',1,'rapidjson::GenericValue']]],
['_7ememorypoolallocator',['~MemoryPoolAllocator',['../classrapidjson_1_1_memory_pool_allocator.html#aa1d5b36c67611937e8ad6b2be53a483e',1,'rapidjson::MemoryPoolAllocator']]]
diff --git a/search/functions_6.js b/search/functions_6.js
index 89bd9ba8..e866c9b2 100644
--- a/search/functions_6.js
+++ b/search/functions_6.js
@@ -4,7 +4,7 @@ var searchData=
['genericmemberiterator',['GenericMemberIterator',['../classrapidjson_1_1_generic_member_iterator.html#ac920af483c9e31a6746c22acf0dffc50',1,'rapidjson::GenericMemberIterator::GenericMemberIterator()'],['../classrapidjson_1_1_generic_member_iterator.html#aa30ffef74b3f4978b403024d81b484e4',1,'rapidjson::GenericMemberIterator::GenericMemberIterator(const NonConstIterator &amp;it)']]],
['genericpointer',['GenericPointer',['../classrapidjson_1_1_generic_pointer.html#aa077ce171ea25cf501c12f2d5df7f248',1,'rapidjson::GenericPointer::GenericPointer(Allocator *allocator=0)'],['../classrapidjson_1_1_generic_pointer.html#a8f831aae14afc493a82b5fb6aa9c3c43',1,'rapidjson::GenericPointer::GenericPointer(const Ch *source, Allocator *allocator=0)'],['../classrapidjson_1_1_generic_pointer.html#aeefcd60e5ad37d80ec43f5315ae84809',1,'rapidjson::GenericPointer::GenericPointer(const std::basic_string&lt; Ch &gt; &amp;source, Allocator *allocator=0)'],['../classrapidjson_1_1_generic_pointer.html#a00ad17ea227d2556404df7cc64c6aeb5',1,'rapidjson::GenericPointer::GenericPointer(const Ch *source, size_t length, Allocator *allocator=0)'],['../classrapidjson_1_1_generic_pointer.html#a6df9f6a01d1b5945811055e1cf8aead6',1,'rapidjson::GenericPointer::GenericPointer(const Token *tokens, size_t tokenCount)'],['../classrapidjson_1_1_generic_pointer.html#a9f8119f2c714f78794854828789b832e',1,'rapidjson::GenericPointer::GenericPointer(const GenericPointer &amp;rhs, Allocator *allocator=0)']]],
['genericreader',['GenericReader',['../classrapidjson_1_1_generic_reader.html#a56ab1065ea75167aeacb4802425bf57f',1,'rapidjson::GenericReader']]],
- ['genericschemadocument',['GenericSchemaDocument',['../classrapidjson_1_1_generic_schema_document.html#a09c94a10d412ee188de575b82292a90e',1,'rapidjson::GenericSchemaDocument']]],
+ ['genericschemadocument',['GenericSchemaDocument',['../classrapidjson_1_1_generic_schema_document.html#ad200cc7bcb193c8568cdbda7b7fd0496',1,'rapidjson::GenericSchemaDocument']]],
['genericschemavalidator',['GenericSchemaValidator',['../classrapidjson_1_1_generic_schema_validator.html#acc07bd08b00195d84bb5b83f59c593d3',1,'rapidjson::GenericSchemaValidator::GenericSchemaValidator(const SchemaDocumentType &amp;schemaDocument, StateAllocator *allocator=0, size_t schemaStackCapacity=kDefaultSchemaStackCapacity, size_t documentStackCapacity=kDefaultDocumentStackCapacity)'],['../classrapidjson_1_1_generic_schema_validator.html#a0e1d8f19381bd53d77cc00a9a6dcd067',1,'rapidjson::GenericSchemaValidator::GenericSchemaValidator(const SchemaDocumentType &amp;schemaDocument, OutputHandler &amp;outputHandler, StateAllocator *allocator=0, size_t schemaStackCapacity=kDefaultSchemaStackCapacity, size_t documentStackCapacity=kDefaultDocumentStackCapacity)']]],
['genericstringref',['GenericStringRef',['../structrapidjson_1_1_generic_string_ref.html#acd4d5ebac2b610ce647356aa52998002',1,'rapidjson::GenericStringRef::GenericStringRef(const CharType(&amp;str)[N]) RAPIDJSON_NOEXCEPT'],['../structrapidjson_1_1_generic_string_ref.html#a29cf407c6aa2313f13dff78d6ce02687',1,'rapidjson::GenericStringRef::GenericStringRef(const CharType *str)'],['../structrapidjson_1_1_generic_string_ref.html#ad9eb120a58cee500ff3bd5706779c4e4',1,'rapidjson::GenericStringRef::GenericStringRef(const CharType *str, SizeType len)']]],
['genericvalue',['GenericValue',['../classrapidjson_1_1_generic_value.html#ad1f8199e65662e0d52a13a1577d4e4a5',1,'rapidjson::GenericValue::GenericValue() RAPIDJSON_NOEXCEPT'],['../classrapidjson_1_1_generic_value.html#a646b6d4d3d98799a0926d96ffa127a58',1,'rapidjson::GenericValue::GenericValue(Type type) RAPIDJSON_NOEXCEPT'],['../classrapidjson_1_1_generic_value.html#a62a9fac23db014e88c508c2020573679',1,'rapidjson::GenericValue::GenericValue(const GenericValue&lt; Encoding, SourceAllocator &gt; &amp;rhs, Allocator &amp;allocator)'],['../classrapidjson_1_1_generic_value.html#ab933ad7ff8c9d08f73cebaecb700dbe9',1,'rapidjson::GenericValue::GenericValue(bool b) RAPIDJSON_NOEXCEPT'],['../classrapidjson_1_1_generic_value.html#abba0c9ccfd90726f916c36013a2e9e19',1,'rapidjson::GenericValue::GenericValue(int i) RAPIDJSON_NOEXCEPT'],['../classrapidjson_1_1_generic_value.html#a4a8060a42b7953a2981ad892180ca5a6',1,'rapidjson::GenericValue::GenericValue(unsigned u) RAPIDJSON_NOEXCEPT'],['../classrapidjson_1_1_generic_value.html#acd4ae9a8dba4498d1d7cce6667529bb8',1,'rapidjson::GenericValue::GenericValue(int64_t i64) RAPIDJSON_NOEXCEPT'],['../classrapidjson_1_1_generic_value.html#a1f125e735577aae64c0306345de45563',1,'rapidjson::GenericValue::GenericValue(uint64_t u64) RAPIDJSON_NOEXCEPT'],['../classrapidjson_1_1_generic_value.html#a71b9e2ec1f7bf9e2f034126ca7b4945a',1,'rapidjson::GenericValue::GenericValue(double d) RAPIDJSON_NOEXCEPT'],['../classrapidjson_1_1_generic_value.html#a51e93a4fb57f77a39767acb076bf43c1',1,'rapidjson::GenericValue::GenericValue(const Ch *s, SizeType length) RAPIDJSON_NOEXCEPT'],['../classrapidjson_1_1_generic_value.html#a65bfc3073fa80ee5eba8e985abe2f941',1,'rapidjson::GenericValue::GenericValue(StringRefType s) RAPIDJSON_NOEXCEPT'],['../classrapidjson_1_1_generic_value.html#ad9553bb9ccbfd19547c473a95405a8b2',1,'rapidjson::GenericValue::GenericValue(const Ch *s, SizeType length, Allocator &amp;allocator)'],['../classrapidjson_1_1_generic_value.html#a83ba61e8a5170c2e172fd60ebc11016f',1,'rapidjson::GenericValue::GenericValue(const Ch *s, Allocator &amp;allocator)'],['../classrapidjson_1_1_generic_value.html#a852788b35257762cd8d6c4bf5c5d77bc',1,'rapidjson::GenericValue::GenericValue(const std::basic_string&lt; Ch &gt; &amp;s, Allocator &amp;allocator)']]],
@@ -19,7 +19,7 @@ var searchData=
['getparseerror_5fen',['GetParseError_En',['../group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gabdaf1a7a4db30fb0e3d927fdf0fabe79',1,'rapidjson']]],
['getparseerrorcode',['GetParseErrorCode',['../classrapidjson_1_1_generic_pointer.html#ac817b123619422f03c44a46978d9fbd0',1,'rapidjson::GenericPointer::GetParseErrorCode()'],['../classrapidjson_1_1_generic_reader.html#a40fd326bad7d7033f096b549cbf159db',1,'rapidjson::GenericReader::GetParseErrorCode()']]],
['getparseerroroffset',['GetParseErrorOffset',['../classrapidjson_1_1_generic_pointer.html#adc01f1be5f05127f849a2bf10a97e89b',1,'rapidjson::GenericPointer']]],
- ['getroot',['GetRoot',['../classrapidjson_1_1_generic_schema_document.html#a666d94105aa39c446327105339378320',1,'rapidjson::GenericSchemaDocument']]],
+ ['getroot',['GetRoot',['../classrapidjson_1_1_generic_schema_document.html#af64ea17654ab0f1a91e382d422f91daf',1,'rapidjson::GenericSchemaDocument']]],
['getstackcapacity',['GetStackCapacity',['../classrapidjson_1_1_generic_document.html#ac785c064649dea6cfa67207b6bda748e',1,'rapidjson::GenericDocument']]],
['getstringlength',['GetStringLength',['../classrapidjson_1_1_generic_value.html#a979c4ba6dd2a311be837ae083423aca8',1,'rapidjson::GenericValue']]],
['gettokencount',['GetTokenCount',['../classrapidjson_1_1_generic_pointer.html#a2949cb104effdf323781ae70ce469ed9',1,'rapidjson::GenericPointer']]],
diff --git a/search/functions_b.js b/search/functions_b.js
index 7bf3f26c..74b3c9ee 100644
--- a/search/functions_b.js
+++ b/search/functions_b.js
@@ -8,7 +8,7 @@ var searchData=
['populate',['Populate',['../classrapidjson_1_1_generic_document.html#a63e18887979da500ece6f0bd10d29b64',1,'rapidjson::GenericDocument']]],
['prettywriter',['PrettyWriter',['../classrapidjson_1_1_pretty_writer.html#a96edf06d5bbb010d3e8c95b22b6f4750',1,'rapidjson::PrettyWriter']]],
['pushback',['PushBack',['../classrapidjson_1_1_generic_value.html#a0ec9f34bef5890241d4bc882b73b1db4',1,'rapidjson::GenericValue::PushBack(GenericValue &amp;value, Allocator &amp;allocator)'],['../classrapidjson_1_1_generic_value.html#a41946915cb219a684f6ffc9341efee22',1,'rapidjson::GenericValue::PushBack(StringRefType value, Allocator &amp;allocator)'],['../classrapidjson_1_1_generic_value.html#aa59273e0adfe2a9d0e6ac29d2537d9ed',1,'rapidjson::GenericValue::PushBack(T value, Allocator &amp;allocator)']]],
- ['putn',['PutN',['../namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43',1,'rapidjson::PutN(Stream &amp;stream, Ch c, size_t n)'],['../namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a',1,'rapidjson::PutN(FileWriteStream &amp;stream, char c, size_t n)'],['../namespacerapidjson.html#aba27b0c8dcf724aa2b288a24fda0811b',1,'rapidjson::PutN(MemoryBuffer &amp;memoryBuffer, char c, size_t n)'],['../namespacerapidjson.html#a9d43be9c033dc49738b713fe6fbafecf',1,'rapidjson::PutN(GenericStringBuffer&lt; UTF8&lt;&gt; &gt; &amp;stream, char c, size_t n)']]],
+ ['putn',['PutN',['../namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a',1,'rapidjson::PutN(FileWriteStream &amp;stream, char c, size_t n)'],['../namespacerapidjson.html#aba27b0c8dcf724aa2b288a24fda0811b',1,'rapidjson::PutN(MemoryBuffer &amp;memoryBuffer, char c, size_t n)'],['../namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43',1,'rapidjson::PutN(Stream &amp;stream, Ch c, size_t n)'],['../namespacerapidjson.html#a9d43be9c033dc49738b713fe6fbafecf',1,'rapidjson::PutN(GenericStringBuffer&lt; UTF8&lt;&gt; &gt; &amp;stream, char c, size_t n)']]],
['putreserve',['PutReserve',['../namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740',1,'rapidjson']]],
['putunsafe',['PutUnsafe',['../namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20',1,'rapidjson']]]
];
diff --git a/search/typedefs_2.js b/search/typedefs_2.js
index 9cae5457..40d8b34d 100644
--- a/search/typedefs_2.js
+++ b/search/typedefs_2.js
@@ -1,5 +1,5 @@
var searchData=
[
['differencetype',['DifferenceType',['../classrapidjson_1_1_generic_member_iterator.html#a41b953d6523fdc09f4f21c7b345e5833',1,'rapidjson::GenericMemberIterator']]],
- ['document',['Document',['../namespacerapidjson.html#a660c934c2959121babf799b6cb206659',1,'rapidjson']]]
+ ['document',['Document',['../namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8',1,'rapidjson']]]
];
diff --git a/search/typedefs_5.js b/search/typedefs_5.js
index 0fee58b0..4f84db6a 100644
--- a/search/typedefs_5.js
+++ b/search/typedefs_5.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['insitustringstream',['InsituStringStream',['../namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787',1,'rapidjson']]],
- ['iremoteschemadocumentprovider',['IRemoteSchemaDocumentProvider',['../namespacerapidjson.html#a735a06a6e822111798e302c2f3af3de9',1,'rapidjson']]],
+ ['insitustringstream',['InsituStringStream',['../namespacerapidjson.html#a64e957c8d9d7cd15b193ffc31410038e',1,'rapidjson']]],
+ ['iremoteschemadocumentprovider',['IRemoteSchemaDocumentProvider',['../namespacerapidjson.html#af91eb8eea47b79d75b23e29fa9c0abb5',1,'rapidjson']]],
['iterator',['Iterator',['../classrapidjson_1_1_generic_member_iterator.html#a37091c3dd8470486ef5188f3c1108653',1,'rapidjson::GenericMemberIterator']]]
];
diff --git a/search/typedefs_8.js b/search/typedefs_8.js
index e880a4dd..2797f7f5 100644
--- a/search/typedefs_8.js
+++ b/search/typedefs_8.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['pointer',['Pointer',['../classrapidjson_1_1_generic_member_iterator.html#a17955e32a06f667c672b270e6a4d2195',1,'rapidjson::GenericMemberIterator::Pointer()'],['../namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3',1,'rapidjson::Pointer()']]]
+ ['pointer',['Pointer',['../classrapidjson_1_1_generic_member_iterator.html#a17955e32a06f667c672b270e6a4d2195',1,'rapidjson::GenericMemberIterator::Pointer()'],['../namespacerapidjson.html#a080910f74d2f5046e6724280159cf374',1,'rapidjson::Pointer()']]]
];
diff --git a/search/typedefs_9.js b/search/typedefs_9.js
index 52ea7bef..ffc81de0 100644
--- a/search/typedefs_9.js
+++ b/search/typedefs_9.js
@@ -1,5 +1,5 @@
var searchData=
[
- ['reader',['Reader',['../namespacerapidjson.html#a4eaef42a208413d1f2c8d4655ecec52d',1,'rapidjson']]],
+ ['reader',['Reader',['../namespacerapidjson.html#ad5310edd1226f5b3ea82dc0d4d3740c6',1,'rapidjson']]],
['reference',['Reference',['../classrapidjson_1_1_generic_member_iterator.html#a915a1b6f0a0bbe6a1df69571a789e348',1,'rapidjson::GenericMemberIterator']]]
];
diff --git a/search/typedefs_a.js b/search/typedefs_a.js
index 21165883..7a966a45 100644
--- a/search/typedefs_a.js
+++ b/search/typedefs_a.js
@@ -1,8 +1,8 @@
var searchData=
[
- ['schemadocument',['SchemaDocument',['../namespacerapidjson.html#a1039ee639733008423fd0dfb67122e54',1,'rapidjson']]],
+ ['schemadocument',['SchemaDocument',['../namespacerapidjson.html#a52bbb5d64d1319495089e1713a0653cf',1,'rapidjson']]],
['sizetype',['SizeType',['../namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84',1,'rapidjson']]],
- ['stringbuffer',['StringBuffer',['../namespacerapidjson.html#a51a6c35028b76e354bbb9e25d7125641',1,'rapidjson']]],
+ ['stringbuffer',['StringBuffer',['../namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21',1,'rapidjson']]],
['stringreftype',['StringRefType',['../classrapidjson_1_1_generic_value.html#a559eb9cea54364a35518b02f6d74f379',1,'rapidjson::GenericValue']]],
- ['stringstream',['StringStream',['../namespacerapidjson.html#ada4cef9931d4a3a0017ee776c907807b',1,'rapidjson']]]
+ ['stringstream',['StringStream',['../namespacerapidjson.html#a021f77051e9f85188fc2f71ff5a15ebc',1,'rapidjson']]]
];
diff --git a/search/typedefs_b.js b/search/typedefs_b.js
index db8707a2..ca066b22 100644
--- a/search/typedefs_b.js
+++ b/search/typedefs_b.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['value',['Value',['../namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d',1,'rapidjson']]],
+ ['value',['Value',['../namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505',1,'rapidjson']]],
['valueiterator',['ValueIterator',['../classrapidjson_1_1_generic_value.html#a06ce0e14ec83b53c83e1b1699b53a25e',1,'rapidjson::GenericValue']]],
['valuetype',['ValueType',['../classrapidjson_1_1_generic_value.html#ad2935191ab28c2c2e472b739a9d58202',1,'rapidjson::GenericValue::ValueType()'],['../classrapidjson_1_1_generic_document.html#a41bbec044c421e870a9d355075d741bc',1,'rapidjson::GenericDocument::ValueType()']]]
];
diff --git a/search/variables_7.js b/search/variables_7.js
index 12390e3c..f3628c93 100644
--- a/search/variables_7.js
+++ b/search/variables_7.js
@@ -2,5 +2,5 @@ var searchData=
[
['s',['s',['../structrapidjson_1_1_generic_string_ref.html#a001276ee57cbcbd3c14449045c71e994',1,'rapidjson::GenericStringRef']]],
['size_5f',['size_',['../structrapidjson_1_1_memory_stream.html#a8c8437d59c32168a74226312d9e96ace',1,'rapidjson::MemoryStream']]],
- ['src_5f',['src_',['../structrapidjson_1_1_generic_string_stream.html#a9a38a9d5b1ce782cacd4ec1bdf87fc2d',1,'rapidjson::GenericStringStream::src_()'],['../structrapidjson_1_1_memory_stream.html#ac0b4da6016e5ba6241604fd4258fb722',1,'rapidjson::MemoryStream::src_()']]]
+ ['src_5f',['src_',['../structrapidjson_1_1_memory_stream.html#ac0b4da6016e5ba6241604fd4258fb722',1,'rapidjson::MemoryStream::src_()'],['../structrapidjson_1_1_generic_string_stream.html#a9a38a9d5b1ce782cacd4ec1bdf87fc2d',1,'rapidjson::GenericStringStream::src_()']]]
];
diff --git a/stack_8h_source.html b/stack_8h_source.html
index d13ca2ba..304b9386 100644
--- a/stack_8h_source.html
+++ b/stack_8h_source.html
@@ -105,7 +105,7 @@ $(document).ready(function(){initNavTree('stack_8h_source.html','');});
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_INTERNAL_STACK_H_</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define RAPIDJSON_INTERNAL_STACK_H_</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../rapidjson.h&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../allocators.h&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;swap.h&quot;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#if defined(__clang__)</span></div>
diff --git a/stream_8h_source.html b/stream_8h_source.html
new file mode 100644
index 00000000..1329abcc
--- /dev/null
+++ b/stream_8h_source.html
@@ -0,0 +1,305 @@
+<!-- HTML header for doxygen 1.8.7-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>RapidJSON: include/rapidjson/stream.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+<link href="doxygenextra.css" rel="stylesheet" type="text/css"/>
+</head>
+<script>
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ ga('create', 'UA-63929386-1', 'auto');
+ ga('send', 'pageview');
+</script>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="topbanner"><a href="https://github.com/miloyip/rapidjson" title="RapidJSON GitHub"><i class="githublogo"></i></a></div>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('stream_8h_source.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">stream.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// Tencent is pleased to support the open source community by making RapidJSON available.</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Licensed under the MIT License (the &quot;License&quot;); you may not use this file except</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// in compliance with the License. You may obtain a copy of the License at</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// http://opensource.org/licenses/MIT</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// Unless required by applicable law or agreed to in writing, software distributed </span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR </span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// CONDITIONS OF ANY KIND, either express or implied. See the License for the </span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// specific language governing permissions and limitations under the License.</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rapidjson_8h.html">rapidjson.h</a>&quot;</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_STREAM_H_</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#define RAPIDJSON_STREAM_H_</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;encodings.h&quot;</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"> 22</span>&#160;RAPIDJSON_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">///////////////////////////////////////////////////////////////////////////////</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"></span><span class="comment">// Stream</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">/*! \class rapidjson::Stream</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> \brief Concept for reading and writing characters.</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> For read-only stream, no need to implement PutBegin(), Put(), Flush() and PutEnd().</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> For write-only stream, only need to implement Put() and Flush().</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment">\code</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">concept Stream {</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> typename Ch; //!&lt; Character type of the stream.</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"></span><span class="comment"></span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment"> //! Read the current character from stream without moving the read cursor.</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"></span> Ch Peek() const;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> //! Read the current character from stream and moving the read cursor to next character.</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"></span> Ch Take();</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> //! Get the current read cursor.</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> //! \return Number of characters read from start.</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"></span> size_t Tell();</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> //! Begin writing operation at the current read pointer.</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> //! \return The begin writer pointer.</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"></span> Ch* PutBegin();</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> //! Write a character.</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"></span> void Put(Ch c);</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"> //! Flush the buffer.</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"></span> void Flush();</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"> //! End the writing operation.</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"> //! \param begin The begin write pointer returned by PutBegin().</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment"> //! \return Number of characters written.</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"></span> size_t PutEnd(Ch* begin);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;}</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;\endcode</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="comment"></span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment">//! Provides additional information for stream.</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment"></span><span class="comment">/*!</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment"> By using traits pattern, this type provides a default configuration for stream.</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment"> For custom stream, this type can be specialized for other configuration.</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment"> See TEST(Reader, CustomStringStream) in readertest.cpp for example.</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Stream&gt;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_stream_traits.html"> 73</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_stream_traits.html">StreamTraits</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment"> //! Whether to make local copy of stream for optimization during parsing.</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment"></span><span class="comment"> /*!</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment"> By default, for safety, streams do not use local copy optimization.</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment"> Stream that can be copied fast should specialize this, like StreamTraits&lt;StringStream&gt;.</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">enum</span> { copyOptimization = 0 };</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;};</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment">//! Reserve n characters for writing to a stream.</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Stream&gt;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740"> 84</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">PutReserve</a>(<a class="code" href="classrapidjson_1_1_stream.html">Stream</a>&amp; stream, <span class="keywordtype">size_t</span> count) {</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; (void)stream;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; (void)count;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;}</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment">//! Write character to a stream, presuming buffer is reserved.</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Stream&gt;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20"> 91</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(<a class="code" href="classrapidjson_1_1_stream.html">Stream</a>&amp; stream, <span class="keyword">typename</span> Stream::Ch c) {</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; stream.Put(c);</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;}</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="comment">//! Put N copies of a character to a stream.</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Stream, <span class="keyword">typename</span> Ch&gt;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43"> 97</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a">PutN</a>(<a class="code" href="classrapidjson_1_1_stream.html">Stream</a>&amp; stream, Ch c, <span class="keywordtype">size_t</span> n) {</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; PutReserve&lt;Stream&gt;(stream, n);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; n; i++)</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(stream, c);</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;}</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment">///////////////////////////////////////////////////////////////////////////////</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment"></span><span class="comment">// StringStream</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment">//! Read-only string stream.</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="comment"></span><span class="comment">/*! \note implements Stream concept</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding&gt;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="keyword">struct </span>GenericStringStream {</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> Encoding::Ch Ch;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GenericStringStream(<span class="keyword">const</span> Ch *src) : src_(src), head_(src) {}</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; Ch Peek()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *src_; }</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; Ch Take() { <span class="keywordflow">return</span> *src_++; }</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordtype">size_t</span> Tell()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">size_t</span><span class="keyword">&gt;</span>(src_ - head_); }</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; Ch* PutBegin() { <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(<span class="keyword">false</span>); <span class="keywordflow">return</span> 0; }</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordtype">void</span> Put(Ch) { <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(<span class="keyword">false</span>); }</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordtype">void</span> Flush() { <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(<span class="keyword">false</span>); }</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordtype">size_t</span> PutEnd(Ch*) { <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(<span class="keyword">false</span>); <span class="keywordflow">return</span> 0; }</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_generic_string_stream.html#a9a38a9d5b1ce782cacd4ec1bdf87fc2d"> 124</a></span>&#160; <span class="keyword">const</span> Ch* <a class="code" href="structrapidjson_1_1_generic_string_stream.html#a9a38a9d5b1ce782cacd4ec1bdf87fc2d">src_</a>; <span class="comment">//!&lt; Current read position.</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_generic_string_stream.html#a2556705b0a0fd6393862efe6db025b32"> 125</a></span>&#160;<span class="comment"></span> <span class="keyword">const</span> Ch* <a class="code" href="structrapidjson_1_1_generic_string_stream.html#a2556705b0a0fd6393862efe6db025b32">head_</a>; <span class="comment">//!&lt; Original head of the string.</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment"></span>};</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding&gt;</div>
+<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html"> 129</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_stream_traits.html">StreamTraits</a>&lt;<a class="code" href="structrapidjson_1_1_generic_string_stream.html">GenericStringStream</a>&lt;<a class="code" href="classrapidjson_1_1_encoding.html">Encoding</a>&gt; &gt; {</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">enum</span> { copyOptimization = 1 };</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;};</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment">//! String stream with UTF8 encoding.</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="structrapidjson_1_1_generic_string_stream.html">GenericStringStream&lt;UTF8&lt;&gt;</a> &gt; <a class="code" href="structrapidjson_1_1_generic_string_stream.html">StringStream</a>;</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment">///////////////////////////////////////////////////////////////////////////////</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="comment"></span><span class="comment">// InsituStringStream</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment">//! A read-write string stream.</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment"></span><span class="comment">/*! This string stream is particularly designed for in-situ parsing.</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment"> \note implements Stream concept</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="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding&gt;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_generic_insitu_string_stream.html">GenericInsituStringStream</a> {</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> Encoding::Ch Ch;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="structrapidjson_1_1_generic_insitu_string_stream.html">GenericInsituStringStream</a>(Ch *src) : src_(src), dst_(0), head_(src) {}</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="comment">// Read</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; Ch Peek() { <span class="keywordflow">return</span> *src_; }</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; Ch Take() { <span class="keywordflow">return</span> *src_++; }</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordtype">size_t</span> Tell() { <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">size_t</span><span class="keyword">&gt;</span>(src_ - head_); }</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="comment">// Write</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordtype">void</span> Put(Ch c) { <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(dst_ != 0); *dst_++ = c; }</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; Ch* PutBegin() { <span class="keywordflow">return</span> dst_ = src_; }</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordtype">size_t</span> PutEnd(Ch* begin) { <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">size_t</span><span class="keyword">&gt;</span>(dst_ - begin); }</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordtype">void</span> Flush() {}</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; Ch* Push(<span class="keywordtype">size_t</span> count) { Ch* begin = dst_; dst_ += count; <span class="keywordflow">return</span> begin; }</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordtype">void</span> Pop(<span class="keywordtype">size_t</span> count) { dst_ -= count; }</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"> 164</span>&#160; Ch* src_;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; Ch* dst_;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; Ch* head_;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;};</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding&gt;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html"> 170</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_stream_traits.html">StreamTraits</a>&lt;<a class="code" href="structrapidjson_1_1_generic_insitu_string_stream.html">GenericInsituStringStream</a>&lt;<a class="code" href="classrapidjson_1_1_encoding.html">Encoding</a>&gt; &gt; {</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">enum</span> { copyOptimization = 1 };</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;};</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="comment">//! Insitu string stream with UTF8 encoding.</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="structrapidjson_1_1_generic_insitu_string_stream.html">GenericInsituStringStream&lt;UTF8&lt;&gt;</a> &gt; <a class="code" href="structrapidjson_1_1_generic_insitu_string_stream.html">InsituStringStream</a>;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;RAPIDJSON_NAMESPACE_END</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="preprocessor">#endif // RAPIDJSON_STREAM_H_</span></div>
+<div class="ttc" id="structrapidjson_1_1_generic_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_string_stream.html">rapidjson::GenericStringStream</a></div><div class="ttdoc">Read-only string stream. </div><div class="ttdef"><b>Definition:</b> fwd.h:47</div></div>
+<div class="ttc" id="namespacerapidjson_html_a820f77efccfbb749bd15fe4822d2c740"><div class="ttname"><a href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">rapidjson::PutReserve</a></div><div class="ttdeci">void PutReserve(Stream &amp;stream, size_t count)</div><div class="ttdoc">Reserve n characters for writing to a stream. </div><div class="ttdef"><b>Definition:</b> stream.h:84</div></div>
+<div class="ttc" id="structrapidjson_1_1_generic_string_stream_html_a2556705b0a0fd6393862efe6db025b32"><div class="ttname"><a href="structrapidjson_1_1_generic_string_stream.html#a2556705b0a0fd6393862efe6db025b32">rapidjson::GenericStringStream::head_</a></div><div class="ttdeci">const Ch * head_</div><div class="ttdoc">Original head of the string. </div><div class="ttdef"><b>Definition:</b> stream.h:125</div></div>
+<div class="ttc" id="structrapidjson_1_1_generic_string_stream_html_a9a38a9d5b1ce782cacd4ec1bdf87fc2d"><div class="ttname"><a href="structrapidjson_1_1_generic_string_stream.html#a9a38a9d5b1ce782cacd4ec1bdf87fc2d">rapidjson::GenericStringStream::src_</a></div><div class="ttdeci">const Ch * src_</div><div class="ttdoc">Current read position. </div><div class="ttdef"><b>Definition:</b> stream.h:124</div></div>
+<div class="ttc" id="classrapidjson_1_1_encoding_html"><div class="ttname"><a href="classrapidjson_1_1_encoding.html">rapidjson::Encoding</a></div><div class="ttdoc">Concept for encoding of Unicode characters. </div></div>
+<div class="ttc" id="namespacerapidjson_html_a1ac13bac5976fc06587e00fc0bcfb32a"><div class="ttname"><a href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a">rapidjson::PutN</a></div><div class="ttdeci">void PutN(FileWriteStream &amp;stream, char c, size_t n)</div><div class="ttdoc">Implement specialized version of PutN() with memset() for better performance. </div><div class="ttdef"><b>Definition:</b> filewritestream.h:94</div></div>
+<div class="ttc" id="classrapidjson_1_1_stream_html"><div class="ttname"><a href="classrapidjson_1_1_stream.html">rapidjson::Stream</a></div><div class="ttdoc">Concept for reading and writing characters. </div></div>
+<div class="ttc" id="rapidjson_8h_html"><div class="ttname"><a href="rapidjson_8h.html">rapidjson.h</a></div><div class="ttdoc">common definitions and configuration </div></div>
+<div class="ttc" id="namespacerapidjson_html_a0a774dcffe8ae07686f459ae017d2f20"><div class="ttname"><a href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">rapidjson::PutUnsafe</a></div><div class="ttdeci">void PutUnsafe(Stream &amp;stream, typename Stream::Ch c)</div><div class="ttdoc">Write character to a stream, presuming buffer is reserved. </div><div class="ttdef"><b>Definition:</b> stream.h:91</div></div>
+<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
+<div class="ttc" id="structrapidjson_1_1_stream_traits_html"><div class="ttname"><a href="structrapidjson_1_1_stream_traits.html">rapidjson::StreamTraits</a></div><div class="ttdoc">Provides additional information for stream. </div><div class="ttdef"><b>Definition:</b> stream.h:73</div></div>
+<div class="ttc" id="structrapidjson_1_1_generic_insitu_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_insitu_string_stream.html">rapidjson::GenericInsituStringStream</a></div><div class="ttdoc">A read-write string stream. </div><div class="ttdef"><b>Definition:</b> fwd.h:52</div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- HTML footer for doxygen 1.8.7-->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_2e777bb85672ca91d8484c1593fb1d89.html">include</a></li><li class="navelem"><a class="el" href="dir_0b07344794a20f8375311f92e90cd9a3.html">rapidjson</a></li><li class="navelem"><b>stream.h</b></li>
+ </ul>
+</div>
+<script type="text/javascript">
+ /* * * CONFIGURATION VARIABLES * * */
+ var disqus_shortname = 'rapidjson-doc';
+ /* * * DON'T EDIT BELOW THIS LINE * * */
+ (function() {
+ var dt = document.createElement('div');
+ dt.id = "disqus_thread";
+ (document.getElementsByClassName('contents')[0]).appendChild(dt);
+ var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
+ dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
+ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
+ })();
+</script>
+</body>
+</html>
diff --git a/strfunc_8h_source.html b/strfunc_8h_source.html
index d33c1fa0..2a077443 100644
--- a/strfunc_8h_source.html
+++ b/strfunc_8h_source.html
@@ -105,7 +105,7 @@ $(document).ready(function(){initNavTree('strfunc_8h_source.html','');});
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_INTERNAL_STRFUNC_H_</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define RAPIDJSON_INTERNAL_STRFUNC_H_</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../rapidjson.h&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../stream.h&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;RAPIDJSON_NAMESPACE_BEGIN</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="keyword">namespace </span>internal {</div>
diff --git a/stringbuffer_8h_source.html b/stringbuffer_8h_source.html
index 0826cf09..b0e449b7 100644
--- a/stringbuffer_8h_source.html
+++ b/stringbuffer_8h_source.html
@@ -105,111 +105,111 @@ $(document).ready(function(){initNavTree('stringbuffer_8h_source.html','');});
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_STRINGBUFFER_H_</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define RAPIDJSON_STRINGBUFFER_H_</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rapidjson_8h.html">rapidjson.h</a>&quot;</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#if RAPIDJSON_HAS_CXX11_RVALUE_REFS</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span> <span class="comment">// std::move</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#endif</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="preprocessor">#include &quot;internal/stack.h&quot;</span></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="preprocessor">#if defined(__clang__)</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;RAPIDJSON_DIAG_PUSH</div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;RAPIDJSON_DIAG_OFF(c++98-compat)</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;RAPIDJSON_NAMESPACE_BEGIN</div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment">//! Represents an in-memory output stream.</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"></span><span class="comment">/*!</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> \tparam Encoding Encoding of the stream.</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> \tparam Allocator type for allocating memory buffer.</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"> \note implements Stream concept</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator = CrtAllocator&gt;</div>
-<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_string_buffer.html"> 40</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a> {</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> Encoding::Ch Ch;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>(<a class="code" href="classrapidjson_1_1_allocator.html">Allocator</a>* allocator = 0, <span class="keywordtype">size_t</span> capacity = kDefaultCapacity) : stack_(allocator, capacity) {}</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#if RAPIDJSON_HAS_CXX11_RVALUE_REFS</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>(<a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>&amp;&amp; rhs) : stack_(std::move(rhs.stack_)) {}</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>&amp; operator=(<a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>&amp;&amp; rhs) {</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span> (&amp;rhs != <span class="keyword">this</span>)</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; stack_ = std::move(rhs.stack_);</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; }</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#endif</span></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="keywordtype">void</span> Put(Ch c) { *stack_.template Push&lt;Ch&gt;() = c; }</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(Ch c) { *stack_.template PushUnsafe&lt;Ch&gt;() = c; }</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">void</span> Flush() {}</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordtype">void</span> Clear() { stack_.Clear(); }</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordtype">void</span> ShrinkToFit() {</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="comment">// Push and pop a null terminator. This is safe.</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; *stack_.template Push&lt;Ch&gt;() = <span class="charliteral">&#39;\0&#39;</span>;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; stack_.ShrinkToFit();</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; stack_.template Pop&lt;Ch&gt;(1);</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordtype">void</span> Reserve(<span class="keywordtype">size_t</span> count) { stack_.template Reserve&lt;Ch&gt;(count); }</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; Ch* Push(<span class="keywordtype">size_t</span> count) { <span class="keywordflow">return</span> stack_.template Push&lt;Ch&gt;(count); }</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordtype">void</span> Pop(<span class="keywordtype">size_t</span> count) { stack_.template Pop&lt;Ch&gt;(count); }</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">const</span> Ch* GetString()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="comment">// Push and pop a null terminator. This is safe.</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; *stack_.template Push&lt;Ch&gt;() = <span class="charliteral">&#39;\0&#39;</span>;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; stack_.template Pop&lt;Ch&gt;(1);</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> stack_.template Bottom&lt;Ch&gt;();</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordtype">size_t</span> GetSize()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> stack_.GetSize(); }</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> kDefaultCapacity = 256;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">mutable</span> internal::Stack&lt;Allocator&gt; stack_;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="keyword">private</span>:</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="comment">// Prohibit copy constructor &amp; assignment operator.</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>(<span class="keyword">const</span> <a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>&amp;);</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>&amp;);</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="comment"></span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment">//! String buffer with UTF8 encoding</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a51a6c35028b76e354bbb9e25d7125641"> 91</a></span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer&lt;UTF8&lt;&gt;</a> &gt; <a class="code" href="classrapidjson_1_1_generic_string_buffer.html">StringBuffer</a>;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator&gt;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">PutReserve</a>(<a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer&lt;Encoding, Allocator&gt;</a>&amp; stream, <span class="keywordtype">size_t</span> count) {</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; stream.Reserve(count);</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;}</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator&gt;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(GenericStringBuffer&lt;Encoding, Allocator&gt;&amp; stream, <span class="keyword">typename</span> Encoding::Ch c) {</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; stream.PutUnsafe(c);</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;}</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment">//! Implement specialized version of PutN() with memset() for better performance.</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a9d43be9c033dc49738b713fe6fbafecf"> 105</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">PutN</a>(<a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>&lt;<a class="code" href="structrapidjson_1_1_u_t_f8.html">UTF8&lt;&gt;</a> &gt;&amp; stream, <span class="keywordtype">char</span> c, <span class="keywordtype">size_t</span> n) {</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; std::memset(stream.stack_.Push&lt;<span class="keywordtype">char</span>&gt;(n), c, n * <span class="keyword">sizeof</span>(c));</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;}</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;RAPIDJSON_NAMESPACE_END</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor">#if defined(__clang__)</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;RAPIDJSON_DIAG_POP</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_STRINGBUFFER_H_</span></div>
-<div class="ttc" id="namespacerapidjson_html_a820f77efccfbb749bd15fe4822d2c740"><div class="ttname"><a href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">rapidjson::PutReserve</a></div><div class="ttdeci">void PutReserve(Stream &amp;stream, size_t count)</div><div class="ttdoc">Reserve n characters for writing to a stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:619</div></div>
-<div class="ttc" id="classrapidjson_1_1_generic_string_buffer_html"><div class="ttname"><a href="classrapidjson_1_1_generic_string_buffer.html">rapidjson::GenericStringBuffer</a></div><div class="ttdoc">Represents an in-memory output stream. </div><div class="ttdef"><b>Definition:</b> stringbuffer.h:40</div></div>
-<div class="ttc" id="rapidjson_8h_html"><div class="ttname"><a href="rapidjson_8h.html">rapidjson.h</a></div><div class="ttdoc">common definitions and configuration </div></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;stream.h&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;internal/stack.h&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#if RAPIDJSON_HAS_CXX11_RVALUE_REFS</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span> <span class="comment">// std::move</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;internal/stack.h&quot;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#if defined(__clang__)</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;RAPIDJSON_DIAG_PUSH</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;RAPIDJSON_DIAG_OFF(c++98-compat)</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;RAPIDJSON_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment">//! Represents an in-memory output stream.</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"></span><span class="comment">/*!</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> \tparam Encoding Encoding of the stream.</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"> \tparam Allocator type for allocating memory buffer.</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment"> \note implements Stream concept</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator = CrtAllocator&gt;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>GenericStringBuffer {</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> Encoding::Ch Ch;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; GenericStringBuffer(Allocator* allocator = 0, <span class="keywordtype">size_t</span> capacity = kDefaultCapacity) : stack_(allocator, capacity) {}</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#if RAPIDJSON_HAS_CXX11_RVALUE_REFS</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; GenericStringBuffer(GenericStringBuffer&amp;&amp; rhs) : stack_(std::move(rhs.stack_)) {}</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; GenericStringBuffer&amp; operator=(GenericStringBuffer&amp;&amp; rhs) {</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">if</span> (&amp;rhs != <span class="keyword">this</span>)</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; stack_ = std::move(rhs.stack_);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">void</span> Put(Ch c) { *stack_.template Push&lt;Ch&gt;() = c; }</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(Ch c) { *stack_.template PushUnsafe&lt;Ch&gt;() = c; }</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">void</span> Flush() {}</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="keywordtype">void</span> Clear() { stack_.Clear(); }</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordtype">void</span> ShrinkToFit() {</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="comment">// Push and pop a null terminator. This is safe.</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; *stack_.template Push&lt;Ch&gt;() = <span class="charliteral">&#39;\0&#39;</span>;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; stack_.ShrinkToFit();</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; stack_.template Pop&lt;Ch&gt;(1);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</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; <span class="keywordtype">void</span> Reserve(<span class="keywordtype">size_t</span> count) { stack_.template Reserve&lt;Ch&gt;(count); }</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; Ch* Push(<span class="keywordtype">size_t</span> count) { <span class="keywordflow">return</span> stack_.template Push&lt;Ch&gt;(count); }</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordtype">void</span> Pop(<span class="keywordtype">size_t</span> count) { stack_.template Pop&lt;Ch&gt;(count); }</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">const</span> Ch* GetString()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="comment">// Push and pop a null terminator. This is safe.</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; *stack_.template Push&lt;Ch&gt;() = <span class="charliteral">&#39;\0&#39;</span>;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; stack_.template Pop&lt;Ch&gt;(1);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">return</span> stack_.template Bottom&lt;Ch&gt;();</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordtype">size_t</span> GetSize()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> stack_.GetSize(); }</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> kDefaultCapacity = 256;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">mutable</span> internal::Stack&lt;Allocator&gt; stack_;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// Prohibit copy constructor &amp; assignment operator.</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GenericStringBuffer(<span class="keyword">const</span> GenericStringBuffer&amp;);</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GenericStringBuffer&amp; operator=(<span class="keyword">const</span> GenericStringBuffer&amp;);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;};</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment">//! String buffer with UTF8 encoding</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment"></span><span class="keyword">typedef</span> GenericStringBuffer&lt;UTF8&lt;&gt; &gt; <a class="code" href="namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21">StringBuffer</a>;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator&gt;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">PutReserve</a>(GenericStringBuffer&lt;Encoding, Allocator&gt;&amp; stream, <span class="keywordtype">size_t</span> count) {</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; stream.Reserve(count);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;}</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;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator&gt;</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(GenericStringBuffer&lt;Encoding, Allocator&gt;&amp; stream, <span class="keyword">typename</span> Encoding::Ch c) {</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; stream.PutUnsafe(c);</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;}</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment">//! Implement specialized version of PutN() with memset() for better performance.</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a9d43be9c033dc49738b713fe6fbafecf"> 106</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a">PutN</a>(<a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>&lt;<a class="code" href="structrapidjson_1_1_u_t_f8.html">UTF8&lt;&gt;</a> &gt;&amp; stream, <span class="keywordtype">char</span> c, <span class="keywordtype">size_t</span> n) {</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; std::memset(stream.stack_.Push&lt;<span class="keywordtype">char</span>&gt;(n), c, n * <span class="keyword">sizeof</span>(c));</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;}</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;RAPIDJSON_NAMESPACE_END</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor">#if defined(__clang__)</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;RAPIDJSON_DIAG_POP</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_STRINGBUFFER_H_</span></div>
+<div class="ttc" id="namespacerapidjson_html_a820f77efccfbb749bd15fe4822d2c740"><div class="ttname"><a href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">rapidjson::PutReserve</a></div><div class="ttdeci">void PutReserve(Stream &amp;stream, size_t count)</div><div class="ttdoc">Reserve n characters for writing to a stream. </div><div class="ttdef"><b>Definition:</b> stream.h:84</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_string_buffer_html"><div class="ttname"><a href="classrapidjson_1_1_generic_string_buffer.html">rapidjson::GenericStringBuffer</a></div><div class="ttdoc">Represents an in-memory output stream. </div><div class="ttdef"><b>Definition:</b> fwd.h:59</div></div>
+<div class="ttc" id="namespacerapidjson_html_ac0765ea91f41539645c4b78689d03f21"><div class="ttname"><a href="namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21">rapidjson::StringBuffer</a></div><div class="ttdeci">GenericStringBuffer&lt; UTF8&lt; char &gt;, CrtAllocator &gt; StringBuffer</div><div class="ttdoc">String buffer with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> fwd.h:59</div></div>
+<div class="ttc" id="namespacerapidjson_html_a1ac13bac5976fc06587e00fc0bcfb32a"><div class="ttname"><a href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a">rapidjson::PutN</a></div><div class="ttdeci">void PutN(FileWriteStream &amp;stream, char c, size_t n)</div><div class="ttdoc">Implement specialized version of PutN() with memset() for better performance. </div><div class="ttdef"><b>Definition:</b> filewritestream.h:94</div></div>
<div class="ttc" id="structrapidjson_1_1_u_t_f8_html"><div class="ttname"><a href="structrapidjson_1_1_u_t_f8.html">rapidjson::UTF8</a></div><div class="ttdoc">UTF-8 encoding. </div><div class="ttdef"><b>Definition:</b> encodings.h:96</div></div>
-<div class="ttc" id="classrapidjson_1_1_allocator_html"><div class="ttname"><a href="classrapidjson_1_1_allocator.html">rapidjson::Allocator</a></div><div class="ttdoc">Concept for allocating, resizing and freeing memory block. </div></div>
-<div class="ttc" id="namespacerapidjson_html_a0a774dcffe8ae07686f459ae017d2f20"><div class="ttname"><a href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">rapidjson::PutUnsafe</a></div><div class="ttdeci">void PutUnsafe(Stream &amp;stream, typename Stream::Ch c)</div><div class="ttdoc">Write character to a stream, presuming buffer is reserved. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:626</div></div>
-<div class="ttc" id="namespacerapidjson_html_a1d49d2cab617858b53a1db23b1759f43"><div class="ttname"><a href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">rapidjson::PutN</a></div><div class="ttdeci">void PutN(Stream &amp;stream, Ch c, size_t n)</div><div class="ttdoc">Put N copies of a character to a stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:632</div></div>
+<div class="ttc" id="namespacerapidjson_html_a0a774dcffe8ae07686f459ae017d2f20"><div class="ttname"><a href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">rapidjson::PutUnsafe</a></div><div class="ttdeci">void PutUnsafe(Stream &amp;stream, typename Stream::Ch c)</div><div class="ttdoc">Write character to a stream, presuming buffer is reserved. </div><div class="ttdef"><b>Definition:</b> stream.h:91</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.7-->
diff --git a/strtod_8h_source.html b/strtod_8h_source.html
index 064e57d8..788af039 100644
--- a/strtod_8h_source.html
+++ b/strtod_8h_source.html
@@ -105,259 +105,258 @@ $(document).ready(function(){initNavTree('strtod_8h_source.html','');});
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_STRTOD_</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define RAPIDJSON_STRTOD_</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../rapidjson.h&quot;</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;ieee754.h&quot;</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;biginteger.h&quot;</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;diyfp.h&quot;</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;pow10.h&quot;</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;RAPIDJSON_NAMESPACE_BEGIN</div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">namespace </span>internal {</div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">double</span> FastPath(<span class="keywordtype">double</span> significand, <span class="keywordtype">int</span> exp) {</div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">if</span> (exp &lt; -308)</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">return</span> 0.0;</div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (exp &gt;= 0)</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">return</span> significand * internal::Pow10(exp);</div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">return</span> significand / internal::Pow10(-exp);</div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;}</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">double</span> StrtodNormalPrecision(<span class="keywordtype">double</span> d, <span class="keywordtype">int</span> p) {</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">if</span> (p &lt; -308) {</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="comment">// Prevent expSum &lt; -308, making Pow10(p) = 0</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; d = FastPath(d, -308);</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; d = FastPath(d, p + 308);</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; }</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; d = FastPath(d, p);</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">return</span> d;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;}</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">inline</span> T Min3(T a, T b, T c) {</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; T m = a;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">if</span> (m &gt; b) m = b;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">if</span> (m &gt; c) m = c;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> m;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;}</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="keyword">inline</span> <span class="keywordtype">int</span> CheckWithinHalfULP(<span class="keywordtype">double</span> b, <span class="keyword">const</span> BigInteger&amp; d, <span class="keywordtype">int</span> dExp) {</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">const</span> Double db(b);</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">const</span> uint64_t bInt = db.IntegerSignificand();</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> bExp = db.IntegerExponent();</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> hExp = bExp - 1;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordtype">int</span> dS_Exp2 = 0, dS_Exp5 = 0, bS_Exp2 = 0, bS_Exp5 = 0, hS_Exp2 = 0, hS_Exp5 = 0;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="comment">// Adjust for decimal exponent</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">if</span> (dExp &gt;= 0) {</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; dS_Exp2 += dExp;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; dS_Exp5 += dExp;</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; <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; bS_Exp2 -= dExp;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; bS_Exp5 -= dExp;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; hS_Exp2 -= dExp;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; hS_Exp5 -= dExp;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="comment">// Adjust for binary exponent</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">if</span> (bExp &gt;= 0)</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; bS_Exp2 += bExp;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; dS_Exp2 -= bExp;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; hS_Exp2 -= bExp;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="comment">// Adjust for half ulp exponent</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">if</span> (hExp &gt;= 0)</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; hS_Exp2 += hExp;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; dS_Exp2 -= hExp;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; bS_Exp2 -= hExp;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// Remove common power of two factor from all three scaled values</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordtype">int</span> common_Exp2 = Min3(dS_Exp2, bS_Exp2, hS_Exp2);</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; dS_Exp2 -= common_Exp2;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; bS_Exp2 -= common_Exp2;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; hS_Exp2 -= common_Exp2;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; BigInteger dS = d;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; dS.MultiplyPow5(static_cast&lt;unsigned&gt;(dS_Exp5)) &lt;&lt;= <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(dS_Exp2);</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; BigInteger bS(bInt);</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; bS.MultiplyPow5(static_cast&lt;unsigned&gt;(bS_Exp5)) &lt;&lt;= <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(bS_Exp2);</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; BigInteger hS(1);</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; hS.MultiplyPow5(static_cast&lt;unsigned&gt;(hS_Exp5)) &lt;&lt;= <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(hS_Exp2);</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; BigInteger delta(0);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; dS.Difference(bS, &amp;delta);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> delta.Compare(hS);</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;}</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> StrtodFast(<span class="keywordtype">double</span> d, <span class="keywordtype">int</span> p, <span class="keywordtype">double</span>* result) {</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">// Use fast path for string-to-double conversion if possible</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="comment">// see http://www.exploringbinary.com/fast-path-decimal-to-floating-point-conversion/</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span> (p &gt; 22 &amp;&amp; p &lt; 22 + 16) {</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="comment">// Fast Path Cases In Disguise</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; d *= internal::Pow10(p - 22);</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; p = 22;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span> (p &gt;= -22 &amp;&amp; p &lt;= 22 &amp;&amp; d &lt;= 9007199254740991.0) { <span class="comment">// 2^53 - 1</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; *result = FastPath(d, p);</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;}</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment">// Compute an approximation and see if it is within 1/2 ULP</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> StrtodDiyFp(<span class="keyword">const</span> <span class="keywordtype">char</span>* decimals, <span class="keywordtype">size_t</span> length, <span class="keywordtype">size_t</span> decimalPosition, <span class="keywordtype">int</span> exp, <span class="keywordtype">double</span>* result) {</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; uint64_t significand = 0;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">size_t</span> i = 0; <span class="comment">// 2^64 - 1 = 18446744073709551615, 1844674407370955161 = 0x1999999999999999 </span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">for</span> (; i &lt; length; i++) {</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">if</span> (significand &gt; <a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0x19999999, 0x99999999) ||</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; (significand == <a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0x19999999, 0x99999999) &amp;&amp; decimals[i] &gt; <span class="charliteral">&#39;5&#39;</span>))</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; significand = significand * 10u + <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(decimals[i] - <span class="charliteral">&#39;0&#39;</span>);</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; </div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">if</span> (i &lt; length &amp;&amp; decimals[i] &gt;= <span class="charliteral">&#39;5&#39;</span>) <span class="comment">// Rounding</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; significand++;</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordtype">size_t</span> remaining = length - i;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">const</span> <span class="keywordtype">unsigned</span> kUlpShift = 3;</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">const</span> <span class="keywordtype">unsigned</span> kUlp = 1 &lt;&lt; kUlpShift;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordtype">int</span> error = (remaining == 0) ? 0 : kUlp / 2;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; DiyFp v(significand, 0);</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; v = v.Normalize();</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; error &lt;&lt;= -v.e;</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> dExp = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(decimalPosition) - static_cast&lt;int&gt;(i) + exp;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordtype">int</span> actualExp;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; DiyFp cachedPower = GetCachedPower10(dExp, &amp;actualExp);</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">if</span> (actualExp != dExp) {</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> DiyFp kPow10[] = {</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0xa0000000, 00000000), -60), <span class="comment">// 10^1</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0xc8000000, 00000000), -57), <span class="comment">// 10^2</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0xfa000000, 00000000), -54), <span class="comment">// 10^3</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0x9c400000, 00000000), -50), <span class="comment">// 10^4</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0xc3500000, 00000000), -47), <span class="comment">// 10^5</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0xf4240000, 00000000), -44), <span class="comment">// 10^6</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0x98968000, 00000000), -40) <span class="comment">// 10^7</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; };</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordtype">int</span> adjustment = dExp - actualExp - 1;</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(adjustment &gt;= 0 &amp;&amp; adjustment &lt; 7);</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; v = v * kPow10[adjustment];</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">if</span> (length + static_cast&lt;unsigned&gt;(adjustment)&gt; 19u) <span class="comment">// has more digits than decimal digits in 64-bit</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; error += kUlp / 2;</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;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; v = v * cachedPower;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; error += kUlp + (error == 0 ? 0 : 1);</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> oldExp = v.e;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; v = v.Normalize();</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; error &lt;&lt;= oldExp - v.e;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">const</span> <span class="keywordtype">unsigned</span> effectiveSignificandSize = Double::EffectiveSignificandSize(64 + v.e);</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordtype">unsigned</span> precisionSize = 64 - effectiveSignificandSize;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">if</span> (precisionSize + kUlpShift &gt;= 64) {</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordtype">unsigned</span> scaleExp = (precisionSize + kUlpShift) - 63;</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; v.f &gt;&gt;= scaleExp;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; v.e += scaleExp; </div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; error = (error &gt;&gt; scaleExp) + 1 + static_cast&lt;int&gt;(kUlp);</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; precisionSize -= scaleExp;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; DiyFp rounded(v.f &gt;&gt; precisionSize, v.e + static_cast&lt;int&gt;(precisionSize));</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">const</span> uint64_t precisionBits = (v.f &amp; ((uint64_t(1) &lt;&lt; precisionSize) - 1)) * kUlp;</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">const</span> uint64_t halfWay = (uint64_t(1) &lt;&lt; (precisionSize - 1)) * kUlp;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">if</span> (precisionBits &gt;= halfWay + static_cast&lt;unsigned&gt;(error)) {</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; rounded.f++;</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">if</span> (rounded.f &amp; (DiyFp::kDpHiddenBit &lt;&lt; 1)) { <span class="comment">// rounding overflows mantissa (issue #340)</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; rounded.f &gt;&gt;= 1;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; rounded.e++;</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; *result = rounded.ToDouble();</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">return</span> halfWay - <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(error) &gt;= precisionBits || precisionBits &gt;= halfWay + static_cast&lt;unsigned&gt;(error);</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="keyword">inline</span> <span class="keywordtype">double</span> StrtodBigInteger(<span class="keywordtype">double</span> approx, <span class="keyword">const</span> <span class="keywordtype">char</span>* decimals, <span class="keywordtype">size_t</span> length, <span class="keywordtype">size_t</span> decimalPosition, <span class="keywordtype">int</span> exp) {</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">const</span> BigInteger dInt(decimals, length);</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> dExp = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(decimalPosition) - static_cast&lt;int&gt;(length) + exp;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; Double a(approx);</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordtype">int</span> cmp = CheckWithinHalfULP(a.Value(), dInt, dExp);</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">if</span> (cmp &lt; 0)</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">return</span> a.Value(); <span class="comment">// within half ULP</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cmp == 0) {</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="comment">// Round towards even</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">if</span> (a.Significand() &amp; 1)</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">return</span> a.NextPositiveDouble();</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">return</span> a.Value();</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">else</span> <span class="comment">// adjustment</span></div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">return</span> a.NextPositiveDouble();</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;}</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">double</span> StrtodFullPrecision(<span class="keywordtype">double</span> d, <span class="keywordtype">int</span> p, <span class="keyword">const</span> <span class="keywordtype">char</span>* decimals, <span class="keywordtype">size_t</span> length, <span class="keywordtype">size_t</span> decimalPosition, <span class="keywordtype">int</span> exp) {</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(d &gt;= 0.0);</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(length &gt;= 1);</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordtype">double</span> result;</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">if</span> (StrtodFast(d, p, &amp;result))</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">return</span> result;</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; <span class="comment">// Trim leading zeros</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">while</span> (*decimals == <span class="charliteral">&#39;0&#39;</span> &amp;&amp; length &gt; 1) {</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; length--;</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; decimals++;</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; decimalPosition--;</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; <span class="comment">// Trim trailing zeros</span></div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">while</span> (decimals[length - 1] == <span class="charliteral">&#39;0&#39;</span> &amp;&amp; length &gt; 1) {</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; length--;</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; decimalPosition--;</div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; exp++;</div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="comment">// Trim right-most digits</span></div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> kMaxDecimalDigit = 780;</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">if</span> (static_cast&lt;int&gt;(length) &gt; kMaxDecimalDigit) {</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordtype">int</span> delta = (<span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(length) - kMaxDecimalDigit);</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; exp += delta;</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; decimalPosition -= <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(delta);</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; length = kMaxDecimalDigit;</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;</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="comment">// If too small, underflow to zero</span></div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">if</span> (<span class="keywordtype">int</span>(length) + exp &lt; -324)</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">return</span> 0.0;</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">if</span> (StrtodDiyFp(decimals, length, decimalPosition, exp, &amp;result))</div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="comment">// Use approximation from StrtodDiyFp and make adjustment with BigInteger comparison</span></div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">return</span> StrtodBigInteger(result, decimals, length, decimalPosition, exp);</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;}</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;} <span class="comment">// namespace internal</span></div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;RAPIDJSON_NAMESPACE_END</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_STRTOD_</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;ieee754.h&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;biginteger.h&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;diyfp.h&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;pow10.h&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;RAPIDJSON_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">namespace </span>internal {</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="keyword">inline</span> <span class="keywordtype">double</span> FastPath(<span class="keywordtype">double</span> significand, <span class="keywordtype">int</span> exp) {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">if</span> (exp &lt; -308)</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">return</span> 0.0;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (exp &gt;= 0)</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">return</span> significand * internal::Pow10(exp);</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">return</span> significand / internal::Pow10(-exp);</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;}</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">double</span> StrtodNormalPrecision(<span class="keywordtype">double</span> d, <span class="keywordtype">int</span> p) {</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">if</span> (p &lt; -308) {</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="comment">// Prevent expSum &lt; -308, making Pow10(p) = 0</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; d = FastPath(d, -308);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; d = FastPath(d, p + 308);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; }</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; d = FastPath(d, p);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">return</span> d;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;}</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">inline</span> T Min3(T a, T b, T c) {</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; T m = a;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span> (m &gt; b) m = b;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">if</span> (m &gt; c) m = c;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">return</span> m;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;}</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> CheckWithinHalfULP(<span class="keywordtype">double</span> b, <span class="keyword">const</span> BigInteger&amp; d, <span class="keywordtype">int</span> dExp) {</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">const</span> Double db(b);</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">const</span> uint64_t bInt = db.IntegerSignificand();</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> bExp = db.IntegerExponent();</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> hExp = bExp - 1;</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="keywordtype">int</span> dS_Exp2 = 0, dS_Exp5 = 0, bS_Exp2 = 0, bS_Exp5 = 0, hS_Exp2 = 0, hS_Exp5 = 0;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="comment">// Adjust for decimal exponent</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">if</span> (dExp &gt;= 0) {</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; dS_Exp2 += dExp;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; dS_Exp5 += dExp;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; bS_Exp2 -= dExp;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; bS_Exp5 -= dExp;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; hS_Exp2 -= dExp;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; hS_Exp5 -= dExp;</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;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="comment">// Adjust for binary exponent</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">if</span> (bExp &gt;= 0)</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; bS_Exp2 += bExp;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; dS_Exp2 -= bExp;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; hS_Exp2 -= bExp;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="comment">// Adjust for half ulp exponent</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">if</span> (hExp &gt;= 0)</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; hS_Exp2 += hExp;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; dS_Exp2 -= hExp;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; bS_Exp2 -= hExp;</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;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// Remove common power of two factor from all three scaled values</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">int</span> common_Exp2 = Min3(dS_Exp2, bS_Exp2, hS_Exp2);</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; dS_Exp2 -= common_Exp2;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; bS_Exp2 -= common_Exp2;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; hS_Exp2 -= common_Exp2;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; BigInteger dS = d;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; dS.MultiplyPow5(static_cast&lt;unsigned&gt;(dS_Exp5)) &lt;&lt;= <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(dS_Exp2);</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; BigInteger bS(bInt);</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; bS.MultiplyPow5(static_cast&lt;unsigned&gt;(bS_Exp5)) &lt;&lt;= <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(bS_Exp2);</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; BigInteger hS(1);</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; hS.MultiplyPow5(static_cast&lt;unsigned&gt;(hS_Exp5)) &lt;&lt;= <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(hS_Exp2);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; BigInteger delta(0);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; dS.Difference(bS, &amp;delta);</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> delta.Compare(hS);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;}</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> StrtodFast(<span class="keywordtype">double</span> d, <span class="keywordtype">int</span> p, <span class="keywordtype">double</span>* result) {</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// Use fast path for string-to-double conversion if possible</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">// see http://www.exploringbinary.com/fast-path-decimal-to-floating-point-conversion/</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">if</span> (p &gt; 22 &amp;&amp; p &lt; 22 + 16) {</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="comment">// Fast Path Cases In Disguise</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; d *= internal::Pow10(p - 22);</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; p = 22;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">if</span> (p &gt;= -22 &amp;&amp; p &lt;= 22 &amp;&amp; d &lt;= 9007199254740991.0) { <span class="comment">// 2^53 - 1</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; *result = FastPath(d, p);</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</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;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment">// Compute an approximation and see if it is within 1/2 ULP</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> StrtodDiyFp(<span class="keyword">const</span> <span class="keywordtype">char</span>* decimals, <span class="keywordtype">size_t</span> length, <span class="keywordtype">size_t</span> decimalPosition, <span class="keywordtype">int</span> exp, <span class="keywordtype">double</span>* result) {</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; uint64_t significand = 0;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordtype">size_t</span> i = 0; <span class="comment">// 2^64 - 1 = 18446744073709551615, 1844674407370955161 = 0x1999999999999999 </span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">for</span> (; i &lt; length; i++) {</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span> (significand &gt; <a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0x19999999, 0x99999999) ||</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; (significand == <a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0x19999999, 0x99999999) &amp;&amp; decimals[i] &gt; <span class="charliteral">&#39;5&#39;</span>))</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; significand = significand * 10u + <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(decimals[i] - <span class="charliteral">&#39;0&#39;</span>);</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</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="keywordflow">if</span> (i &lt; length &amp;&amp; decimals[i] &gt;= <span class="charliteral">&#39;5&#39;</span>) <span class="comment">// Rounding</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; significand++;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordtype">size_t</span> remaining = length - i;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">const</span> <span class="keywordtype">unsigned</span> kUlpShift = 3;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">const</span> <span class="keywordtype">unsigned</span> kUlp = 1 &lt;&lt; kUlpShift;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">int</span> error = (remaining == 0) ? 0 : kUlp / 2;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; DiyFp v(significand, 0);</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; v = v.Normalize();</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; error &lt;&lt;= -v.e;</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> dExp = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(decimalPosition) - static_cast&lt;int&gt;(i) + exp;</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="keywordtype">int</span> actualExp;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; DiyFp cachedPower = GetCachedPower10(dExp, &amp;actualExp);</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">if</span> (actualExp != dExp) {</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> DiyFp kPow10[] = {</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0xa0000000, 00000000), -60), <span class="comment">// 10^1</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0xc8000000, 00000000), -57), <span class="comment">// 10^2</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0xfa000000, 00000000), -54), <span class="comment">// 10^3</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0x9c400000, 00000000), -50), <span class="comment">// 10^4</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0xc3500000, 00000000), -47), <span class="comment">// 10^5</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0xf4240000, 00000000), -44), <span class="comment">// 10^6</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0x98968000, 00000000), -40) <span class="comment">// 10^7</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; };</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordtype">int</span> adjustment = dExp - actualExp - 1;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(adjustment &gt;= 0 &amp;&amp; adjustment &lt; 7);</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; v = v * kPow10[adjustment];</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">if</span> (length + static_cast&lt;unsigned&gt;(adjustment)&gt; 19u) <span class="comment">// has more digits than decimal digits in 64-bit</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; error += kUlp / 2;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</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; v = v * cachedPower;</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"> 174</span>&#160; error += kUlp + (error == 0 ? 0 : 1);</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="keyword">const</span> <span class="keywordtype">int</span> oldExp = v.e;</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; v = v.Normalize();</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; error &lt;&lt;= oldExp - v.e;</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">const</span> <span class="keywordtype">unsigned</span> effectiveSignificandSize = Double::EffectiveSignificandSize(64 + v.e);</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordtype">unsigned</span> precisionSize = 64 - effectiveSignificandSize;</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">if</span> (precisionSize + kUlpShift &gt;= 64) {</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordtype">unsigned</span> scaleExp = (precisionSize + kUlpShift) - 63;</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; v.f &gt;&gt;= scaleExp;</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; v.e += scaleExp; </div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; error = (error &gt;&gt; scaleExp) + 1 + static_cast&lt;int&gt;(kUlp);</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; precisionSize -= scaleExp;</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;</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; DiyFp rounded(v.f &gt;&gt; precisionSize, v.e + static_cast&lt;int&gt;(precisionSize));</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">const</span> uint64_t precisionBits = (v.f &amp; ((uint64_t(1) &lt;&lt; precisionSize) - 1)) * kUlp;</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">const</span> uint64_t halfWay = (uint64_t(1) &lt;&lt; (precisionSize - 1)) * kUlp;</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">if</span> (precisionBits &gt;= halfWay + static_cast&lt;unsigned&gt;(error)) {</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; rounded.f++;</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">if</span> (rounded.f &amp; (DiyFp::kDpHiddenBit &lt;&lt; 1)) { <span class="comment">// rounding overflows mantissa (issue #340)</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; rounded.f &gt;&gt;= 1;</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; rounded.e++;</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; }</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; *result = rounded.ToDouble();</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">return</span> halfWay - <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(error) &gt;= precisionBits || precisionBits &gt;= halfWay + static_cast&lt;unsigned&gt;(error);</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;}</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;<span class="keyword">inline</span> <span class="keywordtype">double</span> StrtodBigInteger(<span class="keywordtype">double</span> approx, <span class="keyword">const</span> <span class="keywordtype">char</span>* decimals, <span class="keywordtype">size_t</span> length, <span class="keywordtype">size_t</span> decimalPosition, <span class="keywordtype">int</span> exp) {</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">const</span> BigInteger dInt(decimals, length);</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> dExp = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(decimalPosition) - static_cast&lt;int&gt;(length) + exp;</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; Double a(approx);</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordtype">int</span> cmp = CheckWithinHalfULP(a.Value(), dInt, dExp);</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">if</span> (cmp &lt; 0)</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> a.Value(); <span class="comment">// within half ULP</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cmp == 0) {</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="comment">// Round towards even</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">if</span> (a.Significand() &amp; 1)</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">return</span> a.NextPositiveDouble();</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">return</span> a.Value();</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; <span class="keywordflow">else</span> <span class="comment">// adjustment</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">return</span> a.NextPositiveDouble();</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;</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">double</span> StrtodFullPrecision(<span class="keywordtype">double</span> d, <span class="keywordtype">int</span> p, <span class="keyword">const</span> <span class="keywordtype">char</span>* decimals, <span class="keywordtype">size_t</span> length, <span class="keywordtype">size_t</span> decimalPosition, <span class="keywordtype">int</span> exp) {</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(d &gt;= 0.0);</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(length &gt;= 1);</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; <span class="keywordtype">double</span> result;</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">if</span> (StrtodFast(d, p, &amp;result))</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="comment">// Trim leading zeros</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">while</span> (*decimals == <span class="charliteral">&#39;0&#39;</span> &amp;&amp; length &gt; 1) {</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; length--;</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; decimals++;</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; decimalPosition--;</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; }</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; <span class="comment">// Trim trailing zeros</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">while</span> (decimals[length - 1] == <span class="charliteral">&#39;0&#39;</span> &amp;&amp; length &gt; 1) {</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; length--;</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; decimalPosition--;</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; exp++;</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;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="comment">// Trim right-most digits</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> kMaxDecimalDigit = 780;</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">if</span> (static_cast&lt;int&gt;(length) &gt; kMaxDecimalDigit) {</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordtype">int</span> delta = (<span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(length) - kMaxDecimalDigit);</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; exp += delta;</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; decimalPosition -= <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(delta);</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; length = kMaxDecimalDigit;</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="comment">// If too small, underflow to zero</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">if</span> (<span class="keywordtype">int</span>(length) + exp &lt; -324)</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">return</span> 0.0;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">if</span> (StrtodDiyFp(decimals, length, decimalPosition, exp, &amp;result))</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="comment">// Use approximation from StrtodDiyFp and make adjustment with BigInteger comparison</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">return</span> StrtodBigInteger(result, decimals, length, decimalPosition, exp);</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;}</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;} <span class="comment">// namespace internal</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;RAPIDJSON_NAMESPACE_END</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_STRTOD_</span></div>
<div class="ttc" id="rapidjson_8h_html_aaee1245f375a71be1ac9b8a07ba5fb8f"><div class="ttname"><a href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a></div><div class="ttdeci">#define RAPIDJSON_UINT64_C2(high32, low32)</div><div class="ttdoc">Construct a 64-bit literal by a pair of 32-bit integer. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:288</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
</div><!-- fragment --></div><!-- contents -->
diff --git a/structrapidjson_1_1_a_s_c_i_i.html b/structrapidjson_1_1_a_s_c_i_i.html
index e22a9c20..71fe7a6b 100644
--- a/structrapidjson_1_1_a_s_c_i_i.html
+++ b/structrapidjson_1_1_a_s_c_i_i.html
@@ -100,9 +100,9 @@ $(document).ready(function(){initNavTree('structrapidjson_1_1_a_s_c_i_i.html',''
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
-<tr class="memitem:a9949bd6ba4dabd9945412bb96fcc4240"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9949bd6ba4dabd9945412bb96fcc4240"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 0
+<tr class="memitem:a598bb5f32c9f0c851529a9ded73db5eb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a598bb5f32c9f0c851529a9ded73db5eb"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 0
}</td></tr>
-<tr class="separator:a9949bd6ba4dabd9945412bb96fcc4240"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:a598bb5f32c9f0c851529a9ded73db5eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c1e49f42921027d58f1125a627cc5e5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2c1e49f42921027d58f1125a627cc5e5"></a>
typedef CharType&#160;</td><td class="memItemRight" valign="bottom"><b>Ch</b></td></tr>
<tr class="separator:a2c1e49f42921027d58f1125a627cc5e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/structrapidjson_1_1_a_s_c_i_i.js b/structrapidjson_1_1_a_s_c_i_i.js
index 9deb9de5..cc01e358 100644
--- a/structrapidjson_1_1_a_s_c_i_i.js
+++ b/structrapidjson_1_1_a_s_c_i_i.js
@@ -1,5 +1,5 @@
var structrapidjson_1_1_a_s_c_i_i =
[
[ "Ch", "structrapidjson_1_1_a_s_c_i_i.html#a2c1e49f42921027d58f1125a627cc5e5", null ],
- [ "supportUnicode", "structrapidjson_1_1_a_s_c_i_i.html#a9949bd6ba4dabd9945412bb96fcc4240a7c8190ea4c25af669f952bfe200afeee", null ]
+ [ "supportUnicode", "structrapidjson_1_1_a_s_c_i_i.html#a598bb5f32c9f0c851529a9ded73db5eba7c8190ea4c25af669f952bfe200afeee", null ]
]; \ No newline at end of file
diff --git a/structrapidjson_1_1_auto_u_t_f.html b/structrapidjson_1_1_auto_u_t_f.html
index 5dc3cd88..d48904df 100644
--- a/structrapidjson_1_1_auto_u_t_f.html
+++ b/structrapidjson_1_1_auto_u_t_f.html
@@ -100,9 +100,9 @@ $(document).ready(function(){initNavTree('structrapidjson_1_1_auto_u_t_f.html','
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
-<tr class="memitem:a97917924016223755d1f2f70812ea6ed"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a97917924016223755d1f2f70812ea6ed"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
+<tr class="memitem:aa9095b9e85767361f9a0ae5527dba101"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa9095b9e85767361f9a0ae5527dba101"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
}</td></tr>
-<tr class="separator:a97917924016223755d1f2f70812ea6ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:aa9095b9e85767361f9a0ae5527dba101"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ba58f529fad9b33dc419b12ee13844d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8ba58f529fad9b33dc419b12ee13844d"></a>
typedef CharType&#160;</td><td class="memItemRight" valign="bottom"><b>Ch</b></td></tr>
<tr class="separator:a8ba58f529fad9b33dc419b12ee13844d"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/structrapidjson_1_1_auto_u_t_f.js b/structrapidjson_1_1_auto_u_t_f.js
index 85cd1393..14cf7342 100644
--- a/structrapidjson_1_1_auto_u_t_f.js
+++ b/structrapidjson_1_1_auto_u_t_f.js
@@ -1,5 +1,5 @@
var structrapidjson_1_1_auto_u_t_f =
[
[ "Ch", "structrapidjson_1_1_auto_u_t_f.html#a8ba58f529fad9b33dc419b12ee13844d", null ],
- [ "supportUnicode", "structrapidjson_1_1_auto_u_t_f.html#a97917924016223755d1f2f70812ea6eda15b55b712f9e34d146fb236e5a89e06e", null ]
+ [ "supportUnicode", "structrapidjson_1_1_auto_u_t_f.html#aa9095b9e85767361f9a0ae5527dba101a15b55b712f9e34d146fb236e5a89e06e", null ]
]; \ No newline at end of file
diff --git a/structrapidjson_1_1_base_reader_handler.html b/structrapidjson_1_1_base_reader_handler.html
index 7e8c2ad5..6253f7cf 100644
--- a/structrapidjson_1_1_base_reader_handler.html
+++ b/structrapidjson_1_1_base_reader_handler.html
@@ -156,12 +156,13 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>EndArray</b> (<a clas
<tr class="separator:a8fc75176ec793217d40d5a8de049cdb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><h3>template&lt;typename Encoding = UTF8&lt;&gt;, typename Derived = void&gt;<br />
+<div class="textblock"><h3>template&lt;typename Encoding, typename Derived&gt;<br />
struct rapidjson::BaseReaderHandler&lt; Encoding, Derived &gt;</h3>
<p>Default implementation of <a class="el" href="classrapidjson_1_1_handler.html" title="Concept for receiving events from GenericReader upon parsing. The functions return true if no error o...">Handler</a>. </p>
<p>This can be used as base class of any reader handler. </p><dl class="section note"><dt>Note</dt><dd>implements <a class="el" href="classrapidjson_1_1_handler.html" title="Concept for receiving events from GenericReader upon parsing. The functions return true if no error o...">Handler</a> concept </dd></dl>
-</div><hr/>The documentation for this struct was generated from the following file:<ul>
+</div><hr/>The documentation for this struct was generated from the following files:<ul>
+<li>include/rapidjson/<a class="el" href="fwd_8h_source.html">fwd.h</a></li>
<li>include/rapidjson/<a class="el" href="reader_8h_source.html">reader.h</a></li>
</ul>
</div><!-- contents -->
diff --git a/structrapidjson_1_1_generic_insitu_string_stream.html b/structrapidjson_1_1_generic_insitu_string_stream.html
index 0b5982f9..4bbc5deb 100644
--- a/structrapidjson_1_1_generic_insitu_string_stream.html
+++ b/structrapidjson_1_1_generic_insitu_string_stream.html
@@ -97,7 +97,7 @@ $(document).ready(function(){initNavTree('structrapidjson_1_1_generic_insitu_str
<p>A read-write string stream.
<a href="structrapidjson_1_1_generic_insitu_string_stream.html#details">More...</a></p>
-<p><code>#include &lt;<a class="el" href="rapidjson_8h_source.html">rapidjson.h</a>&gt;</code></p>
+<p><code>#include &lt;<a class="el" href="stream_8h_source.html">stream.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
@@ -156,8 +156,9 @@ struct rapidjson::GenericInsituStringStream&lt; Encoding &gt;</h3>
<p>A read-write string stream. </p>
<p>This string stream is particularly designed for in-situ parsing. </p><dl class="section note"><dt>Note</dt><dd>implements <a class="el" href="classrapidjson_1_1_stream.html" title="Concept for reading and writing characters. ">Stream</a> concept </dd></dl>
-</div><hr/>The documentation for this struct was generated from the following file:<ul>
-<li>include/rapidjson/<a class="el" href="rapidjson_8h_source.html">rapidjson.h</a></li>
+</div><hr/>The documentation for this struct was generated from the following files:<ul>
+<li>include/rapidjson/<a class="el" href="fwd_8h_source.html">fwd.h</a></li>
+<li>include/rapidjson/<a class="el" href="stream_8h_source.html">stream.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/structrapidjson_1_1_generic_memory_buffer.html b/structrapidjson_1_1_generic_memory_buffer.html
index f797513d..cfe7a0bd 100644
--- a/structrapidjson_1_1_generic_memory_buffer.html
+++ b/structrapidjson_1_1_generic_memory_buffer.html
@@ -149,7 +149,7 @@ static const size_t&#160;</td><td class="memItemRight" valign="bottom"><b>kDefau
<tr class="separator:abaa207fb3f94da48b0c91755828f98b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><h3>template&lt;typename Allocator = CrtAllocator&gt;<br />
+<div class="textblock"><h3>template&lt;typename Allocator&gt;<br />
struct rapidjson::GenericMemoryBuffer&lt; Allocator &gt;</h3>
<p>Represents an in-memory output byte stream. </p>
@@ -166,7 +166,8 @@ struct rapidjson::GenericMemoryBuffer&lt; Allocator &gt;</h3>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>implements <a class="el" href="classrapidjson_1_1_stream.html" title="Concept for reading and writing characters. ">Stream</a> concept </dd></dl>
-</div><hr/>The documentation for this struct was generated from the following file:<ul>
+</div><hr/>The documentation for this struct was generated from the following files:<ul>
+<li>include/rapidjson/<a class="el" href="fwd_8h_source.html">fwd.h</a></li>
<li>include/rapidjson/<a class="el" href="memorybuffer_8h_source.html">memorybuffer.h</a></li>
</ul>
</div><!-- contents -->
diff --git a/structrapidjson_1_1_generic_pointer_1_1_token.html b/structrapidjson_1_1_generic_pointer_1_1_token.html
index bf526b2c..e1f3dc51 100644
--- a/structrapidjson_1_1_generic_pointer_1_1_token.html
+++ b/structrapidjson_1_1_generic_pointer_1_1_token.html
@@ -113,7 +113,7 @@ const <a class="el" href="classrapidjson_1_1_generic_pointer.html#a850f78846c554
<tr class="separator:a50331c9e3dedc34d2c79745b2e58fb2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><h3>template&lt;typename ValueType, typename Allocator = CrtAllocator&gt;<br />
+<div class="textblock"><h3>template&lt;typename ValueType, typename Allocator&gt;<br />
struct rapidjson::GenericPointer&lt; ValueType, Allocator &gt;::Token</h3>
<p>A token is the basic units of internal representation. </p>
diff --git a/structrapidjson_1_1_generic_string_ref.html b/structrapidjson_1_1_generic_string_ref.html
index 2478551d..d02efb57 100644
--- a/structrapidjson_1_1_generic_string_ref.html
+++ b/structrapidjson_1_1_generic_string_ref.html
@@ -165,14 +165,14 @@ struct rapidjson::GenericStringRef&lt; CharType &gt;</h3>
</dl>
<p>This helper class is used to automatically infer constant string references for string literals, especially from <code>const</code> <b></b>(!) character arrays.</p>
<p>The main use is for creating JSON string values without copying the source string via an <a class="el" href="md_doc_internals.html#Allocator">Allocator</a>. This requires that the referenced string pointers have a sufficient lifetime, which exceeds the lifetime of the associated <a class="el" href="classrapidjson_1_1_generic_value.html" title="Represents a JSON value. Use Value for UTF8 encoding and default allocator. ">GenericValue</a>.</p>
-<p><b>Example</b> </p><div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> v(<span class="stringliteral">&quot;foo&quot;</span>); <span class="comment">// ok, no need to copy &amp; calculate length</span></div>
+<p><b>Example</b> </p><div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> v(<span class="stringliteral">&quot;foo&quot;</span>); <span class="comment">// ok, no need to copy &amp; calculate length</span></div>
<div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span> foo[] = <span class="stringliteral">&quot;foo&quot;</span>;</div>
<div class="line">v.SetString(foo); <span class="comment">// ok</span></div>
<div class="line"></div>
<div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span>* bar = foo;</div>
<div class="line"><span class="comment">// Value x(bar); // not ok, can&#39;t rely on bar&#39;s lifetime</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> x(<a class="code" href="structrapidjson_1_1_generic_string_ref.html#aa6b9fd9f6aa49405a574c362ba9af6b5">StringRef</a>(bar)); <span class="comment">// lifetime explicitly guaranteed by user</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> y(<a class="code" href="structrapidjson_1_1_generic_string_ref.html#aa6b9fd9f6aa49405a574c362ba9af6b5">StringRef</a>(bar, 3)); <span class="comment">// ok, explicitly pass length</span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> x(<a class="code" href="structrapidjson_1_1_generic_string_ref.html#aa6b9fd9f6aa49405a574c362ba9af6b5">StringRef</a>(bar)); <span class="comment">// lifetime explicitly guaranteed by user</span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> y(<a class="code" href="structrapidjson_1_1_generic_string_ref.html#aa6b9fd9f6aa49405a574c362ba9af6b5">StringRef</a>(bar, 3)); <span class="comment">// ok, explicitly pass length</span></div>
</div><!-- fragment --><dl class="section see"><dt>See also</dt><dd><a class="el" href="structrapidjson_1_1_generic_string_ref.html#aa6b9fd9f6aa49405a574c362ba9af6b5" title="Mark a character pointer as constant string. ">StringRef</a>, <a class="el" href="classrapidjson_1_1_generic_value.html#afb91480cc6242ca96ffc603e649c319f" title="Set this value as a string without copying source string. ">GenericValue::SetString</a> </dd></dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="acd4d5ebac2b610ce647356aa52998002"></a>
diff --git a/structrapidjson_1_1_generic_string_stream.html b/structrapidjson_1_1_generic_string_stream.html
index e292d961..d6b88b3a 100644
--- a/structrapidjson_1_1_generic_string_stream.html
+++ b/structrapidjson_1_1_generic_string_stream.html
@@ -97,7 +97,7 @@ $(document).ready(function(){initNavTree('structrapidjson_1_1_generic_string_str
<p>Read-only string stream.
<a href="structrapidjson_1_1_generic_string_stream.html#details">More...</a></p>
-<p><code>#include &lt;<a class="el" href="rapidjson_8h_source.html">rapidjson.h</a>&gt;</code></p>
+<p><code>#include &lt;<a class="el" href="stream_8h_source.html">stream.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
@@ -149,8 +149,9 @@ struct rapidjson::GenericStringStream&lt; Encoding &gt;</h3>
<p>Read-only string stream. </p>
<dl class="section note"><dt>Note</dt><dd>implements <a class="el" href="classrapidjson_1_1_stream.html" title="Concept for reading and writing characters. ">Stream</a> concept </dd></dl>
-</div><hr/>The documentation for this struct was generated from the following file:<ul>
-<li>include/rapidjson/<a class="el" href="rapidjson_8h_source.html">rapidjson.h</a></li>
+</div><hr/>The documentation for this struct was generated from the following files:<ul>
+<li>include/rapidjson/<a class="el" href="fwd_8h_source.html">fwd.h</a></li>
+<li>include/rapidjson/<a class="el" href="stream_8h_source.html">stream.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/structrapidjson_1_1_stream_traits.html b/structrapidjson_1_1_stream_traits.html
index 8b0d451c..d9abfc79 100644
--- a/structrapidjson_1_1_stream_traits.html
+++ b/structrapidjson_1_1_stream_traits.html
@@ -95,14 +95,14 @@ $(document).ready(function(){initNavTree('structrapidjson_1_1_stream_traits.html
<p>Provides additional information for stream.
<a href="structrapidjson_1_1_stream_traits.html#details">More...</a></p>
-<p><code>#include &lt;<a class="el" href="rapidjson_8h_source.html">rapidjson.h</a>&gt;</code></p>
+<p><code>#include &lt;<a class="el" href="stream_8h_source.html">stream.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
-<tr class="memitem:abce9b61706255c4575abaf0ca9a7b94a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>copyOptimization</b> = 0
+<tr class="memitem:a3a11abaf56440885401e34830a819c53"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>copyOptimization</b> = 0
}</td></tr>
-<tr class="memdesc:abce9b61706255c4575abaf0ca9a7b94a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to make local copy of stream for optimization during parsing. <a href="structrapidjson_1_1_stream_traits.html#abce9b61706255c4575abaf0ca9a7b94a">More...</a><br /></td></tr>
-<tr class="separator:abce9b61706255c4575abaf0ca9a7b94a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memdesc:a3a11abaf56440885401e34830a819c53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to make local copy of stream for optimization during parsing. <a href="structrapidjson_1_1_stream_traits.html#a3a11abaf56440885401e34830a819c53">More...</a><br /></td></tr>
+<tr class="separator:a3a11abaf56440885401e34830a819c53"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename Stream&gt;<br />
@@ -111,7 +111,7 @@ struct rapidjson::StreamTraits&lt; Stream &gt;</h3>
<p>Provides additional information for stream. </p>
<p>By using traits pattern, this type provides a default configuration for stream. For custom stream, this type can be specialized for other configuration. See TEST(Reader, CustomStringStream) in readertest.cpp for example. </p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
-<a class="anchor" id="abce9b61706255c4575abaf0ca9a7b94a"></a>
+<a class="anchor" id="a3a11abaf56440885401e34830a819c53"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -129,7 +129,7 @@ template&lt;typename Stream &gt; </div>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>include/rapidjson/<a class="el" href="rapidjson_8h_source.html">rapidjson.h</a></li>
+<li>include/rapidjson/<a class="el" href="stream_8h_source.html">stream.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/structrapidjson_1_1_stream_traits.js b/structrapidjson_1_1_stream_traits.js
index 3f1738ac..4355c91a 100644
--- a/structrapidjson_1_1_stream_traits.js
+++ b/structrapidjson_1_1_stream_traits.js
@@ -1,4 +1,4 @@
var structrapidjson_1_1_stream_traits =
[
- [ "copyOptimization", "structrapidjson_1_1_stream_traits.html#abce9b61706255c4575abaf0ca9a7b94aaf6f7f81d1e208f1041e618b57e0d3828", null ]
+ [ "copyOptimization", "structrapidjson_1_1_stream_traits.html#a3a11abaf56440885401e34830a819c53af6f7f81d1e208f1041e618b57e0d3828", null ]
]; \ No newline at end of file
diff --git a/structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html b/structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html
index b5e6f54a..0c8ad672 100644
--- a/structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html
+++ b/structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html
@@ -94,12 +94,12 @@ $(document).ready(function(){initNavTree('structrapidjson_1_1_stream_traits_3_01
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
-<tr class="memitem:a054229c03fb6ea37485c597efbf2b10c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a054229c03fb6ea37485c597efbf2b10c"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>copyOptimization</b> = 1
+<tr class="memitem:af17a82c2a14a192ef2e497aba82ad46b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af17a82c2a14a192ef2e497aba82ad46b"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>copyOptimization</b> = 1
}</td></tr>
-<tr class="separator:a054229c03fb6ea37485c597efbf2b10c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:af17a82c2a14a192ef2e497aba82ad46b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>include/rapidjson/<a class="el" href="rapidjson_8h_source.html">rapidjson.h</a></li>
+<li>include/rapidjson/<a class="el" href="stream_8h_source.html">stream.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.js b/structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.js
index a679d1c8..945d21a4 100644
--- a/structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.js
+++ b/structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.js
@@ -1,4 +1,4 @@
var structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4 =
[
- [ "copyOptimization", "structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html#a054229c03fb6ea37485c597efbf2b10cab943169f50f1fc0616fedc1dd2605201", null ]
+ [ "copyOptimization", "structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html#af17a82c2a14a192ef2e497aba82ad46bab943169f50f1fc0616fedc1dd2605201", null ]
]; \ No newline at end of file
diff --git a/structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html b/structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html
index cff2b459..3d23eb19 100644
--- a/structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html
+++ b/structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html
@@ -94,12 +94,12 @@ $(document).ready(function(){initNavTree('structrapidjson_1_1_stream_traits_3_01
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
-<tr class="memitem:a210d1cf911ace22a80ec62aec8869c11"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a210d1cf911ace22a80ec62aec8869c11"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>copyOptimization</b> = 1
+<tr class="memitem:ad0861f3abdc5e583e711bc2679fe8f33"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad0861f3abdc5e583e711bc2679fe8f33"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>copyOptimization</b> = 1
}</td></tr>
-<tr class="separator:a210d1cf911ace22a80ec62aec8869c11"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:ad0861f3abdc5e583e711bc2679fe8f33"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>include/rapidjson/<a class="el" href="rapidjson_8h_source.html">rapidjson.h</a></li>
+<li>include/rapidjson/<a class="el" href="stream_8h_source.html">stream.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.js b/structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.js
index dac4e107..79ea6b83 100644
--- a/structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.js
+++ b/structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.js
@@ -1,4 +1,4 @@
var structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4 =
[
- [ "copyOptimization", "structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html#a210d1cf911ace22a80ec62aec8869c11a58160aabefa22129afe0dd6dce3285f9", null ]
+ [ "copyOptimization", "structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html#ad0861f3abdc5e583e711bc2679fe8f33a58160aabefa22129afe0dd6dce3285f9", null ]
]; \ No newline at end of file
diff --git a/structrapidjson_1_1_u_t_f16.html b/structrapidjson_1_1_u_t_f16.html
index da07ec0b..25d60ac4 100644
--- a/structrapidjson_1_1_u_t_f16.html
+++ b/structrapidjson_1_1_u_t_f16.html
@@ -111,9 +111,9 @@ Inheritance diagram for rapidjson::UTF16&lt; CharType &gt;:</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
-<tr class="memitem:a1b25407397e76551362ad06fb0f755dd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1b25407397e76551362ad06fb0f755dd"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
+<tr class="memitem:a439e1dc4701cc7ae34d257ce76f5dc37"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a439e1dc4701cc7ae34d257ce76f5dc37"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
}</td></tr>
-<tr class="separator:a1b25407397e76551362ad06fb0f755dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:a439e1dc4701cc7ae34d257ce76f5dc37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb67f53501b796b55996352a6080da54"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb67f53501b796b55996352a6080da54"></a>
typedef CharType&#160;</td><td class="memItemRight" valign="bottom"><b>Ch</b></td></tr>
<tr class="separator:acb67f53501b796b55996352a6080da54"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/structrapidjson_1_1_u_t_f16.js b/structrapidjson_1_1_u_t_f16.js
index d87e03fd..c78ae935 100644
--- a/structrapidjson_1_1_u_t_f16.js
+++ b/structrapidjson_1_1_u_t_f16.js
@@ -1,6 +1,6 @@
var structrapidjson_1_1_u_t_f16 =
[
[ "Ch", "structrapidjson_1_1_u_t_f16.html#acb67f53501b796b55996352a6080da54", null ],
- [ "supportUnicode", "structrapidjson_1_1_u_t_f16.html#a1b25407397e76551362ad06fb0f755dda5a09bf086fb94e4d6fb106da7c3f01ea", null ],
+ [ "supportUnicode", "structrapidjson_1_1_u_t_f16.html#a439e1dc4701cc7ae34d257ce76f5dc37a5a09bf086fb94e4d6fb106da7c3f01ea", null ],
[ "RAPIDJSON_STATIC_ASSERT", "structrapidjson_1_1_u_t_f16.html#a97a1141d35742ceeedc0da87538b8790", null ]
]; \ No newline at end of file
diff --git a/structrapidjson_1_1_u_t_f16_b_e.html b/structrapidjson_1_1_u_t_f16_b_e.html
index eb1b5474..bc5c92d4 100644
--- a/structrapidjson_1_1_u_t_f16_b_e.html
+++ b/structrapidjson_1_1_u_t_f16_b_e.html
@@ -145,9 +145,9 @@ template&lt;typename InputStream , typename OutputStream &gt; </td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_structrapidjson_1_1_u_t_f16"><td colspan="2" onclick="javascript:toggleInherit('pub_types_structrapidjson_1_1_u_t_f16')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="structrapidjson_1_1_u_t_f16.html">rapidjson::UTF16&lt; CharType &gt;</a></td></tr>
-<tr class="memitem:a1b25407397e76551362ad06fb0f755dd inherit pub_types_structrapidjson_1_1_u_t_f16"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1b25407397e76551362ad06fb0f755dd"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
+<tr class="memitem:a439e1dc4701cc7ae34d257ce76f5dc37 inherit pub_types_structrapidjson_1_1_u_t_f16"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a439e1dc4701cc7ae34d257ce76f5dc37"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
}</td></tr>
-<tr class="separator:a1b25407397e76551362ad06fb0f755dd inherit pub_types_structrapidjson_1_1_u_t_f16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:a439e1dc4701cc7ae34d257ce76f5dc37 inherit pub_types_structrapidjson_1_1_u_t_f16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb67f53501b796b55996352a6080da54 inherit pub_types_structrapidjson_1_1_u_t_f16"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb67f53501b796b55996352a6080da54"></a>
typedef CharType&#160;</td><td class="memItemRight" valign="bottom"><b>Ch</b></td></tr>
<tr class="separator:acb67f53501b796b55996352a6080da54 inherit pub_types_structrapidjson_1_1_u_t_f16"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/structrapidjson_1_1_u_t_f16_l_e.html b/structrapidjson_1_1_u_t_f16_l_e.html
index 08241f80..4511474b 100644
--- a/structrapidjson_1_1_u_t_f16_l_e.html
+++ b/structrapidjson_1_1_u_t_f16_l_e.html
@@ -145,9 +145,9 @@ template&lt;typename InputStream , typename OutputStream &gt; </td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_structrapidjson_1_1_u_t_f16"><td colspan="2" onclick="javascript:toggleInherit('pub_types_structrapidjson_1_1_u_t_f16')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="structrapidjson_1_1_u_t_f16.html">rapidjson::UTF16&lt; CharType &gt;</a></td></tr>
-<tr class="memitem:a1b25407397e76551362ad06fb0f755dd inherit pub_types_structrapidjson_1_1_u_t_f16"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1b25407397e76551362ad06fb0f755dd"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
+<tr class="memitem:a439e1dc4701cc7ae34d257ce76f5dc37 inherit pub_types_structrapidjson_1_1_u_t_f16"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a439e1dc4701cc7ae34d257ce76f5dc37"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
}</td></tr>
-<tr class="separator:a1b25407397e76551362ad06fb0f755dd inherit pub_types_structrapidjson_1_1_u_t_f16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:a439e1dc4701cc7ae34d257ce76f5dc37 inherit pub_types_structrapidjson_1_1_u_t_f16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb67f53501b796b55996352a6080da54 inherit pub_types_structrapidjson_1_1_u_t_f16"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb67f53501b796b55996352a6080da54"></a>
typedef CharType&#160;</td><td class="memItemRight" valign="bottom"><b>Ch</b></td></tr>
<tr class="separator:acb67f53501b796b55996352a6080da54 inherit pub_types_structrapidjson_1_1_u_t_f16"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/structrapidjson_1_1_u_t_f32.html b/structrapidjson_1_1_u_t_f32.html
index 0c37a4bc..a4b8f7f8 100644
--- a/structrapidjson_1_1_u_t_f32.html
+++ b/structrapidjson_1_1_u_t_f32.html
@@ -111,9 +111,9 @@ Inheritance diagram for rapidjson::UTF32&lt; CharType &gt;:</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
-<tr class="memitem:af76c14241fb9ce42b4ff0b10d5c6300d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af76c14241fb9ce42b4ff0b10d5c6300d"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
+<tr class="memitem:a65443b00cba1bb95baf55025108d6a54"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a65443b00cba1bb95baf55025108d6a54"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
}</td></tr>
-<tr class="separator:af76c14241fb9ce42b4ff0b10d5c6300d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:a65443b00cba1bb95baf55025108d6a54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acea97ff3d1b722b88c5faa72cfd4385e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acea97ff3d1b722b88c5faa72cfd4385e"></a>
typedef CharType&#160;</td><td class="memItemRight" valign="bottom"><b>Ch</b></td></tr>
<tr class="separator:acea97ff3d1b722b88c5faa72cfd4385e"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/structrapidjson_1_1_u_t_f32.js b/structrapidjson_1_1_u_t_f32.js
index 13caffa0..d858a998 100644
--- a/structrapidjson_1_1_u_t_f32.js
+++ b/structrapidjson_1_1_u_t_f32.js
@@ -1,6 +1,6 @@
var structrapidjson_1_1_u_t_f32 =
[
[ "Ch", "structrapidjson_1_1_u_t_f32.html#acea97ff3d1b722b88c5faa72cfd4385e", null ],
- [ "supportUnicode", "structrapidjson_1_1_u_t_f32.html#af76c14241fb9ce42b4ff0b10d5c6300da4b93019e2b1729a70b35ba10b581ab9e", null ],
+ [ "supportUnicode", "structrapidjson_1_1_u_t_f32.html#a65443b00cba1bb95baf55025108d6a54a4b93019e2b1729a70b35ba10b581ab9e", null ],
[ "RAPIDJSON_STATIC_ASSERT", "structrapidjson_1_1_u_t_f32.html#ac297f89fdab70c22b19f7db769affe05", null ]
]; \ No newline at end of file
diff --git a/structrapidjson_1_1_u_t_f32_b_e.html b/structrapidjson_1_1_u_t_f32_b_e.html
index 664b3403..b14ca05e 100644
--- a/structrapidjson_1_1_u_t_f32_b_e.html
+++ b/structrapidjson_1_1_u_t_f32_b_e.html
@@ -145,9 +145,9 @@ template&lt;typename InputStream , typename OutputStream &gt; </td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_structrapidjson_1_1_u_t_f32"><td colspan="2" onclick="javascript:toggleInherit('pub_types_structrapidjson_1_1_u_t_f32')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="structrapidjson_1_1_u_t_f32.html">rapidjson::UTF32&lt; CharType &gt;</a></td></tr>
-<tr class="memitem:af76c14241fb9ce42b4ff0b10d5c6300d inherit pub_types_structrapidjson_1_1_u_t_f32"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af76c14241fb9ce42b4ff0b10d5c6300d"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
+<tr class="memitem:a65443b00cba1bb95baf55025108d6a54 inherit pub_types_structrapidjson_1_1_u_t_f32"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a65443b00cba1bb95baf55025108d6a54"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
}</td></tr>
-<tr class="separator:af76c14241fb9ce42b4ff0b10d5c6300d inherit pub_types_structrapidjson_1_1_u_t_f32"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:a65443b00cba1bb95baf55025108d6a54 inherit pub_types_structrapidjson_1_1_u_t_f32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acea97ff3d1b722b88c5faa72cfd4385e inherit pub_types_structrapidjson_1_1_u_t_f32"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acea97ff3d1b722b88c5faa72cfd4385e"></a>
typedef CharType&#160;</td><td class="memItemRight" valign="bottom"><b>Ch</b></td></tr>
<tr class="separator:acea97ff3d1b722b88c5faa72cfd4385e inherit pub_types_structrapidjson_1_1_u_t_f32"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/structrapidjson_1_1_u_t_f32_l_e.html b/structrapidjson_1_1_u_t_f32_l_e.html
index 425a7628..3a9fc02e 100644
--- a/structrapidjson_1_1_u_t_f32_l_e.html
+++ b/structrapidjson_1_1_u_t_f32_l_e.html
@@ -145,9 +145,9 @@ template&lt;typename InputStream , typename OutputStream &gt; </td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_structrapidjson_1_1_u_t_f32"><td colspan="2" onclick="javascript:toggleInherit('pub_types_structrapidjson_1_1_u_t_f32')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="structrapidjson_1_1_u_t_f32.html">rapidjson::UTF32&lt; CharType &gt;</a></td></tr>
-<tr class="memitem:af76c14241fb9ce42b4ff0b10d5c6300d inherit pub_types_structrapidjson_1_1_u_t_f32"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af76c14241fb9ce42b4ff0b10d5c6300d"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
+<tr class="memitem:a65443b00cba1bb95baf55025108d6a54 inherit pub_types_structrapidjson_1_1_u_t_f32"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a65443b00cba1bb95baf55025108d6a54"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
}</td></tr>
-<tr class="separator:af76c14241fb9ce42b4ff0b10d5c6300d inherit pub_types_structrapidjson_1_1_u_t_f32"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:a65443b00cba1bb95baf55025108d6a54 inherit pub_types_structrapidjson_1_1_u_t_f32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acea97ff3d1b722b88c5faa72cfd4385e inherit pub_types_structrapidjson_1_1_u_t_f32"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acea97ff3d1b722b88c5faa72cfd4385e"></a>
typedef CharType&#160;</td><td class="memItemRight" valign="bottom"><b>Ch</b></td></tr>
<tr class="separator:acea97ff3d1b722b88c5faa72cfd4385e inherit pub_types_structrapidjson_1_1_u_t_f32"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/structrapidjson_1_1_u_t_f8.html b/structrapidjson_1_1_u_t_f8.html
index dd2f1085..595ff832 100644
--- a/structrapidjson_1_1_u_t_f8.html
+++ b/structrapidjson_1_1_u_t_f8.html
@@ -100,9 +100,9 @@ $(document).ready(function(){initNavTree('structrapidjson_1_1_u_t_f8.html','');}
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
-<tr class="memitem:a2855bd8436afb593c19d8746e189c895"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2855bd8436afb593c19d8746e189c895"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
+<tr class="memitem:a162ec39d1feea956ac7c82ee21bbe037"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a162ec39d1feea956ac7c82ee21bbe037"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
}</td></tr>
-<tr class="separator:a2855bd8436afb593c19d8746e189c895"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:a162ec39d1feea956ac7c82ee21bbe037"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f47e775d8306a647a5c9eceac4b52fc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9f47e775d8306a647a5c9eceac4b52fc"></a>
typedef CharType&#160;</td><td class="memItemRight" valign="bottom"><b>Ch</b></td></tr>
<tr class="separator:a9f47e775d8306a647a5c9eceac4b52fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/structrapidjson_1_1_u_t_f8.js b/structrapidjson_1_1_u_t_f8.js
index 490cbda4..793228f0 100644
--- a/structrapidjson_1_1_u_t_f8.js
+++ b/structrapidjson_1_1_u_t_f8.js
@@ -1,5 +1,5 @@
var structrapidjson_1_1_u_t_f8 =
[
[ "Ch", "structrapidjson_1_1_u_t_f8.html#a9f47e775d8306a647a5c9eceac4b52fc", null ],
- [ "supportUnicode", "structrapidjson_1_1_u_t_f8.html#a2855bd8436afb593c19d8746e189c895a821cba43661b67d78115cc9366e91b32", null ]
+ [ "supportUnicode", "structrapidjson_1_1_u_t_f8.html#a162ec39d1feea956ac7c82ee21bbe037a821cba43661b67d78115cc9366e91b32", null ]
]; \ No newline at end of file
diff --git a/structrapidjson_1_1_writer_1_1_level.html b/structrapidjson_1_1_writer_1_1_level.html
index 060a5f11..a9442e4f 100644
--- a/structrapidjson_1_1_writer_1_1_level.html
+++ b/structrapidjson_1_1_writer_1_1_level.html
@@ -116,7 +116,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stru
<tr class="separator:a5920547a092cb88db486d75064ffe50e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><h3>template&lt;typename OutputStream, typename SourceEncoding = UTF8&lt;&gt;, typename TargetEncoding = UTF8&lt;&gt;, typename StackAllocator = CrtAllocator&gt;<br />
+<div class="textblock"><h3>template&lt;typename OutputStream, typename SourceEncoding, typename TargetEncoding, typename StackAllocator&gt;<br />
struct rapidjson::Writer&lt; OutputStream, SourceEncoding, TargetEncoding, StackAllocator &gt;::Level</h3>
<p>Information for each nested level. </p>
diff --git a/writer_8h_source.html b/writer_8h_source.html
index 5fb62144..f1bab5ce 100644
--- a/writer_8h_source.html
+++ b/writer_8h_source.html
@@ -105,7 +105,7 @@ $(document).ready(function(){initNavTree('writer_8h_source.html','');});
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_WRITER_H_</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define RAPIDJSON_WRITER_H_</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rapidjson_8h.html">rapidjson.h</a>&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;stream.h&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;internal/stack.h&quot;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;internal/strfunc.h&quot;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;internal/dtoa.h&quot;</span></div>
@@ -142,7 +142,7 @@ $(document).ready(function(){initNavTree('writer_8h_source.html','');});
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> \note implements Handler concept</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> OutputStream, <span class="keyword">typename</span> SourceEncoding = UTF8&lt;&gt;, <span class="keyword">typename</span> TargetEncoding = UTF8&lt;&gt;, <span class="keyword">typename</span> StackAllocator = CrtAllocator&gt;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_writer.html"> 55</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_writer.html">Writer</a> {</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">class </span>Writer {</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> SourceEncoding::Ch Ch;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"></span></div>
@@ -289,8 +289,8 @@ $(document).ready(function(){initNavTree('writer_8h_source.html','');});
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(*os_, <span class="charliteral">&#39;t&#39;</span>); <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(*os_, <span class="charliteral">&#39;r&#39;</span>); <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(*os_, <span class="charliteral">&#39;u&#39;</span>); <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(*os_, <span class="charliteral">&#39;e&#39;</span>);</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">PutReserve</a>(*os_, 5);</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(*os_, <span class="charliteral">&#39;f&#39;</span>); <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(*os_, <span class="charliteral">&#39;a&#39;</span>); <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(*os_, <span class="charliteral">&#39;l&#39;</span>); <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(*os_, <span class="charliteral">&#39;s&#39;</span>); <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(*os_, <span class="charliteral">&#39;e&#39;</span>);</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; PutReserve(*os_, 5);</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; PutUnsafe(*os_, <span class="charliteral">&#39;f&#39;</span>); PutUnsafe(*os_, <span class="charliteral">&#39;a&#39;</span>); PutUnsafe(*os_, <span class="charliteral">&#39;l&#39;</span>); PutUnsafe(*os_, <span class="charliteral">&#39;s&#39;</span>); PutUnsafe(*os_, <span class="charliteral">&#39;e&#39;</span>);</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; }</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div>
@@ -501,30 +501,29 @@ $(document).ready(function(){initNavTree('writer_8h_source.html','');});
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_RAPIDJSON_H_</span></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e">rapidjson::kTrueType</a></div><div class="ttdoc">true </div><div class="ttdef"><b>Definition:</b> rapidjson.h:719</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e">rapidjson::kTrueType</a></div><div class="ttdoc">true </div><div class="ttdef"><b>Definition:</b> rapidjson.h:560</div></div>
<div class="ttc" id="classrapidjson_1_1_writer_html_ad5f042d9c1a8ce5be2d52e18255b4390"><div class="ttname"><a href="classrapidjson_1_1_writer.html#ad5f042d9c1a8ce5be2d52e18255b4390">rapidjson::Writer::Double</a></div><div class="ttdeci">bool Double(double d)</div><div class="ttdoc">Writes the given double value to the stream. </div><div class="ttdef"><b>Definition:</b> writer.h:121</div></div>
-<div class="ttc" id="namespacerapidjson_html_a820f77efccfbb749bd15fe4822d2c740"><div class="ttname"><a href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">rapidjson::PutReserve</a></div><div class="ttdeci">void PutReserve(Stream &amp;stream, size_t count)</div><div class="ttdoc">Reserve n characters for writing to a stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:619</div></div>
+<div class="ttc" id="namespacerapidjson_html_a820f77efccfbb749bd15fe4822d2c740"><div class="ttname"><a href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">rapidjson::PutReserve</a></div><div class="ttdeci">void PutReserve(Stream &amp;stream, size_t count)</div><div class="ttdoc">Reserve n characters for writing to a stream. </div><div class="ttdef"><b>Definition:</b> stream.h:84</div></div>
<div class="ttc" id="namespacerapidjson_html_a44eb33eaa523e36d466b1ced64b85c84"><div class="ttname"><a href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">rapidjson::SizeType</a></div><div class="ttdeci">unsigned SizeType</div><div class="ttdoc">Size type (for string lengths, array sizes, etc.) </div><div class="ttdef"><b>Definition:</b> rapidjson.h:349</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607">rapidjson::kFalseType</a></div><div class="ttdoc">false </div><div class="ttdef"><b>Definition:</b> rapidjson.h:718</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607">rapidjson::kFalseType</a></div><div class="ttdoc">false </div><div class="ttdef"><b>Definition:</b> rapidjson.h:559</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_ga5dc14176a9e71ace282404b0bcda57a1"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga5dc14176a9e71ace282404b0bcda57a1">RAPIDJSON_LIKELY</a></div><div class="ttdeci">#define RAPIDJSON_LIKELY(x)</div><div class="ttdoc">Compiler branching hint for expression with high probability to be true. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:424</div></div>
<div class="ttc" id="structrapidjson_1_1_writer_1_1_level_html_a5920547a092cb88db486d75064ffe50e"><div class="ttname"><a href="structrapidjson_1_1_writer_1_1_level.html#a5920547a092cb88db486d75064ffe50e">rapidjson::Writer::Level::inArray</a></div><div class="ttdeci">bool inArray</div><div class="ttdoc">true if in array, otherwise in object </div><div class="ttdef"><b>Definition:</b> writer.h:186</div></div>
<div class="ttc" id="structrapidjson_1_1_writer_1_1_level_html"><div class="ttname"><a href="structrapidjson_1_1_writer_1_1_level.html">rapidjson::Writer::Level</a></div><div class="ttdoc">Information for each nested level. </div><div class="ttdef"><b>Definition:</b> writer.h:183</div></div>
<div class="ttc" id="classrapidjson_1_1_writer_html_a2efd8a54a3cb86f8adedfd6bb692d0d9"><div class="ttname"><a href="classrapidjson_1_1_writer.html#a2efd8a54a3cb86f8adedfd6bb692d0d9">rapidjson::Writer::String</a></div><div class="ttdeci">bool String(const Ch *str)</div><div class="ttdoc">Simpler but slower overload. </div><div class="ttdef"><b>Definition:</b> writer.h:176</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:716</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">rapidjson::kObjectType</a></div><div class="ttdoc">object </div><div class="ttdef"><b>Definition:</b> rapidjson.h:720</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:557</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">rapidjson::kObjectType</a></div><div class="ttdoc">object </div><div class="ttdef"><b>Definition:</b> rapidjson.h:561</div></div>
<div class="ttc" id="classrapidjson_1_1_writer_html_ac592904fad01d9d0f29bb0585fb02aa7"><div class="ttname"><a href="classrapidjson_1_1_writer.html#ac592904fad01d9d0f29bb0585fb02aa7">rapidjson::Writer::Writer</a></div><div class="ttdeci">Writer(OutputStream &amp;os, StackAllocator *stackAllocator=0, size_t levelDepth=kDefaultLevelDepth)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> writer.h:65</div></div>
<div class="ttc" id="structrapidjson_1_1_writer_1_1_level_html_a8e478a154f4230449e441ce986c49970"><div class="ttname"><a href="structrapidjson_1_1_writer_1_1_level.html#a8e478a154f4230449e441ce986c49970">rapidjson::Writer::Level::valueCount</a></div><div class="ttdeci">size_t valueCount</div><div class="ttdoc">number of values in this level </div><div class="ttdef"><b>Definition:</b> writer.h:185</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_ga6a2b1695c13e77ae425e3cbac980ccb5"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga6a2b1695c13e77ae425e3cbac980ccb5">RAPIDJSON_UNLIKELY</a></div><div class="ttdeci">#define RAPIDJSON_UNLIKELY(x)</div><div class="ttdoc">Compiler branching hint for expression with low probability to be true. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:437</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">rapidjson::kArrayType</a></div><div class="ttdoc">array </div><div class="ttdef"><b>Definition:</b> rapidjson.h:721</div></div>
-<div class="ttc" id="classrapidjson_1_1_writer_html"><div class="ttname"><a href="classrapidjson_1_1_writer.html">rapidjson::Writer</a></div><div class="ttdoc">JSON writer. </div><div class="ttdef"><b>Definition:</b> writer.h:55</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">rapidjson::kArrayType</a></div><div class="ttdoc">array </div><div class="ttdef"><b>Definition:</b> rapidjson.h:562</div></div>
+<div class="ttc" id="classrapidjson_1_1_writer_html"><div class="ttname"><a href="classrapidjson_1_1_writer.html">rapidjson::Writer</a></div><div class="ttdoc">JSON writer. </div><div class="ttdef"><b>Definition:</b> fwd.h:95</div></div>
<div class="ttc" id="classrapidjson_1_1_writer_html_ad70218827efbda426bbc8620a9339c3e"><div class="ttname"><a href="classrapidjson_1_1_writer.html#ad70218827efbda426bbc8620a9339c3e">rapidjson::Writer::IsComplete</a></div><div class="ttdeci">bool IsComplete() const </div><div class="ttdoc">Checks whether the output is a complete JSON. </div><div class="ttdef"><b>Definition:</b> writer.h:100</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff">rapidjson::kNullType</a></div><div class="ttdoc">null </div><div class="ttdef"><b>Definition:</b> rapidjson.h:717</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7">rapidjson::kStringType</a></div><div class="ttdoc">string </div><div class="ttdef"><b>Definition:</b> rapidjson.h:722</div></div>
-<div class="ttc" id="rapidjson_8h_html"><div class="ttname"><a href="rapidjson_8h.html">rapidjson.h</a></div><div class="ttdoc">common definitions and configuration </div></div>
-<div class="ttc" id="namespacerapidjson_html_a0a774dcffe8ae07686f459ae017d2f20"><div class="ttname"><a href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">rapidjson::PutUnsafe</a></div><div class="ttdeci">void PutUnsafe(Stream &amp;stream, typename Stream::Ch c)</div><div class="ttdoc">Write character to a stream, presuming buffer is reserved. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:626</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff">rapidjson::kNullType</a></div><div class="ttdoc">null </div><div class="ttdef"><b>Definition:</b> rapidjson.h:558</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7">rapidjson::kStringType</a></div><div class="ttdoc">string </div><div class="ttdef"><b>Definition:</b> rapidjson.h:563</div></div>
+<div class="ttc" id="namespacerapidjson_html_a0a774dcffe8ae07686f459ae017d2f20"><div class="ttname"><a href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">rapidjson::PutUnsafe</a></div><div class="ttdeci">void PutUnsafe(Stream &amp;stream, typename Stream::Ch c)</div><div class="ttdoc">Write character to a stream, presuming buffer is reserved. </div><div class="ttdef"><b>Definition:</b> stream.h:91</div></div>
<div class="ttc" id="classrapidjson_1_1_writer_html_af4411235dd75ae34274e7eb74d435147"><div class="ttname"><a href="classrapidjson_1_1_writer.html#af4411235dd75ae34274e7eb74d435147">rapidjson::Writer::Reset</a></div><div class="ttdeci">void Reset(OutputStream &amp;os)</div><div class="ttdoc">Reset the writer with a new stream. </div><div class="ttdef"><b>Definition:</b> writer.h:90</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a">rapidjson::kNumberType</a></div><div class="ttdoc">number </div><div class="ttdef"><b>Definition:</b> rapidjson.h:723</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a">rapidjson::kNumberType</a></div><div class="ttdoc">number </div><div class="ttdef"><b>Definition:</b> rapidjson.h:564</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.7-->
diff --git a/zh-cn/biginteger_8h_source.html b/zh-cn/biginteger_8h_source.html
index a63ce6ad..a0ea1707 100644
--- a/zh-cn/biginteger_8h_source.html
+++ b/zh-cn/biginteger_8h_source.html
@@ -379,7 +379,7 @@ $(document).ready(function(){initNavTree('biginteger_8h_source.html','');});
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_BIGINTEGER_H_</span></div>
<div class="ttc" id="rapidjson_8h_html_aaee1245f375a71be1ac9b8a07ba5fb8f"><div class="ttname"><a href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a></div><div class="ttdeci">#define RAPIDJSON_UINT64_C2(high32, low32)</div><div class="ttdoc">Construct a 64-bit literal by a pair of 32-bit integer. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:288</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:716</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:557</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/zh-cn/classrapidjson_1_1_generic_document.html b/zh-cn/classrapidjson_1_1_generic_document.html
index c2b5c8df..497f2e84 100644
--- a/zh-cn/classrapidjson_1_1_generic_document.html
+++ b/zh-cn/classrapidjson_1_1_generic_document.html
@@ -846,7 +846,7 @@ template&lt;typename Encoding, typename Allocator, typename StackAllocator&gt; <
<p>Implicit conversion to get the last parse result. </p>
<dl class="section return"><dt>返回</dt><dd><a class="el" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html">ParseResult</a> of the last parse operation</dd></dl>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> doc;</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> doc;</div>
<div class="line">ParseResult ok = doc.Parse(json);</div>
<div class="line"><span class="keywordflow">if</span> (!ok)</div>
<div class="line"> printf( <span class="stringliteral">&quot;JSON parse error: %s (%u)\n&quot;</span>, <a class="code" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gabdaf1a7a4db30fb0e3d927fdf0fabe79">GetParseError_En</a>(ok.Code()), ok.Offset());</div>
diff --git a/zh-cn/classrapidjson_1_1_generic_pointer.html b/zh-cn/classrapidjson_1_1_generic_pointer.html
index 22044086..50318d0a 100644
--- a/zh-cn/classrapidjson_1_1_generic_pointer.html
+++ b/zh-cn/classrapidjson_1_1_generic_pointer.html
@@ -317,7 +317,7 @@ template&lt;typename stackAllocator &gt; </td></tr>
<tr class="separator:ad9f28da15453d91c3669618a6f48bfcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
-<div class="textblock"><h3>template&lt;typename ValueType, typename Allocator = CrtAllocator&gt;<br />
+<div class="textblock"><h3>template&lt;typename ValueType, typename Allocator&gt;<br />
class rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</h3>
<p>Represents a JSON Pointer. Use Pointer for <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding and default allocator. </p>
@@ -340,7 +340,7 @@ class rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</h3>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -385,7 +385,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -431,7 +431,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -484,7 +484,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -527,7 +527,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="line"><span class="preprocessor">#define INDEX(i) { #i, sizeof(#i) - 1, i }</span></div>
<div class="line"></div>
<div class="line"><span class="keyword">static</span> <span class="keyword">const</span> Pointer::Token kTokens[] = { NAME(<span class="stringliteral">&quot;foo&quot;</span>), INDEX(123) };</div>
-<div class="line"><span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">Pointer</a> p(kTokens, <span class="keyword">sizeof</span>(kTokens) / <span class="keyword">sizeof</span>(kTokens[0]));</div>
+<div class="line"><span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">Pointer</a> p(kTokens, <span class="keyword">sizeof</span>(kTokens) / <span class="keyword">sizeof</span>(kTokens[0]));</div>
<div class="line"><span class="comment">// Equivalent to static const Pointer p(&quot;/foo/123&quot;);</span></div>
<div class="line"></div>
<div class="line"><span class="preprocessor">#undef NAME</span></div>
@@ -540,7 +540,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -586,7 +586,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -639,7 +639,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
@@ -687,7 +687,7 @@ template&lt;typename T &gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -733,7 +733,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -779,7 +779,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -825,7 +825,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -880,7 +880,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<div class="memtemplate">
template&lt;typename stackAllocator &gt; </div>
<table class="mlabels">
@@ -928,7 +928,7 @@ template&lt;typename stackAllocator &gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -964,7 +964,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -999,7 +999,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -1034,7 +1034,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -1088,7 +1088,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
@@ -1140,7 +1140,7 @@ template&lt;typename T &gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<div class="memtemplate">
template&lt;typename T , typename stackAllocator &gt; </div>
<table class="mlabels">
@@ -1186,7 +1186,7 @@ template&lt;typename T , typename stackAllocator &gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -1215,7 +1215,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -1244,7 +1244,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -1298,7 +1298,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
@@ -1350,7 +1350,7 @@ template&lt;typename T &gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<div class="memtemplate">
template&lt;typename T , typename stackAllocator &gt; </div>
<table class="mlabels">
@@ -1396,7 +1396,7 @@ template&lt;typename T , typename stackAllocator &gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<div class="memtemplate">
template&lt;typename OutputStream &gt; </div>
<table class="mlabels">
@@ -1438,7 +1438,7 @@ template&lt;typename OutputStream &gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<div class="memtemplate">
template&lt;typename OutputStream &gt; </div>
<table class="mlabels">
@@ -1480,7 +1480,7 @@ template&lt;typename OutputStream &gt; </div>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
+template&lt;typename ValueType , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -1531,6 +1531,7 @@ template&lt;typename ValueType, typename Allocator = CrtAllocator&gt; </div>
</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
+<li>include/rapidjson/<a class="el" href="fwd_8h_source.html">fwd.h</a></li>
<li>include/rapidjson/<a class="el" href="pointer_8h_source.html">pointer.h</a></li>
</ul>
</div><!-- contents -->
diff --git a/zh-cn/classrapidjson_1_1_generic_reader.html b/zh-cn/classrapidjson_1_1_generic_reader.html
index 918247ad..dc43dbba 100644
--- a/zh-cn/classrapidjson_1_1_generic_reader.html
+++ b/zh-cn/classrapidjson_1_1_generic_reader.html
@@ -140,7 +140,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>SetParseError</b> (<a
<tr class="separator:a544704abdce535d93ae0f45d0cf0bc0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
-<div class="textblock"><h3>template&lt;typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator&gt;<br />
+<div class="textblock"><h3>template&lt;typename SourceEncoding, typename TargetEncoding, typename StackAllocator&gt;<br />
class rapidjson::GenericReader&lt; SourceEncoding, TargetEncoding, StackAllocator &gt;</h3>
<p>SAX-style JSON parser. Use <a class="el" href="md_doc_sax_8zh-cn.html#Reader">Reader</a> for <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding and default allocator. </p>
@@ -161,7 +161,7 @@ class rapidjson::GenericReader&lt; SourceEncoding, TargetEncoding, StackAllocato
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator&gt; </div>
+template&lt;typename SourceEncoding, typename TargetEncoding, typename StackAllocator&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -207,7 +207,7 @@ template&lt;typename SourceEncoding, typename TargetEncoding, typename StackAllo
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator&gt; </div>
+template&lt;typename SourceEncoding, typename TargetEncoding, typename StackAllocator&gt; </div>
<div class="memtemplate">
template&lt;unsigned parseFlags, typename InputStream , typename Handler &gt; </div>
<table class="mlabels">
@@ -263,7 +263,7 @@ template&lt;unsigned parseFlags, typename InputStream , typename Handler &gt; </
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator&gt; </div>
+template&lt;typename SourceEncoding, typename TargetEncoding, typename StackAllocator&gt; </div>
<div class="memtemplate">
template&lt;typename InputStream , typename Handler &gt; </div>
<table class="mlabels">
@@ -315,6 +315,7 @@ template&lt;typename InputStream , typename Handler &gt; </div>
</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
+<li>include/rapidjson/<a class="el" href="fwd_8h_source.html">fwd.h</a></li>
<li>include/rapidjson/<a class="el" href="reader_8h_source.html">reader.h</a></li>
</ul>
</div><!-- contents -->
diff --git a/zh-cn/classrapidjson_1_1_generic_schema_document-members.html b/zh-cn/classrapidjson_1_1_generic_schema_document-members.html
index 9528bdf6..4f0df8c7 100644
--- a/zh-cn/classrapidjson_1_1_generic_schema_document-members.html
+++ b/zh-cn/classrapidjson_1_1_generic_schema_document-members.html
@@ -85,23 +85,23 @@ $(document).ready(function(){initNavTree('classrapidjson_1_1_generic_schema_docu
<div class="header">
<div class="headertitle">
-<div class="title">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt; 成员列表</div> </div>
+<div class="title">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt; 成员列表</div> </div>
</div><!--header-->
<div class="contents">
-<p>成员的完整列表,这些成员属于 <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>,包括所有继承而来的类成员</p>
+<p>成员的完整列表,这些成员属于 <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>,包括所有继承而来的类成员</p>
<table class="directory">
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>AllocatorType</b> typedef (定义于 <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>Ch</b> typedef (定义于 <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>EncodingType</b> typedef (定义于 <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html#a09c94a10d412ee188de575b82292a90e">GenericSchemaDocument</a>(const ValueType &amp;document, IRemoteSchemaDocumentProviderType *remoteProvider=0, Allocator *allocator=0)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenericSchemaValidator</b> (定义于 <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
- <tr><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html#a666d94105aa39c446327105339378320">GetRoot</a>() const </td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>IRemoteSchemaDocumentProviderType</b> typedef (定义于 <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>PointerType</b> typedef (定义于 <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>SchemaType</b> typedef (定义于 <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>ValueType</b> typedef (定义于 <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html#ad05d77ee8910b43513acf48fadf99c28">~GenericSchemaDocument</a>()</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>AllocatorType</b> typedef (定义于 <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>Ch</b> typedef (定义于 <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>EncodingType</b> typedef (定义于 <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html#ad200cc7bcb193c8568cdbda7b7fd0496">GenericSchemaDocument</a>(const ValueType &amp;document, IRemoteSchemaDocumentProviderType *remoteProvider=0, Allocator *allocator=0)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GenericSchemaValidator</b> (定义于 <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html#af64ea17654ab0f1a91e382d422f91daf">GetRoot</a>() const </td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>IRemoteSchemaDocumentProviderType</b> typedef (定义于 <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>PointerType</b> typedef (定义于 <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>SchemaType</b> typedef (定义于 <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>ValueType</b> typedef (定义于 <a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html#adf6f3372013227873ed392dee1e752bf">~GenericSchemaDocument</a>()</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.7-->
diff --git a/zh-cn/classrapidjson_1_1_generic_schema_document.html b/zh-cn/classrapidjson_1_1_generic_schema_document.html
index 852fe9da..9593c3cc 100644
--- a/zh-cn/classrapidjson_1_1_generic_schema_document.html
+++ b/zh-cn/classrapidjson_1_1_generic_schema_document.html
@@ -5,7 +5,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
-<title>RapidJSON: rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt; 模板类 参考</title>
+<title>RapidJSON: rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt; 模板类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -91,7 +91,7 @@ $(document).ready(function(){initNavTree('classrapidjson_1_1_generic_schema_docu
<a href="#friends">友元</a> &#124;
<a href="classrapidjson_1_1_generic_schema_document-members.html">所有成员列表</a> </div>
<div class="headertitle">
-<div class="title">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt; 模板类 参考</div> </div>
+<div class="title">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt; 模板类 参考</div> </div>
</div><!--header-->
<div class="contents">
@@ -102,45 +102,45 @@ $(document).ready(function(){initNavTree('classrapidjson_1_1_generic_schema_docu
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
-<tr class="memitem:a8fa1491b1225a19fbe614bb2d6825222"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8fa1491b1225a19fbe614bb2d6825222"></a>
+<tr class="memitem:a87eb1db271e7f57442802a5f4f6178f3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a87eb1db271e7f57442802a5f4f6178f3"></a>
typedef ValueT&#160;</td><td class="memItemRight" valign="bottom"><b>ValueType</b></td></tr>
-<tr class="separator:a8fa1491b1225a19fbe614bb2d6825222"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a06a3a9f30a63d9da12472fbea7c2c8b1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a06a3a9f30a63d9da12472fbea7c2c8b1"></a>
+<tr class="separator:a87eb1db271e7f57442802a5f4f6178f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab2764f2258889b3262eff6293d7ca015"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab2764f2258889b3262eff6293d7ca015"></a>
typedef <br class="typebreak" />
<a class="el" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IGenericRemoteSchemaDocumentProvider</a><br class="typebreak" />
&lt; <a class="el" href="classrapidjson_1_1_generic_schema_document.html">GenericSchemaDocument</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>IRemoteSchemaDocumentProviderType</b></td></tr>
-<tr class="separator:a06a3a9f30a63d9da12472fbea7c2c8b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a16de40d860a7c8ec1299ad644df43c9f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a16de40d860a7c8ec1299ad644df43c9f"></a>
+<tr class="separator:ab2764f2258889b3262eff6293d7ca015"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6fc497ef6e303b3a3ecec9fefe82eade"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6fc497ef6e303b3a3ecec9fefe82eade"></a>
typedef <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a>&#160;</td><td class="memItemRight" valign="bottom"><b>AllocatorType</b></td></tr>
-<tr class="separator:a16de40d860a7c8ec1299ad644df43c9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aafeabeff1ef66d27738b8ddfad7af9b2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aafeabeff1ef66d27738b8ddfad7af9b2"></a>
+<tr class="separator:a6fc497ef6e303b3a3ecec9fefe82eade"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a019035fd281ca52874ed434ce4f7d4d8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a019035fd281ca52874ed434ce4f7d4d8"></a>
typedef ValueType::EncodingType&#160;</td><td class="memItemRight" valign="bottom"><b>EncodingType</b></td></tr>
-<tr class="separator:aafeabeff1ef66d27738b8ddfad7af9b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a12958fba0cd706113a2825847756ff51"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a12958fba0cd706113a2825847756ff51"></a>
+<tr class="separator:a019035fd281ca52874ed434ce4f7d4d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af9b82162834b30bdcbe93cb065d0aedd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af9b82162834b30bdcbe93cb065d0aedd"></a>
typedef EncodingType::Ch&#160;</td><td class="memItemRight" valign="bottom"><b>Ch</b></td></tr>
-<tr class="separator:a12958fba0cd706113a2825847756ff51"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af9a7be9da5b3f884b83ec39e991ee5bc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af9a7be9da5b3f884b83ec39e991ee5bc"></a>
+<tr class="separator:af9b82162834b30bdcbe93cb065d0aedd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaf4e7f371de938025f7ed4be3b83266e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaf4e7f371de938025f7ed4be3b83266e"></a>
typedef internal::Schema<br class="typebreak" />
&lt; <a class="el" href="classrapidjson_1_1_generic_schema_document.html">GenericSchemaDocument</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>SchemaType</b></td></tr>
-<tr class="separator:af9a7be9da5b3f884b83ec39e991ee5bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7afaa64e663a4119cadd4af488372c68"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7afaa64e663a4119cadd4af488372c68"></a>
+<tr class="separator:aaf4e7f371de938025f7ed4be3b83266e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a61540c0f8aa542760ae03257a0e6dab7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a61540c0f8aa542760ae03257a0e6dab7"></a>
typedef <a class="el" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a><br class="typebreak" />
&lt; ValueType, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointerType</b></td></tr>
-<tr class="separator:a7afaa64e663a4119cadd4af488372c68"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:a61540c0f8aa542760ae03257a0e6dab7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
-<tr class="memitem:a09c94a10d412ee188de575b82292a90e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_schema_document.html#a09c94a10d412ee188de575b82292a90e">GenericSchemaDocument</a> (const ValueType &amp;document, <a class="el" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IRemoteSchemaDocumentProviderType</a> *remoteProvider=0, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> *allocator=0)</td></tr>
-<tr class="memdesc:a09c94a10d412ee188de575b82292a90e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="#a09c94a10d412ee188de575b82292a90e">更多...</a><br /></td></tr>
-<tr class="separator:a09c94a10d412ee188de575b82292a90e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad05d77ee8910b43513acf48fadf99c28"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad05d77ee8910b43513acf48fadf99c28"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_schema_document.html#ad05d77ee8910b43513acf48fadf99c28">~GenericSchemaDocument</a> ()</td></tr>
-<tr class="memdesc:ad05d77ee8910b43513acf48fadf99c28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
-<tr class="separator:ad05d77ee8910b43513acf48fadf99c28"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a666d94105aa39c446327105339378320"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a666d94105aa39c446327105339378320"></a>
-const SchemaType &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_schema_document.html#a666d94105aa39c446327105339378320">GetRoot</a> () const </td></tr>
-<tr class="memdesc:a666d94105aa39c446327105339378320"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the root schema. <br /></td></tr>
-<tr class="separator:a666d94105aa39c446327105339378320"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad200cc7bcb193c8568cdbda7b7fd0496"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_schema_document.html#ad200cc7bcb193c8568cdbda7b7fd0496">GenericSchemaDocument</a> (const ValueType &amp;document, <a class="el" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IRemoteSchemaDocumentProviderType</a> *remoteProvider=0, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> *allocator=0)</td></tr>
+<tr class="memdesc:ad200cc7bcb193c8568cdbda7b7fd0496"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="#ad200cc7bcb193c8568cdbda7b7fd0496">更多...</a><br /></td></tr>
+<tr class="separator:ad200cc7bcb193c8568cdbda7b7fd0496"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adf6f3372013227873ed392dee1e752bf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adf6f3372013227873ed392dee1e752bf"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_schema_document.html#adf6f3372013227873ed392dee1e752bf">~GenericSchemaDocument</a> ()</td></tr>
+<tr class="memdesc:adf6f3372013227873ed392dee1e752bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
+<tr class="separator:adf6f3372013227873ed392dee1e752bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af64ea17654ab0f1a91e382d422f91daf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af64ea17654ab0f1a91e382d422f91daf"></a>
+const SchemaType &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_schema_document.html#af64ea17654ab0f1a91e382d422f91daf">GetRoot</a> () const </td></tr>
+<tr class="memdesc:af64ea17654ab0f1a91e382d422f91daf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the root schema. <br /></td></tr>
+<tr class="separator:af64ea17654ab0f1a91e382d422f91daf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
友元</h2></td></tr>
@@ -150,8 +150,8 @@ template&lt;typename , typename , typename &gt; </td></tr>
<tr class="separator:afcc03e6ba8f1a819e1a028c31ad38347"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
-<div class="textblock"><h3>template&lt;typename ValueType, typename Allocator&gt;<br />
-class rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</h3>
+<div class="textblock"><h3>template&lt;typename ValueT, typename Allocator&gt;<br />
+class rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</h3>
<p>JSON schema document. </p>
<p>A JSON schema document is a compiled version of a JSON schema. It is basically a tree of internal::Schema.</p>
@@ -164,17 +164,17 @@ class rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</h3>
</dd>
</dl>
</div><h2 class="groupheader">构造及析构函数说明</h2>
-<a class="anchor" id="a09c94a10d412ee188de575b82292a90e"></a>
+<a class="anchor" id="ad200cc7bcb193c8568cdbda7b7fd0496"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename ValueType , typename Allocator &gt; </div>
+template&lt;typename ValueT , typename Allocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument</a>&lt; ValueType, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> &gt;::<a class="el" href="classrapidjson_1_1_generic_schema_document.html">GenericSchemaDocument</a> </td>
+ <td class="memname"><a class="el" href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument</a>&lt; ValueT, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> &gt;::<a class="el" href="classrapidjson_1_1_generic_schema_document.html">GenericSchemaDocument</a> </td>
<td>(</td>
<td class="paramtype">const ValueType &amp;&#160;</td>
<td class="paramname"><em>document</em>, </td>
@@ -218,6 +218,7 @@ template&lt;typename ValueType , typename Allocator &gt; </div>
</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
+<li>include/rapidjson/<a class="el" href="fwd_8h_source.html">fwd.h</a></li>
<li>include/rapidjson/<a class="el" href="schema_8h_source.html">schema.h</a></li>
</ul>
</div><!-- contents -->
diff --git a/zh-cn/classrapidjson_1_1_generic_schema_document.js b/zh-cn/classrapidjson_1_1_generic_schema_document.js
index fcd1fb90..c80a835e 100644
--- a/zh-cn/classrapidjson_1_1_generic_schema_document.js
+++ b/zh-cn/classrapidjson_1_1_generic_schema_document.js
@@ -1,14 +1,14 @@
var classrapidjson_1_1_generic_schema_document =
[
- [ "AllocatorType", "classrapidjson_1_1_generic_schema_document.html#a16de40d860a7c8ec1299ad644df43c9f", null ],
- [ "Ch", "classrapidjson_1_1_generic_schema_document.html#a12958fba0cd706113a2825847756ff51", null ],
- [ "EncodingType", "classrapidjson_1_1_generic_schema_document.html#aafeabeff1ef66d27738b8ddfad7af9b2", null ],
- [ "IRemoteSchemaDocumentProviderType", "classrapidjson_1_1_generic_schema_document.html#a06a3a9f30a63d9da12472fbea7c2c8b1", null ],
- [ "PointerType", "classrapidjson_1_1_generic_schema_document.html#a7afaa64e663a4119cadd4af488372c68", null ],
- [ "SchemaType", "classrapidjson_1_1_generic_schema_document.html#af9a7be9da5b3f884b83ec39e991ee5bc", null ],
- [ "ValueType", "classrapidjson_1_1_generic_schema_document.html#a8fa1491b1225a19fbe614bb2d6825222", null ],
- [ "GenericSchemaDocument", "classrapidjson_1_1_generic_schema_document.html#a09c94a10d412ee188de575b82292a90e", null ],
- [ "~GenericSchemaDocument", "classrapidjson_1_1_generic_schema_document.html#ad05d77ee8910b43513acf48fadf99c28", null ],
- [ "GetRoot", "classrapidjson_1_1_generic_schema_document.html#a666d94105aa39c446327105339378320", null ],
+ [ "AllocatorType", "classrapidjson_1_1_generic_schema_document.html#a6fc497ef6e303b3a3ecec9fefe82eade", null ],
+ [ "Ch", "classrapidjson_1_1_generic_schema_document.html#af9b82162834b30bdcbe93cb065d0aedd", null ],
+ [ "EncodingType", "classrapidjson_1_1_generic_schema_document.html#a019035fd281ca52874ed434ce4f7d4d8", null ],
+ [ "IRemoteSchemaDocumentProviderType", "classrapidjson_1_1_generic_schema_document.html#ab2764f2258889b3262eff6293d7ca015", null ],
+ [ "PointerType", "classrapidjson_1_1_generic_schema_document.html#a61540c0f8aa542760ae03257a0e6dab7", null ],
+ [ "SchemaType", "classrapidjson_1_1_generic_schema_document.html#aaf4e7f371de938025f7ed4be3b83266e", null ],
+ [ "ValueType", "classrapidjson_1_1_generic_schema_document.html#a87eb1db271e7f57442802a5f4f6178f3", null ],
+ [ "GenericSchemaDocument", "classrapidjson_1_1_generic_schema_document.html#ad200cc7bcb193c8568cdbda7b7fd0496", null ],
+ [ "~GenericSchemaDocument", "classrapidjson_1_1_generic_schema_document.html#adf6f3372013227873ed392dee1e752bf", null ],
+ [ "GetRoot", "classrapidjson_1_1_generic_schema_document.html#af64ea17654ab0f1a91e382d422f91daf", null ],
[ "GenericSchemaValidator", "classrapidjson_1_1_generic_schema_document.html#afcc03e6ba8f1a819e1a028c31ad38347", null ]
]; \ No newline at end of file
diff --git a/zh-cn/classrapidjson_1_1_generic_schema_validator.html b/zh-cn/classrapidjson_1_1_generic_schema_validator.html
index c217b129..8b19a543 100644
--- a/zh-cn/classrapidjson_1_1_generic_schema_validator.html
+++ b/zh-cn/classrapidjson_1_1_generic_schema_validator.html
@@ -220,7 +220,7 @@ virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>FreeState</b>
<tr class="separator:acd4ac0e7042c9ab63e5b9e443dbc0d14"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
-<div class="textblock"><h3>template&lt;typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler&lt;typename SchemaDocumentType::SchemaType::EncodingType&gt;, typename StateAllocator = CrtAllocator&gt;<br />
+<div class="textblock"><h3>template&lt;typename SchemaDocumentType, typename OutputHandler, typename StateAllocator&gt;<br />
class rapidjson::GenericSchemaValidator&lt; SchemaDocumentType, OutputHandler, StateAllocator &gt;</h3>
<p>JSON Schema Validator. </p>
@@ -238,7 +238,7 @@ class rapidjson::GenericSchemaValidator&lt; SchemaDocumentType, OutputHandler, S
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler&lt;typename SchemaDocumentType::SchemaType::EncodingType&gt;, typename StateAllocator = CrtAllocator&gt; </div>
+template&lt;typename SchemaDocumentType , typename OutputHandler , typename StateAllocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -297,7 +297,7 @@ template&lt;typename SchemaDocumentType, typename OutputHandler = BaseReaderHand
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler&lt;typename SchemaDocumentType::SchemaType::EncodingType&gt;, typename StateAllocator = CrtAllocator&gt; </div>
+template&lt;typename SchemaDocumentType , typename OutputHandler , typename StateAllocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -359,6 +359,7 @@ template&lt;typename SchemaDocumentType, typename OutputHandler = BaseReaderHand
</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
+<li>include/rapidjson/<a class="el" href="fwd_8h_source.html">fwd.h</a></li>
<li>include/rapidjson/<a class="el" href="schema_8h_source.html">schema.h</a></li>
</ul>
</div><!-- contents -->
diff --git a/zh-cn/classrapidjson_1_1_generic_string_buffer.html b/zh-cn/classrapidjson_1_1_generic_string_buffer.html
index dd1e2b5e..0333dfcf 100644
--- a/zh-cn/classrapidjson_1_1_generic_string_buffer.html
+++ b/zh-cn/classrapidjson_1_1_generic_string_buffer.html
@@ -155,7 +155,7 @@ static const size_t&#160;</td><td class="memItemRight" valign="bottom"><b>kDefau
<tr class="separator:a56159d25a431109a2873e9455178eff0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
-<div class="textblock"><h3>template&lt;typename Encoding, typename Allocator = CrtAllocator&gt;<br />
+<div class="textblock"><h3>template&lt;typename Encoding, typename Allocator&gt;<br />
class rapidjson::GenericStringBuffer&lt; Encoding, Allocator &gt;</h3>
<p>Represents an in-memory output stream. </p>
@@ -168,6 +168,7 @@ class rapidjson::GenericStringBuffer&lt; Encoding, Allocator &gt;</h3>
</dl>
<dl class="section note"><dt>注解</dt><dd>implements <a class="el" href="classrapidjson_1_1_stream.html" title="Concept for reading and writing characters. ">Stream</a> concept </dd></dl>
</div><hr/>该类的文档由以下文件生成:<ul>
+<li>include/rapidjson/<a class="el" href="fwd_8h_source.html">fwd.h</a></li>
<li>include/rapidjson/<a class="el" href="stringbuffer_8h_source.html">stringbuffer.h</a></li>
</ul>
</div><!-- contents -->
diff --git a/zh-cn/classrapidjson_1_1_i_generic_remote_schema_document_provider.html b/zh-cn/classrapidjson_1_1_i_generic_remote_schema_document_provider.html
index b26d9b80..bfeacaff 100644
--- a/zh-cn/classrapidjson_1_1_i_generic_remote_schema_document_provider.html
+++ b/zh-cn/classrapidjson_1_1_i_generic_remote_schema_document_provider.html
@@ -106,6 +106,7 @@ virtual const SchemaDocumentType *&#160;</td><td class="memItemRight" valign="bo
<tr class="separator:a41dc360abb19df5a09c1ed1a83ec683c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/>该类的文档由以下文件生成:<ul>
+<li>include/rapidjson/<a class="el" href="fwd_8h_source.html">fwd.h</a></li>
<li>include/rapidjson/<a class="el" href="schema_8h_source.html">schema.h</a></li>
</ul>
</div><!-- contents -->
diff --git a/zh-cn/classrapidjson_1_1_stream.html b/zh-cn/classrapidjson_1_1_stream.html
index 7337844b..7e12fc0f 100644
--- a/zh-cn/classrapidjson_1_1_stream.html
+++ b/zh-cn/classrapidjson_1_1_stream.html
@@ -92,7 +92,7 @@ $(document).ready(function(){initNavTree('classrapidjson_1_1_stream.html','');})
<p>Concept for reading and writing characters.
<a href="classrapidjson_1_1_stream.html#details">更多...</a></p>
-<p><code>#include &lt;<a class="el" href="rapidjson_8h_source.html">rapidjson.h</a>&gt;</code></p>
+<p><code>#include &lt;<a class="el" href="stream_8h_source.html">stream.h</a>&gt;</code></p>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><p>Concept for reading and writing characters. </p>
<p>For read-only stream, no need to implement PutBegin(), Put(), Flush() and PutEnd().</p>
@@ -126,7 +126,7 @@ $(document).ready(function(){initNavTree('classrapidjson_1_1_stream.html','');})
<div class="line"><span class="comment"></span> <span class="keywordtype">size_t</span> PutEnd(Ch* begin);</div>
<div class="line">}</div>
</div><!-- fragment --> </div><hr/>该类的文档由以下文件生成:<ul>
-<li>include/rapidjson/<a class="el" href="rapidjson_8h_source.html">rapidjson.h</a></li>
+<li>include/rapidjson/<a class="el" href="stream_8h_source.html">stream.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/zh-cn/classrapidjson_1_1_writer.html b/zh-cn/classrapidjson_1_1_writer.html
index 9b6b8b95..d0e10afc 100644
--- a/zh-cn/classrapidjson_1_1_writer.html
+++ b/zh-cn/classrapidjson_1_1_writer.html
@@ -272,7 +272,7 @@ static const size_t&#160;</td><td class="memItemRight" valign="bottom"><b>kDefau
<tr class="separator:a0fafbb3341c0f5d14856a72ec2dcc970"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
-<div class="textblock"><h3>template&lt;typename OutputStream, typename SourceEncoding = UTF8&lt;&gt;, typename TargetEncoding = UTF8&lt;&gt;, typename StackAllocator = CrtAllocator&gt;<br />
+<div class="textblock"><h3>template&lt;typename OutputStream, typename SourceEncoding, typename TargetEncoding, typename StackAllocator&gt;<br />
class rapidjson::Writer&lt; OutputStream, SourceEncoding, TargetEncoding, StackAllocator &gt;</h3>
<p>JSON writer. </p>
@@ -295,7 +295,7 @@ class rapidjson::Writer&lt; OutputStream, SourceEncoding, TargetEncoding, StackA
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename OutputStream, typename SourceEncoding = UTF8&lt;&gt;, typename TargetEncoding = UTF8&lt;&gt;, typename StackAllocator = CrtAllocator&gt; </div>
+template&lt;typename OutputStream , typename SourceEncoding , typename TargetEncoding , typename StackAllocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -348,7 +348,7 @@ template&lt;typename OutputStream, typename SourceEncoding = UTF8&lt;&gt;, typen
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename OutputStream, typename SourceEncoding = UTF8&lt;&gt;, typename TargetEncoding = UTF8&lt;&gt;, typename StackAllocator = CrtAllocator&gt; </div>
+template&lt;typename OutputStream , typename SourceEncoding , typename TargetEncoding , typename StackAllocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -383,7 +383,7 @@ template&lt;typename OutputStream, typename SourceEncoding = UTF8&lt;&gt;, typen
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename OutputStream, typename SourceEncoding = UTF8&lt;&gt;, typename TargetEncoding = UTF8&lt;&gt;, typename StackAllocator = CrtAllocator&gt; </div>
+template&lt;typename OutputStream , typename SourceEncoding , typename TargetEncoding , typename StackAllocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -411,7 +411,7 @@ template&lt;typename OutputStream, typename SourceEncoding = UTF8&lt;&gt;, typen
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
-template&lt;typename OutputStream, typename SourceEncoding = UTF8&lt;&gt;, typename TargetEncoding = UTF8&lt;&gt;, typename StackAllocator = CrtAllocator&gt; </div>
+template&lt;typename OutputStream , typename SourceEncoding , typename TargetEncoding , typename StackAllocator &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
@@ -452,6 +452,7 @@ template&lt;typename OutputStream, typename SourceEncoding = UTF8&lt;&gt;, typen
</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
+<li>include/rapidjson/<a class="el" href="fwd_8h_source.html">fwd.h</a></li>
<li>include/rapidjson/<a class="el" href="writer_8h_source.html">writer.h</a></li>
</ul>
</div><!-- contents -->
diff --git a/zh-cn/dir_0b07344794a20f8375311f92e90cd9a3.html b/zh-cn/dir_0b07344794a20f8375311f92e90cd9a3.html
index f409a9a4..494955aa 100644
--- a/zh-cn/dir_0b07344794a20f8375311f92e90cd9a3.html
+++ b/zh-cn/dir_0b07344794a20f8375311f92e90cd9a3.html
@@ -110,6 +110,8 @@ $(document).ready(function(){initNavTree('dir_0b07344794a20f8375311f92e90cd9a3.h
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:filewritestream_8h"><td class="memItemLeft" align="right" valign="top">文件 &#160;</td><td class="memItemRight" valign="bottom"><b>filewritestream.h</b> <a href="filewritestream_8h_source.html">[代码]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:fwd_8h"><td class="memItemLeft" align="right" valign="top">文件 &#160;</td><td class="memItemRight" valign="bottom"><b>fwd.h</b> <a href="fwd_8h_source.html">[代码]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:memorybuffer_8h"><td class="memItemLeft" align="right" valign="top">文件 &#160;</td><td class="memItemRight" valign="bottom"><b>memorybuffer.h</b> <a href="memorybuffer_8h_source.html">[代码]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:memorystream_8h"><td class="memItemLeft" align="right" valign="top">文件 &#160;</td><td class="memItemRight" valign="bottom"><b>memorystream.h</b> <a href="memorystream_8h_source.html">[代码]</a></td></tr>
@@ -125,6 +127,8 @@ $(document).ready(function(){initNavTree('dir_0b07344794a20f8375311f92e90cd9a3.h
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:schema_8h"><td class="memItemLeft" align="right" valign="top">文件 &#160;</td><td class="memItemRight" valign="bottom"><b>schema.h</b> <a href="schema_8h_source.html">[代码]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:stream_8h"><td class="memItemLeft" align="right" valign="top">文件 &#160;</td><td class="memItemRight" valign="bottom"><b>stream.h</b> <a href="stream_8h_source.html">[代码]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:stringbuffer_8h"><td class="memItemLeft" align="right" valign="top">文件 &#160;</td><td class="memItemRight" valign="bottom"><b>stringbuffer.h</b> <a href="stringbuffer_8h_source.html">[代码]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:writer_8h"><td class="memItemLeft" align="right" valign="top">文件 &#160;</td><td class="memItemRight" valign="bottom"><b>writer.h</b> <a href="writer_8h_source.html">[代码]</a></td></tr>
diff --git a/zh-cn/dir_0b07344794a20f8375311f92e90cd9a3.js b/zh-cn/dir_0b07344794a20f8375311f92e90cd9a3.js
index ed39274f..24b69180 100644
--- a/zh-cn/dir_0b07344794a20f8375311f92e90cd9a3.js
+++ b/zh-cn/dir_0b07344794a20f8375311f92e90cd9a3.js
@@ -8,6 +8,7 @@ var dir_0b07344794a20f8375311f92e90cd9a3 =
[ "encodings.h", "encodings_8h_source.html", null ],
[ "filereadstream.h", "filereadstream_8h_source.html", null ],
[ "filewritestream.h", "filewritestream_8h_source.html", null ],
+ [ "fwd.h", "fwd_8h_source.html", null ],
[ "memorybuffer.h", "memorybuffer_8h_source.html", null ],
[ "memorystream.h", "memorystream_8h_source.html", null ],
[ "pointer.h", "pointer_8h_source.html", null ],
@@ -15,6 +16,7 @@ var dir_0b07344794a20f8375311f92e90cd9a3 =
[ "rapidjson.h", "rapidjson_8h.html", "rapidjson_8h" ],
[ "reader.h", "reader_8h.html", "reader_8h" ],
[ "schema.h", "schema_8h_source.html", null ],
+ [ "stream.h", "stream_8h_source.html", null ],
[ "stringbuffer.h", "stringbuffer_8h_source.html", null ],
[ "writer.h", "writer_8h_source.html", null ]
]; \ No newline at end of file
diff --git a/zh-cn/document_8h.html b/zh-cn/document_8h.html
index b64def1d..7df4b018 100644
--- a/zh-cn/document_8h.html
+++ b/zh-cn/document_8h.html
@@ -137,14 +137,14 @@ $(document).ready(function(){initNavTree('document_8h.html','');});
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
类型定义</h2></td></tr>
-<tr class="memitem:afb3fa116c66d834b6f4289d648cc8d6d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afb3fa116c66d834b6f4289d648cc8d6d"></a>
-typedef GenericValue&lt; UTF8&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">rapidjson::Value</a></td></tr>
-<tr class="memdesc:afb3fa116c66d834b6f4289d648cc8d6d"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_generic_value.html" title="Represents a JSON value. Use Value for UTF8 encoding and default allocator. ">GenericValue</a> with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
-<tr class="separator:afb3fa116c66d834b6f4289d648cc8d6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a660c934c2959121babf799b6cb206659"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a660c934c2959121babf799b6cb206659"></a>
-typedef GenericDocument&lt; UTF8&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">rapidjson::Document</a></td></tr>
-<tr class="memdesc:a660c934c2959121babf799b6cb206659"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_generic_document.html" title="A document for parsing JSON text as DOM. ">GenericDocument</a> with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
-<tr class="separator:a660c934c2959121babf799b6cb206659"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa65fc9fb381b2cbc54f98673eadd6505"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa65fc9fb381b2cbc54f98673eadd6505"></a>
+typedef GenericValue&lt; UTF8&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">rapidjson::Value</a></td></tr>
+<tr class="memdesc:aa65fc9fb381b2cbc54f98673eadd6505"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_generic_value.html" title="Represents a JSON value. Use Value for UTF8 encoding and default allocator. ">GenericValue</a> with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
+<tr class="separator:aa65fc9fb381b2cbc54f98673eadd6505"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace11b5b575baf1cccd5ba5f8586dcdc8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ace11b5b575baf1cccd5ba5f8586dcdc8"></a>
+typedef GenericDocument&lt; UTF8&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">rapidjson::Document</a></td></tr>
+<tr class="memdesc:ace11b5b575baf1cccd5ba5f8586dcdc8"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_generic_document.html" title="A document for parsing JSON text as DOM. ">GenericDocument</a> with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
+<tr class="separator:ace11b5b575baf1cccd5ba5f8586dcdc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
函数</h2></td></tr>
diff --git a/zh-cn/document_8h.js b/zh-cn/document_8h.js
index 974bfe22..b1022390 100644
--- a/zh-cn/document_8h.js
+++ b/zh-cn/document_8h.js
@@ -9,8 +9,8 @@ var document_8h =
[ "I", "structrapidjson_1_1_generic_value_1_1_number_1_1_i.html", "structrapidjson_1_1_generic_value_1_1_number_1_1_i" ],
[ "U", "structrapidjson_1_1_generic_value_1_1_number_1_1_u.html", "structrapidjson_1_1_generic_value_1_1_number_1_1_u" ],
[ "GenericDocument", "classrapidjson_1_1_generic_document.html", "classrapidjson_1_1_generic_document" ],
- [ "Document", "document_8h.html#a660c934c2959121babf799b6cb206659", null ],
- [ "Value", "document_8h.html#afb3fa116c66d834b6f4289d648cc8d6d", null ],
+ [ "Document", "document_8h.html#ace11b5b575baf1cccd5ba5f8586dcdc8", null ],
+ [ "Value", "document_8h.html#aa65fc9fb381b2cbc54f98673eadd6505", null ],
[ "StringRef", "document_8h.html#aa6b9fd9f6aa49405a574c362ba9af6b5", null ],
[ "StringRef", "document_8h.html#a578c51ab574a50a9c760b9da7c7562f2", null ],
[ "StringRef", "document_8h.html#af94951529a5d51e8c4e6e770bb707c1f", null ]
diff --git a/zh-cn/document_8h_source.html b/zh-cn/document_8h_source.html
index 8431f010..af1c832d 100644
--- a/zh-cn/document_8h_source.html
+++ b/zh-cn/document_8h_source.html
@@ -264,7 +264,7 @@ $(document).ready(function(){initNavTree('document_8h_source.html','');});
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="comment"> //! @name dereference</span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment"></span><span class="comment"> //@{</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="comment"></span> Reference operator*()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *ptr_; }</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">Pointer</a> operator-&gt;()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ptr_; }</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">Pointer</a> operator-&gt;()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ptr_; }</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; Reference operator[](DifferenceType n)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ptr_[n]; }<span class="comment"></span></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><span class="comment"></span></div>
@@ -582,7 +582,7 @@ $(document).ready(function(){initNavTree('document_8h_source.html','');});
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; : data_(), flags_(b ? kTrueFlag : kFalseFlag) {</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="comment">// safe-guard against failing SFINAE</span></div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <a class="code" href="rapidjson_8h.html#af95188da1d8eb6d4b148fe9ce71cd7c4">RAPIDJSON_STATIC_ASSERT</a>((<a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">internal::IsSame&lt;bool,T&gt;::Value</a>));</div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <a class="code" href="rapidjson_8h.html#af95188da1d8eb6d4b148fe9ce71cd7c4">RAPIDJSON_STATIC_ASSERT</a>((<a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">internal::IsSame&lt;bool,T&gt;::Value</a>));</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; }</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;<span class="comment"> //! Constructor for int value.</span></div>
@@ -1840,7 +1840,7 @@ $(document).ready(function(){initNavTree('document_8h_source.html','');});
<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160;};</div>
<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160;<span class="comment">//! GenericValue with UTF8 encoding</span></div>
-<div class="line"><a name="l01753"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d"> 1753</a></span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_value.html">GenericValue&lt;UTF8&lt;&gt;</a> &gt; <a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>;</div>
+<div class="line"><a name="l01753"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505"> 1753</a></span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_value.html">GenericValue&lt;UTF8&lt;&gt;</a> &gt; <a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>;</div>
<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160;<span class="comment">///////////////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160;<span class="comment"></span><span class="comment">// GenericDocument </span></div>
@@ -2188,7 +2188,7 @@ $(document).ready(function(){initNavTree('document_8h_source.html','');});
<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160;};</div>
<div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160;<span class="comment">//! GenericDocument with UTF8 encoding</span></div>
-<div class="line"><a name="l02101"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659"> 2101</a></span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_document.html">GenericDocument&lt;UTF8&lt;&gt;</a> &gt; <a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a>;</div>
+<div class="line"><a name="l02101"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8"> 2101</a></span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_document.html">GenericDocument&lt;UTF8&lt;&gt;</a> &gt; <a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a>;</div>
<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160;</div>
<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160;<span class="comment">// defined here due to the dependency on GenericDocument</span></div>
<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator&gt;</div>
@@ -2237,21 +2237,23 @@ $(document).ready(function(){initNavTree('document_8h_source.html','');});
<div class="ttc" id="classrapidjson_1_1_generic_member_iterator_html_a41b953d6523fdc09f4f21c7b345e5833"><div class="ttname"><a href="classrapidjson_1_1_generic_member_iterator.html#a41b953d6523fdc09f4f21c7b345e5833">rapidjson::GenericMemberIterator::DifferenceType</a></div><div class="ttdeci">BaseType::difference_type DifferenceType</div><div class="ttdoc">Signed integer type (e.g. ptrdiff_t) </div><div class="ttdef"><b>Definition:</b> document.h:120</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html_a41bbec044c421e870a9d355075d741bc"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#a41bbec044c421e870a9d355075d741bc">rapidjson::GenericDocument::ValueType</a></div><div class="ttdeci">GenericValue&lt; Encoding, Allocator &gt; ValueType</div><div class="ttdoc">Value type of the document. </div><div class="ttdef"><b>Definition:</b> document.h:1770</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a4a8060a42b7953a2981ad892180ca5a6"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a4a8060a42b7953a2981ad892180ca5a6">rapidjson::GenericValue::GenericValue</a></div><div class="ttdeci">GenericValue(unsigned u) RAPIDJSON_NOEXCEPT</div><div class="ttdoc">Constructor for unsigned value. </div><div class="ttdef"><b>Definition:</b> document.h:506</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e">rapidjson::kTrueType</a></div><div class="ttdoc">true </div><div class="ttdef"><b>Definition:</b> rapidjson.h:719</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e">rapidjson::kTrueType</a></div><div class="ttdoc">true </div><div class="ttdef"><b>Definition:</b> rapidjson.h:560</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a916f443e02f9379d8fbde49a4d440f61"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a916f443e02f9379d8fbde49a4d440f61">rapidjson::GenericValue::Erase</a></div><div class="ttdeci">ValueIterator Erase(ConstValueIterator first, ConstValueIterator last)</div><div class="ttdoc">Remove elements in the range [first, last) of the array. </div><div class="ttdef"><b>Definition:</b> document.h:1423</div></div>
<div class="ttc" id="structrapidjson_1_1_generic_value_1_1_number_1_1_i_html"><div class="ttname"><a href="structrapidjson_1_1_generic_value_1_1_number_1_1_i.html">rapidjson::GenericValue::Number::I</a></div><div class="ttdef"><b>Definition:</b> document.h:1634</div></div>
-<div class="ttc" id="structrapidjson_1_1_generic_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_string_stream.html">rapidjson::GenericStringStream</a></div><div class="ttdoc">Read-only string stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:645</div></div>
+<div class="ttc" id="structrapidjson_1_1_generic_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_string_stream.html">rapidjson::GenericStringStream</a></div><div class="ttdoc">Read-only string stream. </div><div class="ttdef"><b>Definition:</b> fwd.h:47</div></div>
<div class="ttc" id="classrapidjson_1_1_handler_html"><div class="ttname"><a href="classrapidjson_1_1_handler.html">rapidjson::Handler</a></div><div class="ttdoc">Concept for receiving events from GenericReader upon parsing. The functions return true if no error o...</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a07b19e65fb756cae13e5bdc515cfbd4b"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a07b19e65fb756cae13e5bdc515cfbd4b">rapidjson::GenericValue::Move</a></div><div class="ttdeci">GenericValue &amp; Move() RAPIDJSON_NOEXCEPT</div><div class="ttdoc">Prepare Value for move semantics. </div><div class="ttdef"><b>Definition:</b> document.h:681</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a8d1040c479d89edb261db86400ebe603"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a8d1040c479d89edb261db86400ebe603">rapidjson::GenericValue::Begin</a></div><div class="ttdeci">ValueIterator Begin()</div><div class="ttdoc">Element iterator. </div><div class="ttdef"><b>Definition:</b> document.h:1306</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_member_iterator_html_a61b9a9ba8a5917d90406532f104605cc"><div class="ttname"><a href="classrapidjson_1_1_generic_member_iterator.html#a61b9a9ba8a5917d90406532f104605cc">rapidjson::GenericMemberIterator::ConstIterator</a></div><div class="ttdeci">GenericMemberIterator&lt; true, Encoding, Allocator &gt; ConstIterator</div><div class="ttdoc">Constant iterator type. </div><div class="ttdef"><b>Definition:</b> document.h:111</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_member_iterator_html_a6d7cfaef258b0774da1b642907d81060"><div class="ttname"><a href="classrapidjson_1_1_generic_member_iterator.html#a6d7cfaef258b0774da1b642907d81060">rapidjson::GenericMemberIterator::operator-</a></div><div class="ttdeci">DifferenceType operator-(ConstIterator that) const </div><div class="ttdoc">Distance. </div><div class="ttdef"><b>Definition:</b> document.h:182</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_ad9553bb9ccbfd19547c473a95405a8b2"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#ad9553bb9ccbfd19547c473a95405a8b2">rapidjson::GenericValue::GenericValue</a></div><div class="ttdeci">GenericValue(const Ch *s, SizeType length, Allocator &amp;allocator)</div><div class="ttdoc">Constructor for copy-string (i.e. do make a copy of string) </div><div class="ttdef"><b>Definition:</b> document.h:547</div></div>
+<div class="ttc" id="namespacerapidjson_html_aa65fc9fb381b2cbc54f98673eadd6505"><div class="ttname"><a href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">rapidjson::Value</a></div><div class="ttdeci">GenericValue&lt; UTF8&lt;&gt; &gt; Value</div><div class="ttdoc">GenericValue with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> document.h:1753</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_acd4ae9a8dba4498d1d7cce6667529bb8"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#acd4ae9a8dba4498d1d7cce6667529bb8">rapidjson::GenericValue::GenericValue</a></div><div class="ttdeci">GenericValue(int64_t i64) RAPIDJSON_NOEXCEPT</div><div class="ttdoc">Constructor for int64_t value. </div><div class="ttdef"><b>Definition:</b> document.h:513</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a433a64b466c80cadf7d1acaa6f065437"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a433a64b466c80cadf7d1acaa6f065437">rapidjson::GenericValue::~GenericValue</a></div><div class="ttdeci">~GenericValue()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> document.h:562</div></div>
<div class="ttc" id="rapidjson_8h_html_aaee1245f375a71be1ac9b8a07ba5fb8f"><div class="ttname"><a href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a></div><div class="ttdeci">#define RAPIDJSON_UINT64_C2(high32, low32)</div><div class="ttdoc">Construct a 64-bit literal by a pair of 32-bit integer. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:288</div></div>
-<div class="ttc" id="classrapidjson_1_1_generic_reader_html"><div class="ttname"><a href="classrapidjson_1_1_generic_reader.html">rapidjson::GenericReader</a></div><div class="ttdoc">SAX-style JSON parser. Use Reader for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> reader.h:379</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_reader_html"><div class="ttname"><a href="classrapidjson_1_1_generic_reader.html">rapidjson::GenericReader</a></div><div class="ttdoc">SAX-style JSON parser. Use Reader for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> fwd.h:88</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html_acf96a3c7fd61486d049c701b1fe5d414"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#acf96a3c7fd61486d049c701b1fe5d414">rapidjson::GenericDocument::ParseStream</a></div><div class="ttdeci">GenericDocument &amp; ParseStream(InputStream &amp;is)</div><div class="ttdoc">Parse JSON text from an input stream (with kParseDefaultFlags) </div><div class="ttdef"><b>Definition:</b> document.h:1927</div></div>
+<div class="ttc" id="namespacerapidjson_html_a080910f74d2f5046e6724280159cf374"><div class="ttname"><a href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">rapidjson::Pointer</a></div><div class="ttdeci">GenericPointer&lt; Value, CrtAllocator &gt; Pointer</div><div class="ttdoc">GenericPointer for Value (UTF-8, default allocator). </div><div class="ttdef"><b>Definition:</b> fwd.h:121</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a65bfc3073fa80ee5eba8e985abe2f941"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a65bfc3073fa80ee5eba8e985abe2f941">rapidjson::GenericValue::GenericValue</a></div><div class="ttdeci">GenericValue(StringRefType s) RAPIDJSON_NOEXCEPT</div><div class="ttdoc">Constructor for constant string (i.e. do not make a copy of string) </div><div class="ttdef"><b>Definition:</b> document.h:544</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a3e930bffb40a78e570e3deef461f0532"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a3e930bffb40a78e570e3deef461f0532">rapidjson::GenericValue::SetString</a></div><div class="ttdeci">GenericValue &amp; SetString(const std::basic_string&lt; Ch &gt; &amp;s, Allocator &amp;allocator)</div><div class="ttdoc">Set this value as a string by copying from source string. </div><div class="ttdef"><b>Definition:</b> document.h:1518</div></div>
<div class="ttc" id="reader_8h_html"><div class="ttname"><a href="reader_8h.html">reader.h</a></div></div>
@@ -2266,7 +2268,7 @@ $(document).ready(function(){initNavTree('document_8h_source.html','');});
<div class="ttc" id="classrapidjson_1_1_generic_document_html_a4c85243a28c9dcf2d1357da00fcaa773"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#a4c85243a28c9dcf2d1357da00fcaa773">rapidjson::GenericDocument::AllocatorType</a></div><div class="ttdeci">Allocator AllocatorType</div><div class="ttdoc">Allocator type from template parameter. </div><div class="ttdef"><b>Definition:</b> document.h:1771</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a8d75bf0c6c0fa4f8d340a4236e98539b"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a8d75bf0c6c0fa4f8d340a4236e98539b">rapidjson::GenericValue::FindMember</a></div><div class="ttdeci">MemberIterator FindMember(const GenericValue&lt; Encoding, SourceAllocator &gt; &amp;name)</div><div class="ttdoc">Find member by name. </div><div class="ttdef"><b>Definition:</b> document.h:955</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a1f28a345c9b9c93c76abf695669e4378"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a1f28a345c9b9c93c76abf695669e4378">rapidjson::GenericValue::ObjectEmpty</a></div><div class="ttdeci">bool ObjectEmpty() const </div><div class="ttdoc">Check whether the object is empty. </div><div class="ttdef"><b>Definition:</b> document.h:821</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607">rapidjson::kFalseType</a></div><div class="ttdoc">false </div><div class="ttdef"><b>Definition:</b> rapidjson.h:718</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607">rapidjson::kFalseType</a></div><div class="ttdoc">false </div><div class="ttdef"><b>Definition:</b> rapidjson.h:559</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_ga7d3acf640886b1f2552dc8c4cd6dea60"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga7d3acf640886b1f2552dc8c4cd6dea60">rapidjson::ParseErrorCode</a></div><div class="ttdeci">ParseErrorCode</div><div class="ttdoc">Error code of parsing. </div><div class="ttdef"><b>Definition:</b> error.h:64</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a0cb232adce79932c499c5f04cbc8dc54"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a0cb232adce79932c499c5f04cbc8dc54">rapidjson::GenericValue::operator!=</a></div><div class="ttdeci">bool operator!=(const GenericValue&lt; Encoding, SourceAllocator &gt; &amp;rhs) const </div><div class="ttdoc">Not-equal-to operator. </div><div class="ttdef"><b>Definition:</b> document.h:752</div></div>
<div class="ttc" id="rapidjson_8h_html_af95188da1d8eb6d4b148fe9ce71cd7c4"><div class="ttname"><a href="rapidjson_8h.html#af95188da1d8eb6d4b148fe9ce71cd7c4">RAPIDJSON_STATIC_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_STATIC_ASSERT(x)</div><div class="ttdoc">(Internal) macro to check for conditions at compile-time </div><div class="ttdef"><b>Definition:</b> rapidjson.h:406</div></div>
@@ -2293,7 +2295,6 @@ $(document).ready(function(){initNavTree('document_8h_source.html','');});
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a163e60b101e5ae534597c050a6eba511"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a163e60b101e5ae534597c050a6eba511">rapidjson::GenericValue::EraseMember</a></div><div class="ttdeci">MemberIterator EraseMember(ConstMemberIterator pos)</div><div class="ttdoc">Remove a member from an object by iterator. </div><div class="ttdef"><b>Definition:</b> document.h:1209</div></div>
<div class="ttc" id="structrapidjson_1_1_generic_string_ref_html_ad9eb120a58cee500ff3bd5706779c4e4"><div class="ttname"><a href="structrapidjson_1_1_generic_string_ref.html#ad9eb120a58cee500ff3bd5706779c4e4">rapidjson::GenericStringRef::GenericStringRef</a></div><div class="ttdeci">GenericStringRef(const CharType *str, SizeType len)</div><div class="ttdoc">Create constant string reference from pointer and length. </div><div class="ttdef"><b>Definition:</b> document.h:309</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a6f7f7c66d8f8c08e496ae831ba114126"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a6f7f7c66d8f8c08e496ae831ba114126">rapidjson::GenericValue::operator==</a></div><div class="ttdeci">bool operator==(const std::basic_string&lt; Ch &gt; &amp;rhs) const </div><div class="ttdoc">Equal-to operator with string object. </div><div class="ttdef"><b>Definition:</b> document.h:740</div></div>
-<div class="ttc" id="namespacerapidjson_html_a9c225e4848c5facd20e43084ba2a51a3"><div class="ttname"><a href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">rapidjson::Pointer</a></div><div class="ttdeci">GenericPointer&lt; Value &gt; Pointer</div><div class="ttdoc">GenericPointer for Value (UTF-8, default allocator). </div><div class="ttdef"><b>Definition:</b> pointer.h:1024</div></div>
<div class="ttc" id="structrapidjson_1_1_generic_member_html"><div class="ttname"><a href="structrapidjson_1_1_generic_member.html">rapidjson::GenericMember</a></div><div class="ttdoc">Name-value pair in a JSON object value. </div><div class="ttdef"><b>Definition:</b> document.h:66</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_afb91480cc6242ca96ffc603e649c319f"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#afb91480cc6242ca96ffc603e649c319f">rapidjson::GenericValue::SetString</a></div><div class="ttdeci">GenericValue &amp; SetString(const Ch *s, SizeType length)</div><div class="ttdoc">Set this value as a string without copying source string. </div><div class="ttdef"><b>Definition:</b> document.h:1483</div></div>
<div class="ttc" id="structrapidjson_1_1_generic_string_ref_html_aa6b9fd9f6aa49405a574c362ba9af6b5"><div class="ttname"><a href="structrapidjson_1_1_generic_string_ref.html#aa6b9fd9f6aa49405a574c362ba9af6b5">rapidjson::GenericStringRef::StringRef</a></div><div class="ttdeci">GenericStringRef&lt; CharType &gt; StringRef(const CharType *str)</div><div class="ttdoc">Mark a character pointer as constant string. </div><div class="ttdef"><b>Definition:</b> document.h:337</div></div>
@@ -2312,14 +2313,14 @@ $(document).ready(function(){initNavTree('document_8h_source.html','');});
<div class="ttc" id="classrapidjson_1_1_generic_value_html_abc8945d3411c6ce583d322753ce028e1"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#abc8945d3411c6ce583d322753ce028e1">rapidjson::GenericValue::Begin</a></div><div class="ttdeci">ConstValueIterator Begin() const </div><div class="ttdoc">Constant element iterator. </div><div class="ttdef"><b>Definition:</b> document.h:1312</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_aa56b69bac5423622eff6998ce4802106"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#aa56b69bac5423622eff6998ce4802106">rapidjson::GenericValue::Clear</a></div><div class="ttdeci">void Clear()</div><div class="ttdoc">Remove all elements in the array. </div><div class="ttdef"><b>Definition:</b> document.h:1285</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html_a42c35e2f64c288f14b74fec2792500c8"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#a42c35e2f64c288f14b74fec2792500c8">rapidjson::GenericDocument::Parse</a></div><div class="ttdeci">GenericDocument &amp; Parse(const Ch *str)</div><div class="ttdoc">Parse JSON text from a read-only string. </div><div class="ttdef"><b>Definition:</b> document.h:1975</div></div>
-<div class="ttc" id="classrapidjson_1_1_generic_pointer_html"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer</a></div><div class="ttdoc">Represents a JSON Pointer. Use Pointer for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> pointer.h:76</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:716</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_pointer_html"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer</a></div><div class="ttdoc">Represents a JSON Pointer. Use Pointer for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> fwd.h:121</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:557</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html_a8367a827588dd91d02e21ef945bec9f5"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#a8367a827588dd91d02e21ef945bec9f5">rapidjson::GenericDocument::Ch</a></div><div class="ttdeci">Encoding::Ch Ch</div><div class="ttdoc">Character type derived from Encoding. </div><div class="ttdef"><b>Definition:</b> document.h:1769</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html_aa52c3016961f25ecd989d82839bce4e5"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#aa52c3016961f25ecd989d82839bce4e5">rapidjson::GenericDocument::GenericDocument</a></div><div class="ttdeci">GenericDocument(Type type, Allocator *allocator=0, size_t stackCapacity=kDefaultStackCapacity, StackAllocator *stackAllocator=0)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> document.h:1780</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_adc312de070d03a63e6c692c9c61db156"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#adc312de070d03a63e6c692c9c61db156">rapidjson::GenericValue::operator[]</a></div><div class="ttdeci">GenericValue &amp; operator[](SizeType index)</div><div class="ttdoc">Get an element from array by index. </div><div class="ttdef"><b>Definition:</b> document.h:1297</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_member_iterator_html_a17955e32a06f667c672b270e6a4d2195"><div class="ttname"><a href="classrapidjson_1_1_generic_member_iterator.html#a17955e32a06f667c672b270e6a4d2195">rapidjson::GenericMemberIterator::Pointer</a></div><div class="ttdeci">BaseType::pointer Pointer</div><div class="ttdoc">Pointer to (const) GenericMember. </div><div class="ttdef"><b>Definition:</b> document.h:116</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html_ad97e64c123ec1e07ea62ab0a9ce80c00"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#ad97e64c123ec1e07ea62ab0a9ce80c00">rapidjson::GenericDocument::GetParseError</a></div><div class="ttdeci">ParseErrorCode GetParseError() const </div><div class="ttdoc">Get the ParseErrorCode of last parsing. </div><div class="ttdef"><b>Definition:</b> document.h:1994</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">rapidjson::kObjectType</a></div><div class="ttdoc">object </div><div class="ttdef"><b>Definition:</b> rapidjson.h:720</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">rapidjson::kObjectType</a></div><div class="ttdoc">object </div><div class="ttdef"><b>Definition:</b> rapidjson.h:561</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a0ec9f34bef5890241d4bc882b73b1db4"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a0ec9f34bef5890241d4bc882b73b1db4">rapidjson::GenericValue::PushBack</a></div><div class="ttdeci">GenericValue &amp; PushBack(GenericValue &amp;value, Allocator &amp;allocator)</div><div class="ttdoc">Append a GenericValue at the end of the array. </div><div class="ttdef"><b>Definition:</b> document.h:1342</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a06f10ef54f5692ce08206c26624a21db"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a06f10ef54f5692ce08206c26624a21db">rapidjson::GenericValue::Swap</a></div><div class="ttdeci">GenericValue &amp; Swap(GenericValue &amp;other) RAPIDJSON_NOEXCEPT</div><div class="ttdoc">Exchange the contents of this value with those of other. </div><div class="ttdef"><b>Definition:</b> document.h:657</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_adb109ae9f12615efadf9277cb5e9c4ee"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#adb109ae9f12615efadf9277cb5e9c4ee">rapidjson::GenericValue::MemberEnd</a></div><div class="ttdeci">MemberIterator MemberEnd()</div><div class="ttdoc">Past-the-end member iterator </div><div class="ttdef"><b>Definition:</b> document.h:886</div></div>
@@ -2330,7 +2331,7 @@ $(document).ready(function(){initNavTree('document_8h_source.html','');});
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_ga6a2b1695c13e77ae425e3cbac980ccb5"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga6a2b1695c13e77ae425e3cbac980ccb5">RAPIDJSON_UNLIKELY</a></div><div class="ttdeci">#define RAPIDJSON_UNLIKELY(x)</div><div class="ttdoc">Compiler branching hint for expression with low probability to be true. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:437</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a646b6d4d3d98799a0926d96ffa127a58"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a646b6d4d3d98799a0926d96ffa127a58">rapidjson::GenericValue::GenericValue</a></div><div class="ttdeci">GenericValue(Type type) RAPIDJSON_NOEXCEPT</div><div class="ttdoc">Constructor with JSON value type. </div><div class="ttdef"><b>Definition:</b> document.h:458</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html">rapidjson::GenericDocument</a></div><div class="ttdoc">A document for parsing JSON text as DOM. </div><div class="ttdef"><b>Definition:</b> document.h:57</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">rapidjson::kArrayType</a></div><div class="ttdoc">array </div><div class="ttdef"><b>Definition:</b> rapidjson.h:721</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">rapidjson::kArrayType</a></div><div class="ttdoc">array </div><div class="ttdef"><b>Definition:</b> rapidjson.h:562</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a06ce0e14ec83b53c83e1b1699b53a25e"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a06ce0e14ec83b53c83e1b1699b53a25e">rapidjson::GenericValue::ValueIterator</a></div><div class="ttdeci">GenericValue * ValueIterator</div><div class="ttdoc">Value iterator for iterating in array. </div><div class="ttdef"><b>Definition:</b> document.h:420</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_afbdbc9cbc3b59feb5a28d5bfee97dbb3"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#afbdbc9cbc3b59feb5a28d5bfee97dbb3">rapidjson::GenericValue::operator==</a></div><div class="ttdeci">bool operator==(const GenericValue&lt; Encoding, SourceAllocator &gt; &amp;rhs) const </div><div class="ttdoc">Equal-to operator. </div><div class="ttdef"><b>Definition:</b> document.h:692</div></div>
<div class="ttc" id="rapidjson_8h_html_a52c941c3fdd646527cdcd42aa846a28a"><div class="ttname"><a href="rapidjson_8h.html#a52c941c3fdd646527cdcd42aa846a28a">RAPIDJSON_DELETE</a></div><div class="ttdeci">#define RAPIDJSON_DELETE(x)</div><div class="ttdoc">! customization point for global delete </div><div class="ttdef"><b>Definition:</b> rapidjson.h:544</div></div>
@@ -2344,10 +2345,10 @@ $(document).ready(function(){initNavTree('document_8h_source.html','');});
<div class="ttc" id="classrapidjson_1_1_generic_value_html_ad1f8199e65662e0d52a13a1577d4e4a5"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#ad1f8199e65662e0d52a13a1577d4e4a5">rapidjson::GenericValue::GenericValue</a></div><div class="ttdeci">GenericValue() RAPIDJSON_NOEXCEPT</div><div class="ttdoc">Default constructor creates a null value. </div><div class="ttdef"><b>Definition:</b> document.h:428</div></div>
<div class="ttc" id="structrapidjson_1_1_generic_string_ref_html_a29cf407c6aa2313f13dff78d6ce02687"><div class="ttname"><a href="structrapidjson_1_1_generic_string_ref.html#a29cf407c6aa2313f13dff78d6ce02687">rapidjson::GenericStringRef::GenericStringRef</a></div><div class="ttdeci">GenericStringRef(const CharType *str)</div><div class="ttdoc">Explicitly create string reference from const character pointer. </div><div class="ttdef"><b>Definition:</b> document.h:297</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html_a0d63efcc43758ac3aed77e868233369d"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#a0d63efcc43758ac3aed77e868233369d">rapidjson::GenericDocument::swap</a></div><div class="ttdeci">friend void swap(GenericDocument &amp;a, GenericDocument &amp;b) RAPIDJSON_NOEXCEPT</div><div class="ttdoc">free-standing swap function helper </div><div class="ttdef"><b>Definition:</b> document.h:1870</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff">rapidjson::kNullType</a></div><div class="ttdoc">null </div><div class="ttdef"><b>Definition:</b> rapidjson.h:717</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff">rapidjson::kNullType</a></div><div class="ttdoc">null </div><div class="ttdef"><b>Definition:</b> rapidjson.h:558</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html_a82b27e7b228eb46a23f99720063ab4fb"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#a82b27e7b228eb46a23f99720063ab4fb">rapidjson::GenericDocument::GenericDocument</a></div><div class="ttdeci">GenericDocument(Allocator *allocator=0, size_t stackCapacity=kDefaultStackCapacity, StackAllocator *stackAllocator=0)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> document.h:1793</div></div>
<div class="ttc" id="structrapidjson_1_1_generic_member_html_ae820eaa74b415a9073f3f3855f6c6607"><div class="ttname"><a href="structrapidjson_1_1_generic_member.html#ae820eaa74b415a9073f3f3855f6c6607">rapidjson::GenericMember::name</a></div><div class="ttdeci">GenericValue&lt; Encoding, Allocator &gt; name</div><div class="ttdoc">name of member (must be a string) </div><div class="ttdef"><b>Definition:</b> document.h:67</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7">rapidjson::kStringType</a></div><div class="ttdoc">string </div><div class="ttdef"><b>Definition:</b> rapidjson.h:722</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7">rapidjson::kStringType</a></div><div class="ttdoc">string </div><div class="ttdef"><b>Definition:</b> rapidjson.h:563</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html_ad92c6cd025d411258d1f2ad890e2ee3f"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#ad92c6cd025d411258d1f2ad890e2ee3f">rapidjson::GenericDocument::GetAllocator</a></div><div class="ttdeci">Allocator &amp; GetAllocator()</div><div class="ttdoc">Get the allocator of this document. </div><div class="ttdef"><b>Definition:</b> document.h:2015</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a0220ddebe2f023fa75b643a50e90e559"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a0220ddebe2f023fa75b643a50e90e559">rapidjson::GenericValue::Member</a></div><div class="ttdeci">GenericMember&lt; Encoding, Allocator &gt; Member</div><div class="ttdoc">Name-value pair in an object. </div><div class="ttdef"><b>Definition:</b> document.h:413</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html_ae4ee7d86b8c906c83dbe15e57eb6ac6a"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#ae4ee7d86b8c906c83dbe15e57eb6ac6a">rapidjson::GenericDocument::ParseStream</a></div><div class="ttdeci">GenericDocument &amp; ParseStream(InputStream &amp;is)</div><div class="ttdoc">Parse JSON text from an input stream. </div><div class="ttdef"><b>Definition:</b> document.h:1917</div></div>
@@ -2360,6 +2361,7 @@ $(document).ready(function(){initNavTree('document_8h_source.html','');});
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a68d8d197ae1fb83d4dc202f9812af4cc"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a68d8d197ae1fb83d4dc202f9812af4cc">rapidjson::GenericValue::RemoveAllMembers</a></div><div class="ttdeci">void RemoveAllMembers()</div><div class="ttdoc">Remove all members in the object. </div><div class="ttdef"><b>Definition:</b> document.h:1138</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_member_iterator_html_aa30ffef74b3f4978b403024d81b484e4"><div class="ttname"><a href="classrapidjson_1_1_generic_member_iterator.html#aa30ffef74b3f4978b403024d81b484e4">rapidjson::GenericMemberIterator::GenericMemberIterator</a></div><div class="ttdeci">GenericMemberIterator(const NonConstIterator &amp;it)</div><div class="ttdoc">Iterator conversions to more const. </div><div class="ttdef"><b>Definition:</b> document.h:144</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_aecc9d0a6aafe31f4fdf9f6e75e5f089c"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#aecc9d0a6aafe31f4fdf9f6e75e5f089c">rapidjson::GenericValue::operator=</a></div><div class="ttdeci">GenericValue &amp; operator=(StringRefType str) RAPIDJSON_NOEXCEPT</div><div class="ttdoc">Assignment of constant string reference (no copy) </div><div class="ttdef"><b>Definition:</b> document.h:614</div></div>
+<div class="ttc" id="namespacerapidjson_html_ace11b5b575baf1cccd5ba5f8586dcdc8"><div class="ttname"><a href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">rapidjson::Document</a></div><div class="ttdeci">GenericDocument&lt; UTF8&lt;&gt; &gt; Document</div><div class="ttdoc">GenericDocument with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> document.h:2101</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html_abf1cbab989b856f9d260787b2575750b"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#abf1cbab989b856f9d260787b2575750b">rapidjson::GenericDocument::Swap</a></div><div class="ttdeci">GenericDocument &amp; Swap(GenericDocument &amp;rhs) RAPIDJSON_NOEXCEPT</div><div class="ttdoc">Exchange the contents of this document with those of another. </div><div class="ttdef"><b>Definition:</b> document.h:1849</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a7bed9035dd1beeabe6f47e870874e793"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a7bed9035dd1beeabe6f47e870874e793">rapidjson::GenericValue::operator==</a></div><div class="ttdeci">bool operator==(const Ch *rhs) const </div><div class="ttdoc">Equal-to operator with const C-string pointer. </div><div class="ttdef"><b>Definition:</b> document.h:734</div></div>
<div class="ttc" id="namespacerapidjson_html_a81379eb4e94a0386d71d15fda882ebc9a02748971d6ea0c5e22c69b8aa7f344ea"><div class="ttname"><a href="namespacerapidjson.html#a81379eb4e94a0386d71d15fda882ebc9a02748971d6ea0c5e22c69b8aa7f344ea">rapidjson::kParseInsituFlag</a></div><div class="ttdoc">In-situ(destructive) parsing. </div><div class="ttdef"><b>Definition:</b> reader.h:144</div></div>
@@ -2372,7 +2374,6 @@ $(document).ready(function(){initNavTree('document_8h_source.html','');});
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a5623c9039977ca0daf394e5c12f10c2d"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a5623c9039977ca0daf394e5c12f10c2d">rapidjson::GenericValue::SetBool</a></div><div class="ttdeci">GenericValue &amp; SetBool(bool b)</div><div class="ttdef"><b>Definition:</b> document.h:806</div></div>
<div class="ttc" id="classrapidjson_1_1_allocator_html"><div class="ttname"><a href="classrapidjson_1_1_allocator.html">rapidjson::Allocator</a></div><div class="ttdoc">Concept for allocating, resizing and freeing memory block. </div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html">rapidjson::GenericValue</a></div><div class="ttdoc">Represents a JSON value. Use Value for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> document.h:54</div></div>
-<div class="ttc" id="namespacerapidjson_html_afb3fa116c66d834b6f4289d648cc8d6d"><div class="ttname"><a href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">rapidjson::Value</a></div><div class="ttdeci">GenericValue&lt; UTF8&lt;&gt; &gt; Value</div><div class="ttdoc">GenericValue with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> document.h:1753</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_aff61690249189dbbc6ebfdc9e2add00e"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#aff61690249189dbbc6ebfdc9e2add00e">rapidjson::GenericValue::CopyFrom</a></div><div class="ttdeci">GenericValue &amp; CopyFrom(const GenericValue&lt; Encoding, SourceAllocator &gt; &amp;rhs, Allocator &amp;allocator)</div><div class="ttdoc">Deep-copy assignment from Value. </div><div class="ttdef"><b>Definition:</b> document.h:645</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a25069c76d045b058e54835d8c467c789"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a25069c76d045b058e54835d8c467c789">rapidjson::GenericValue::SetArray</a></div><div class="ttdeci">GenericValue &amp; SetArray()</div><div class="ttdoc">Set this value as an empty array. </div><div class="ttdef"><b>Definition:</b> document.h:1270</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_member_iterator_html"><div class="ttname"><a href="classrapidjson_1_1_generic_member_iterator.html">rapidjson::GenericMemberIterator</a></div><div class="ttdoc">(Constant) member iterator for a JSON object value </div><div class="ttdef"><b>Definition:</b> document.h:96</div></div>
@@ -2389,13 +2390,12 @@ $(document).ready(function(){initNavTree('document_8h_source.html','');});
<div class="ttc" id="classrapidjson_1_1_generic_document_html_a2ab17089bd6249bf2a7959d56d35cb68"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#a2ab17089bd6249bf2a7959d56d35cb68">rapidjson::GenericDocument::HasParseError</a></div><div class="ttdeci">bool HasParseError() const </div><div class="ttdoc">Whether a parse error has occured in the last parsing. </div><div class="ttdef"><b>Definition:</b> document.h:1991</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a85dc131bdad8077ce970d580d333d15a"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a85dc131bdad8077ce970d580d333d15a">rapidjson::GenericValue::AddMember</a></div><div class="ttdeci">GenericValue &amp; AddMember(StringRefType name, GenericValue &amp;value, Allocator &amp;allocator)</div><div class="ttdoc">Add a member (name-value pair) to the object. </div><div class="ttdef"><b>Definition:</b> document.h:1091</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
-<div class="ttc" id="namespacerapidjson_html_a660c934c2959121babf799b6cb206659"><div class="ttname"><a href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">rapidjson::Document</a></div><div class="ttdeci">GenericDocument&lt; UTF8&lt;&gt; &gt; Document</div><div class="ttdoc">GenericDocument with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> document.h:2101</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a1f125e735577aae64c0306345de45563"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a1f125e735577aae64c0306345de45563">rapidjson::GenericValue::GenericValue</a></div><div class="ttdeci">GenericValue(uint64_t u64) RAPIDJSON_NOEXCEPT</div><div class="ttdoc">Constructor for uint64_t value. </div><div class="ttdef"><b>Definition:</b> document.h:527</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a">rapidjson::kNumberType</a></div><div class="ttdoc">number </div><div class="ttdef"><b>Definition:</b> rapidjson.h:723</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a">rapidjson::kNumberType</a></div><div class="ttdoc">number </div><div class="ttdef"><b>Definition:</b> rapidjson.h:564</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html_a7ba626bf84eb45a9bca0b7723bf47f3f"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html#a7ba626bf84eb45a9bca0b7723bf47f3f">rapidjson::GenericDocument::ParseInsitu</a></div><div class="ttdeci">GenericDocument &amp; ParseInsitu(Ch *str)</div><div class="ttdoc">Parse JSON text from a mutable string. </div><div class="ttdef"><b>Definition:</b> document.h:1941</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a68ba73eeda7b9429ca05267065d3cc99"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a68ba73eeda7b9429ca05267065d3cc99">rapidjson::GenericValue::Erase</a></div><div class="ttdeci">ValueIterator Erase(ConstValueIterator pos)</div><div class="ttdoc">Remove an element of array by iterator. </div><div class="ttdef"><b>Definition:</b> document.h:1411</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_value_html_a979c4ba6dd2a311be837ae083423aca8"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html#a979c4ba6dd2a311be837ae083423aca8">rapidjson::GenericValue::GetStringLength</a></div><div class="ttdeci">SizeType GetStringLength() const </div><div class="ttdoc">Get the length of string. </div><div class="ttdef"><b>Definition:</b> document.h:1473</div></div>
-<div class="ttc" id="structrapidjson_1_1_generic_insitu_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_insitu_string_stream.html">rapidjson::GenericInsituStringStream</a></div><div class="ttdoc">A read-write string stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:679</div></div>
+<div class="ttc" id="structrapidjson_1_1_generic_insitu_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_insitu_string_stream.html">rapidjson::GenericInsituStringStream</a></div><div class="ttdoc">A read-write string stream. </div><div class="ttdef"><b>Definition:</b> fwd.h:52</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.7-->
diff --git a/zh-cn/encodedstream_8h_source.html b/zh-cn/encodedstream_8h_source.html
index d5be9a82..07578154 100644
--- a/zh-cn/encodedstream_8h_source.html
+++ b/zh-cn/encodedstream_8h_source.html
@@ -105,7 +105,7 @@ $(document).ready(function(){initNavTree('encodedstream_8h_source.html','');});
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_ENCODEDSTREAM_H_</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define RAPIDJSON_ENCODEDSTREAM_H_</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rapidjson_8h.html">rapidjson.h</a>&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;stream.h&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#ifdef __GNUC__</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;RAPIDJSON_DIAG_PUSH</div>
@@ -368,7 +368,6 @@ $(document).ready(function(){initNavTree('encodedstream_8h_source.html','');});
<div class="ttc" id="classrapidjson_1_1_auto_u_t_f_input_stream_html_a5c9f041a3b32bf15bc9be888a8731d35"><div class="ttname"><a href="classrapidjson_1_1_auto_u_t_f_input_stream.html#a5c9f041a3b32bf15bc9be888a8731d35">rapidjson::AutoUTFInputStream::AutoUTFInputStream</a></div><div class="ttdeci">AutoUTFInputStream(InputByteStream &amp;is, UTFType type=kUTF8)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> encodedstream.h:116</div></div>
<div class="ttc" id="classrapidjson_1_1_encoded_input_stream_html"><div class="ttname"><a href="classrapidjson_1_1_encoded_input_stream.html">rapidjson::EncodedInputStream</a></div><div class="ttdoc">Input byte stream wrapper with a statically bound encoding. </div><div class="ttdef"><b>Definition:</b> encodedstream.h:38</div></div>
<div class="ttc" id="namespacerapidjson_html_a4aacabc0f8cea1cd628f466d890773eba52c496755de96eee05275a423b36299d"><div class="ttname"><a href="namespacerapidjson.html#a4aacabc0f8cea1cd628f466d890773eba52c496755de96eee05275a423b36299d">rapidjson::kUTF16BE</a></div><div class="ttdoc">UTF-16 big endian. </div><div class="ttdef"><b>Definition:</b> encodings.h:602</div></div>
-<div class="ttc" id="rapidjson_8h_html"><div class="ttname"><a href="rapidjson_8h.html">rapidjson.h</a></div><div class="ttdoc">common definitions and configuration </div></div>
<div class="ttc" id="classrapidjson_1_1_auto_u_t_f_output_stream_html"><div class="ttname"><a href="classrapidjson_1_1_auto_u_t_f_output_stream.html">rapidjson::AutoUTFOutputStream</a></div><div class="ttdoc">Output stream wrapper with dynamically bound encoding and automatic encoding detection. </div><div class="ttdef"><b>Definition:</b> encodedstream.h:204</div></div>
<div class="ttc" id="namespacerapidjson_html_a4aacabc0f8cea1cd628f466d890773ebad6db204b848081468878ed58bc20ce8f"><div class="ttname"><a href="namespacerapidjson.html#a4aacabc0f8cea1cd628f466d890773ebad6db204b848081468878ed58bc20ce8f">rapidjson::kUTF32BE</a></div><div class="ttdoc">UTF-32 big endian. </div><div class="ttdef"><b>Definition:</b> encodings.h:604</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
diff --git a/zh-cn/encodings_8h_source.html b/zh-cn/encodings_8h_source.html
index aba5a006..8160ae98 100644
--- a/zh-cn/encodings_8h_source.html
+++ b/zh-cn/encodings_8h_source.html
@@ -770,7 +770,7 @@ $(document).ready(function(){initNavTree('encodings_8h_source.html','');});
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;</div>
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;<span class="comment">// Forward declaration.</span></div>
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Stream&gt;</div>
-<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(Stream&amp; stream, <span class="keyword">typename</span> Stream::Ch c);</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> PutUnsafe(Stream&amp; stream, <span class="keyword">typename</span> Stream::Ch c);</div>
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;<span class="comment">//! Specialization of Transcoder with same source and target encoding.</span></div>
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Encoding&gt;</div>
@@ -817,7 +817,7 @@ $(document).ready(function(){initNavTree('encodings_8h_source.html','');});
<div class="ttc" id="structrapidjson_1_1_u_t_f8_html"><div class="ttname"><a href="structrapidjson_1_1_u_t_f8.html">rapidjson::UTF8</a></div><div class="ttdoc">UTF-8 encoding. </div><div class="ttdef"><b>Definition:</b> encodings.h:96</div></div>
<div class="ttc" id="namespacerapidjson_html_a4aacabc0f8cea1cd628f466d890773ebad6db204b848081468878ed58bc20ce8f"><div class="ttname"><a href="namespacerapidjson.html#a4aacabc0f8cea1cd628f466d890773ebad6db204b848081468878ed58bc20ce8f">rapidjson::kUTF32BE</a></div><div class="ttdoc">UTF-32 big endian. </div><div class="ttdef"><b>Definition:</b> encodings.h:604</div></div>
<div class="ttc" id="structrapidjson_1_1_u_t_f32_l_e_html"><div class="ttname"><a href="structrapidjson_1_1_u_t_f32_l_e.html">rapidjson::UTF32LE</a></div><div class="ttdoc">UTF-32 little endian enocoding. </div><div class="ttdef"><b>Definition:</b> encodings.h:453</div></div>
-<div class="ttc" id="namespacerapidjson_html_a0a774dcffe8ae07686f459ae017d2f20"><div class="ttname"><a href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">rapidjson::PutUnsafe</a></div><div class="ttdeci">void PutUnsafe(Stream &amp;stream, typename Stream::Ch c)</div><div class="ttdoc">Write character to a stream, presuming buffer is reserved. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:626</div></div>
+<div class="ttc" id="namespacerapidjson_html_a0a774dcffe8ae07686f459ae017d2f20"><div class="ttname"><a href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">rapidjson::PutUnsafe</a></div><div class="ttdeci">void PutUnsafe(Stream &amp;stream, typename Stream::Ch c)</div><div class="ttdoc">Write character to a stream, presuming buffer is reserved. </div><div class="ttdef"><b>Definition:</b> stream.h:91</div></div>
<div class="ttc" id="structrapidjson_1_1_transcoder_html_a3a1de7069d3cf7f1d4f4e2f96ceb7664"><div class="ttname"><a href="structrapidjson_1_1_transcoder.html#a3a1de7069d3cf7f1d4f4e2f96ceb7664">rapidjson::Transcoder::Transcode</a></div><div class="ttdeci">static RAPIDJSON_FORCEINLINE bool Transcode(InputStream &amp;is, OutputStream &amp;os)</div><div class="ttdoc">Take one Unicode codepoint from source encoding, convert it to target encoding and put it to the outp...</div><div class="ttdef"><b>Definition:</b> encodings.h:657</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
<div class="ttc" id="namespacerapidjson_html_a4aacabc0f8cea1cd628f466d890773eb"><div class="ttname"><a href="namespacerapidjson.html#a4aacabc0f8cea1cd628f466d890773eb">rapidjson::UTFType</a></div><div class="ttdeci">UTFType</div><div class="ttdoc">Runtime-specified UTF encoding type of a stream. </div><div class="ttdef"><b>Definition:</b> encodings.h:599</div></div>
diff --git a/zh-cn/filereadstream_8h_source.html b/zh-cn/filereadstream_8h_source.html
index ec4df066..a441ce6f 100644
--- a/zh-cn/filereadstream_8h_source.html
+++ b/zh-cn/filereadstream_8h_source.html
@@ -105,7 +105,7 @@ $(document).ready(function(){initNavTree('filereadstream_8h_source.html','');});
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_FILEREADSTREAM_H_</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define RAPIDJSON_FILEREADSTREAM_H_</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rapidjson_8h.html">rapidjson.h</a>&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;stream.h&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &lt;cstdio&gt;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#ifdef __clang__</span></div>
@@ -190,7 +190,6 @@ $(document).ready(function(){initNavTree('filereadstream_8h_source.html','');});
<div class="ttc" id="classrapidjson_1_1_file_read_stream_html_a72b610ada5d86e8977a2bc1f2f4c0808"><div class="ttname"><a href="classrapidjson_1_1_file_read_stream.html#a72b610ada5d86e8977a2bc1f2f4c0808">rapidjson::FileReadStream::FileReadStream</a></div><div class="ttdeci">FileReadStream(std::FILE *fp, char *buffer, size_t bufferSize)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> filereadstream.h:44</div></div>
<div class="ttc" id="classrapidjson_1_1_file_read_stream_html"><div class="ttname"><a href="classrapidjson_1_1_file_read_stream.html">rapidjson::FileReadStream</a></div><div class="ttdoc">File byte stream for input using fread(). </div><div class="ttdef"><b>Definition:</b> filereadstream.h:34</div></div>
<div class="ttc" id="classrapidjson_1_1_file_read_stream_html_a4a5f34875b40d22def206c9a09ecd929"><div class="ttname"><a href="classrapidjson_1_1_file_read_stream.html#a4a5f34875b40d22def206c9a09ecd929">rapidjson::FileReadStream::Ch</a></div><div class="ttdeci">char Ch</div><div class="ttdoc">Character type (byte). </div><div class="ttdef"><b>Definition:</b> filereadstream.h:36</div></div>
-<div class="ttc" id="rapidjson_8h_html"><div class="ttname"><a href="rapidjson_8h.html">rapidjson.h</a></div><div class="ttdoc">common definitions and configuration </div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/zh-cn/files.html b/zh-cn/files.html
index 7e21fa52..3a38b01a 100644
--- a/zh-cn/files.html
+++ b/zh-cn/files.html
@@ -114,15 +114,17 @@ $(document).ready(function(){initNavTree('files.html','');});
<tr id="row_0_0_5_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="encodings_8h_source.html"><span class="icondoc"></span></a><b>encodings.h</b></td><td class="desc"></td></tr>
<tr id="row_0_0_6_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="filereadstream_8h_source.html"><span class="icondoc"></span></a><b>filereadstream.h</b></td><td class="desc"></td></tr>
<tr id="row_0_0_7_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="filewritestream_8h_source.html"><span class="icondoc"></span></a><b>filewritestream.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_8_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="memorybuffer_8h_source.html"><span class="icondoc"></span></a><b>memorybuffer.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_9_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="memorystream_8h_source.html"><span class="icondoc"></span></a><b>memorystream.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_10_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="pointer_8h_source.html"><span class="icondoc"></span></a><b>pointer.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_11_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="prettywriter_8h_source.html"><span class="icondoc"></span></a><b>prettywriter.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_12_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="rapidjson_8h_source.html"><span class="icondoc"></span></a><a class="el" href="rapidjson_8h.html" target="_self">rapidjson.h</a></td><td class="desc">Common definitions and configuration </td></tr>
-<tr id="row_0_0_13_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="reader_8h_source.html"><span class="icondoc"></span></a><a class="el" href="reader_8h.html" target="_self">reader.h</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_14_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="schema_8h_source.html"><span class="icondoc"></span></a><b>schema.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_15_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="stringbuffer_8h_source.html"><span class="icondoc"></span></a><b>stringbuffer.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_16_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="writer_8h_source.html"><span class="icondoc"></span></a><b>writer.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_8_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="fwd_8h_source.html"><span class="icondoc"></span></a><b>fwd.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_9_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="memorybuffer_8h_source.html"><span class="icondoc"></span></a><b>memorybuffer.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_10_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="memorystream_8h_source.html"><span class="icondoc"></span></a><b>memorystream.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_11_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="pointer_8h_source.html"><span class="icondoc"></span></a><b>pointer.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_12_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="prettywriter_8h_source.html"><span class="icondoc"></span></a><b>prettywriter.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_13_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="rapidjson_8h_source.html"><span class="icondoc"></span></a><a class="el" href="rapidjson_8h.html" target="_self">rapidjson.h</a></td><td class="desc">Common definitions and configuration </td></tr>
+<tr id="row_0_0_14_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="reader_8h_source.html"><span class="icondoc"></span></a><a class="el" href="reader_8h.html" target="_self">reader.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_15_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="schema_8h_source.html"><span class="icondoc"></span></a><b>schema.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_16_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="stream_8h_source.html"><span class="icondoc"></span></a><b>stream.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_17_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="stringbuffer_8h_source.html"><span class="icondoc"></span></a><b>stringbuffer.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_18_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="writer_8h_source.html"><span class="icondoc"></span></a><b>writer.h</b></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
diff --git a/zh-cn/filewritestream_8h_source.html b/zh-cn/filewritestream_8h_source.html
index 0d0c9bcb..ec0045a9 100644
--- a/zh-cn/filewritestream_8h_source.html
+++ b/zh-cn/filewritestream_8h_source.html
@@ -105,7 +105,7 @@ $(document).ready(function(){initNavTree('filewritestream_8h_source.html','');})
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_FILEWRITESTREAM_H_</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define RAPIDJSON_FILEWRITESTREAM_H_</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rapidjson_8h.html">rapidjson.h</a>&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;stream.h&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &lt;cstdio&gt;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#ifdef __clang__</span></div>
@@ -134,7 +134,7 @@ $(document).ready(function(){initNavTree('filewritestream_8h_source.html','');})
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; *current_++ = c;</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; }</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">PutN</a>(<span class="keywordtype">char</span> c, <span class="keywordtype">size_t</span> n) {</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">void</span> PutN(<span class="keywordtype">char</span> c, <span class="keywordtype">size_t</span> n) {</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordtype">size_t</span> avail = <span class="keyword">static_cast&lt;</span><span class="keywordtype">size_t</span><span class="keyword">&gt;</span>(bufferEnd_ - current_);</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">while</span> (n &gt; avail) {</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; std::memset(current_, c, avail);</div>
@@ -181,7 +181,7 @@ $(document).ready(function(){initNavTree('filewritestream_8h_source.html','');})
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment">//! Implement specialized version of PutN() with memset() for better performance.</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a"> 94</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">PutN</a>(<a class="code" href="classrapidjson_1_1_file_write_stream.html">FileWriteStream</a>&amp; stream, <span class="keywordtype">char</span> c, <span class="keywordtype">size_t</span> n) {</div>
+<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a"> 94</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a">PutN</a>(<a class="code" href="classrapidjson_1_1_file_write_stream.html">FileWriteStream</a>&amp; stream, <span class="keywordtype">char</span> c, <span class="keywordtype">size_t</span> n) {</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; stream.PutN(c, n);</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;}</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
@@ -194,9 +194,8 @@ $(document).ready(function(){initNavTree('filewritestream_8h_source.html','');})
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_FILESTREAM_H_</span></div>
<div class="ttc" id="classrapidjson_1_1_file_write_stream_html"><div class="ttname"><a href="classrapidjson_1_1_file_write_stream.html">rapidjson::FileWriteStream</a></div><div class="ttdoc">Wrapper of C file stream for input using fread(). </div><div class="ttdef"><b>Definition:</b> filewritestream.h:32</div></div>
<div class="ttc" id="classrapidjson_1_1_file_write_stream_html_afc606cc81f6c3709d81bf99b30566330"><div class="ttname"><a href="classrapidjson_1_1_file_write_stream.html#afc606cc81f6c3709d81bf99b30566330">rapidjson::FileWriteStream::Ch</a></div><div class="ttdeci">char Ch</div><div class="ttdoc">Character type. Only support char. </div><div class="ttdef"><b>Definition:</b> filewritestream.h:34</div></div>
-<div class="ttc" id="rapidjson_8h_html"><div class="ttname"><a href="rapidjson_8h.html">rapidjson.h</a></div><div class="ttdoc">common definitions and configuration </div></div>
+<div class="ttc" id="namespacerapidjson_html_a1ac13bac5976fc06587e00fc0bcfb32a"><div class="ttname"><a href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a">rapidjson::PutN</a></div><div class="ttdeci">void PutN(FileWriteStream &amp;stream, char c, size_t n)</div><div class="ttdoc">Implement specialized version of PutN() with memset() for better performance. </div><div class="ttdef"><b>Definition:</b> filewritestream.h:94</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
-<div class="ttc" id="namespacerapidjson_html_a1d49d2cab617858b53a1db23b1759f43"><div class="ttname"><a href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">rapidjson::PutN</a></div><div class="ttdeci">void PutN(Stream &amp;stream, Ch c, size_t n)</div><div class="ttdoc">Put N copies of a character to a stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:632</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.7-->
diff --git a/zh-cn/functions_func_g.html b/zh-cn/functions_func_g.html
index f9a27866..0273af7d 100644
--- a/zh-cn/functions_func_g.html
+++ b/zh-cn/functions_func_g.html
@@ -100,7 +100,7 @@ $(document).ready(function(){initNavTree('functions_func_g.html','');});
: <a class="el" href="classrapidjson_1_1_generic_reader.html#a56ab1065ea75167aeacb4802425bf57f">rapidjson::GenericReader&lt; SourceEncoding, TargetEncoding, StackAllocator &gt;</a>
</li>
<li>GenericSchemaDocument()
-: <a class="el" href="classrapidjson_1_1_generic_schema_document.html#a09c94a10d412ee188de575b82292a90e">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>
+: <a class="el" href="classrapidjson_1_1_generic_schema_document.html#ad200cc7bcb193c8568cdbda7b7fd0496">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>
</li>
<li>GenericSchemaValidator()
: <a class="el" href="classrapidjson_1_1_generic_schema_validator.html#acc07bd08b00195d84bb5b83f59c593d3">rapidjson::GenericSchemaValidator&lt; SchemaDocumentType, OutputHandler, StateAllocator &gt;</a>
@@ -145,7 +145,7 @@ $(document).ready(function(){initNavTree('functions_func_g.html','');});
: <a class="el" href="classrapidjson_1_1_generic_pointer.html#adc01f1be5f05127f849a2bf10a97e89b">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a>
</li>
<li>GetRoot()
-: <a class="el" href="classrapidjson_1_1_generic_schema_document.html#a666d94105aa39c446327105339378320">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>
+: <a class="el" href="classrapidjson_1_1_generic_schema_document.html#af64ea17654ab0f1a91e382d422f91daf">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>
</li>
<li>GetStackCapacity()
: <a class="el" href="classrapidjson_1_1_generic_document.html#ac785c064649dea6cfa67207b6bda748e">rapidjson::GenericDocument&lt; Encoding, Allocator, StackAllocator &gt;</a>
diff --git a/zh-cn/functions_func_~.html b/zh-cn/functions_func_~.html
index 83e6799b..2b92a626 100644
--- a/zh-cn/functions_func_~.html
+++ b/zh-cn/functions_func_~.html
@@ -91,7 +91,7 @@ $(document).ready(function(){initNavTree('functions_func_~.html','');});
: <a class="el" href="classrapidjson_1_1_generic_pointer.html#a0e144b9956a5272c13ceff3b9306e748">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a>
</li>
<li>~GenericSchemaDocument()
-: <a class="el" href="classrapidjson_1_1_generic_schema_document.html#ad05d77ee8910b43513acf48fadf99c28">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>
+: <a class="el" href="classrapidjson_1_1_generic_schema_document.html#adf6f3372013227873ed392dee1e752bf">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>
</li>
<li>~GenericSchemaValidator()
: <a class="el" href="classrapidjson_1_1_generic_schema_validator.html#ad9f00d71bf62b8983cf2514c43fb1572">rapidjson::GenericSchemaValidator&lt; SchemaDocumentType, OutputHandler, StateAllocator &gt;</a>
diff --git a/zh-cn/functions_g.html b/zh-cn/functions_g.html
index 1122a1c2..362062db 100644
--- a/zh-cn/functions_g.html
+++ b/zh-cn/functions_g.html
@@ -100,7 +100,7 @@ $(document).ready(function(){initNavTree('functions_g.html','');});
: <a class="el" href="classrapidjson_1_1_generic_reader.html#a56ab1065ea75167aeacb4802425bf57f">rapidjson::GenericReader&lt; SourceEncoding, TargetEncoding, StackAllocator &gt;</a>
</li>
<li>GenericSchemaDocument()
-: <a class="el" href="classrapidjson_1_1_generic_schema_document.html#a09c94a10d412ee188de575b82292a90e">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>
+: <a class="el" href="classrapidjson_1_1_generic_schema_document.html#ad200cc7bcb193c8568cdbda7b7fd0496">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>
</li>
<li>GenericSchemaValidator()
: <a class="el" href="classrapidjson_1_1_generic_schema_validator.html#acc07bd08b00195d84bb5b83f59c593d3">rapidjson::GenericSchemaValidator&lt; SchemaDocumentType, OutputHandler, StateAllocator &gt;</a>
@@ -145,7 +145,7 @@ $(document).ready(function(){initNavTree('functions_g.html','');});
: <a class="el" href="classrapidjson_1_1_generic_pointer.html#adc01f1be5f05127f849a2bf10a97e89b">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a>
</li>
<li>GetRoot()
-: <a class="el" href="classrapidjson_1_1_generic_schema_document.html#a666d94105aa39c446327105339378320">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>
+: <a class="el" href="classrapidjson_1_1_generic_schema_document.html#af64ea17654ab0f1a91e382d422f91daf">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>
</li>
<li>GetStackCapacity()
: <a class="el" href="classrapidjson_1_1_generic_document.html#ac785c064649dea6cfa67207b6bda748e">rapidjson::GenericDocument&lt; Encoding, Allocator, StackAllocator &gt;</a>
diff --git a/zh-cn/functions_~.html b/zh-cn/functions_~.html
index 8f8adb28..63491355 100644
--- a/zh-cn/functions_~.html
+++ b/zh-cn/functions_~.html
@@ -91,7 +91,7 @@ $(document).ready(function(){initNavTree('functions_~.html','');});
: <a class="el" href="classrapidjson_1_1_generic_pointer.html#a0e144b9956a5272c13ceff3b9306e748">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a>
</li>
<li>~GenericSchemaDocument()
-: <a class="el" href="classrapidjson_1_1_generic_schema_document.html#ad05d77ee8910b43513acf48fadf99c28">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a>
+: <a class="el" href="classrapidjson_1_1_generic_schema_document.html#adf6f3372013227873ed392dee1e752bf">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a>
</li>
<li>~GenericSchemaValidator()
: <a class="el" href="classrapidjson_1_1_generic_schema_validator.html#ad9f00d71bf62b8983cf2514c43fb1572">rapidjson::GenericSchemaValidator&lt; SchemaDocumentType, OutputHandler, StateAllocator &gt;</a>
diff --git a/zh-cn/fwd_8h_source.html b/zh-cn/fwd_8h_source.html
new file mode 100644
index 00000000..bbb5840d
--- /dev/null
+++ b/zh-cn/fwd_8h_source.html
@@ -0,0 +1,285 @@
+<!-- HTML header for doxygen 1.8.7-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>RapidJSON: include/rapidjson/fwd.h 源文件</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+<link href="doxygenextra.css" rel="stylesheet" type="text/css"/>
+</head>
+<script>
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ ga('create', 'UA-63929386-1', 'auto');
+ ga('send', 'pageview');
+</script>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="topbanner"><a href="https://github.com/miloyip/rapidjson" title="RapidJSON GitHub"><i class="githublogo"></i></a></div>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="搜索" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+<!-- end header part -->
+<!-- 制作者 Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'搜索');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('fwd_8h_source.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>全部</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>类</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>命名空间</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>文件</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>函数</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>变量</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>类型定义</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>枚举</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>枚举值</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>友元</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>宏定义</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>组</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark">&#160;</span>页</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">fwd.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// Tencent is pleased to support the open source community by making RapidJSON available.</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Licensed under the MIT License (the &quot;License&quot;); you may not use this file except</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// in compliance with the License. You may obtain a copy of the License at</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// http://opensource.org/licenses/MIT</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// Unless required by applicable law or agreed to in writing, software distributed </span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR </span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// CONDITIONS OF ANY KIND, either express or implied. See the License for the </span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// specific language governing permissions and limitations under the License.</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_FWD_H_</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define RAPIDJSON_FWD_H_</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rapidjson_8h.html">rapidjson.h</a>&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;RAPIDJSON_NAMESPACE_BEGIN</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"> 22</span>&#160;<span class="comment">// encodings.h</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">template</span>&lt;<span class="keyword">typename</span> CharType&gt; <span class="keyword">struct </span>UTF8;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt; <span class="keyword">struct </span>UTF16;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt; <span class="keyword">struct </span>UTF16BE;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt; <span class="keyword">struct </span>UTF16LE;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt; <span class="keyword">struct </span>UTF32;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt; <span class="keyword">struct </span>UTF32BE;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt; <span class="keyword">struct </span>UTF32LE;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt; <span class="keyword">struct </span>ASCII;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt; <span class="keyword">struct </span>AutoUTF;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> SourceEncoding, <span class="keyword">typename</span> TargetEncoding&gt;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">struct </span>Transcoder;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">// allocators.h</span></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">class </span>CrtAllocator;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> BaseAllocator&gt;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>MemoryPoolAllocator;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// stream.h</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding&gt;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a021f77051e9f85188fc2f71ff5a15ebc"> 47</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_generic_string_stream.html">GenericStringStream</a>;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">typedef</span> <a class="code" href="structrapidjson_1_1_generic_string_stream.html">GenericStringStream&lt;UTF8&lt;char&gt;</a> &gt; <a class="code" href="structrapidjson_1_1_generic_string_stream.html">StringStream</a>;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding&gt;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a64e957c8d9d7cd15b193ffc31410038e"> 52</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_generic_insitu_string_stream.html">GenericInsituStringStream</a>;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">typedef</span> <a class="code" href="structrapidjson_1_1_generic_insitu_string_stream.html">GenericInsituStringStream&lt;UTF8&lt;char&gt;</a> &gt; <a class="code" href="structrapidjson_1_1_generic_insitu_string_stream.html">InsituStringStream</a>;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment">// stringbuffer.h</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator&gt;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21"> 59</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer&lt;UTF8&lt;char&gt;</a>, <a class="code" href="classrapidjson_1_1_crt_allocator.html">CrtAllocator</a>&gt; <a class="code" href="classrapidjson_1_1_generic_string_buffer.html">StringBuffer</a>;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment">// filereadstream.h</span></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">class </span><a class="code" href="classrapidjson_1_1_file_read_stream.html">FileReadStream</a>;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment">// filewritestream.h</span></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">class </span><a class="code" href="classrapidjson_1_1_file_write_stream.html">FileWriteStream</a>;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment">// memorybuffer.h</span></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="keyword">template</span> &lt;<span class="keyword">typename</span> Allocator&gt;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_generic_memory_buffer.html"> 74</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_generic_memory_buffer.html">GenericMemoryBuffer</a>;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keyword">typedef</span> <a class="code" href="structrapidjson_1_1_generic_memory_buffer.html">GenericMemoryBuffer&lt;CrtAllocator&gt;</a> <a class="code" href="structrapidjson_1_1_generic_memory_buffer.html">MemoryBuffer</a>;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment">// memorystream.h</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_memory_stream.html">MemoryStream</a>;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment">// reader.h</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Derived&gt;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_base_reader_handler.html"> 85</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_base_reader_handler.html">BaseReaderHandler</a>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> SourceEncoding, <span class="keyword">typename</span> TargetEncoding, <span class="keyword">typename</span> StackAllocator&gt;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ad5310edd1226f5b3ea82dc0d4d3740c6"> 88</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_reader.html">GenericReader</a>;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_reader.html">GenericReader&lt;UTF8&lt;char&gt;</a>, <a class="code" href="structrapidjson_1_1_u_t_f8.html">UTF8&lt;char&gt;</a>, <a class="code" href="classrapidjson_1_1_crt_allocator.html">CrtAllocator</a>&gt; <a class="code" href="classrapidjson_1_1_generic_reader.html">Reader</a>;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment">// writer.h</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> OutputStream, <span class="keyword">typename</span> SourceEncoding, <span class="keyword">typename</span> TargetEncoding, <span class="keyword">typename</span> StackAllocator&gt;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_writer.html"> 95</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_writer.html">Writer</a>;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="comment">// document.h</span></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;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator&gt; </div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_generic_member.html">GenericMember</a>;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="keyword">template</span> &lt;<span class="keywordtype">bool</span> Const, <span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator&gt;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_member_iterator.html">GenericMemberIterator</a>;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType&gt;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_generic_string_ref.html">GenericStringRef</a>;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator&gt; </div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_value.html">GenericValue</a>;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_value.html">GenericValue&lt;UTF8&lt;char&gt;</a>, <a class="code" href="classrapidjson_1_1_memory_pool_allocator.html">MemoryPoolAllocator&lt;CrtAllocator&gt;</a> &gt; <a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator, <span class="keyword">typename</span> StackAllocator&gt;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_document.html">GenericDocument</a>;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_document.html">GenericDocument&lt;UTF8&lt;char&gt;</a>, <a class="code" href="classrapidjson_1_1_memory_pool_allocator.html">MemoryPoolAllocator&lt;CrtAllocator&gt;</a>, <a class="code" href="classrapidjson_1_1_crt_allocator.html">CrtAllocator</a>&gt; <a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a>;</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="comment">// pointer.h</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> ValueType, <span class="keyword">typename</span> Allocator&gt;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374"> 121</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a>;</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"> 123</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_pointer.html">GenericPointer&lt;Value, CrtAllocator&gt;</a> <a class="code" href="classrapidjson_1_1_generic_pointer.html">Pointer</a>;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment">// schema.h</span></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="keyword">template</span> &lt;<span class="keyword">typename</span> SchemaDocumentType&gt;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html"> 128</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IGenericRemoteSchemaDocumentProvider</a>;</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> ValueT, <span class="keyword">typename</span> Allocator&gt;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a52bbb5d64d1319495089e1713a0653cf"> 131</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_schema_document.html">GenericSchemaDocument</a>;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_schema_document.html">GenericSchemaDocument&lt;Value, CrtAllocator&gt;</a> <a class="code" href="classrapidjson_1_1_generic_schema_document.html">SchemaDocument</a>;</div>
+<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#af91eb8eea47b79d75b23e29fa9c0abb5"> 134</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IGenericRemoteSchemaDocumentProvider&lt;SchemaDocument&gt;</a> <a class="code" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IRemoteSchemaDocumentProvider</a>;</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="keyword">template</span> &lt;</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">typename</span> SchemaDocumentType,</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">typename</span> OutputHandler,</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">typename</span> StateAllocator&gt;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_schema_validator.html"> 140</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_schema_validator.html">GenericSchemaValidator</a>;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_schema_validator.html">GenericSchemaValidator&lt;SchemaDocument, BaseReaderHandler&lt;UTF8&lt;char&gt;</a>, <span class="keywordtype">void</span>&gt;, <a class="code" href="classrapidjson_1_1_crt_allocator.html">CrtAllocator</a>&gt; <a class="code" href="classrapidjson_1_1_generic_schema_validator.html">SchemaValidator</a>;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;RAPIDJSON_NAMESPACE_END</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_RAPIDJSONFWD_H_</span></div>
+<div class="ttc" id="structrapidjson_1_1_generic_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_string_stream.html">rapidjson::GenericStringStream</a></div><div class="ttdoc">Read-only string stream. </div><div class="ttdef"><b>Definition:</b> fwd.h:47</div></div>
+<div class="ttc" id="classrapidjson_1_1_file_read_stream_html"><div class="ttname"><a href="classrapidjson_1_1_file_read_stream.html">rapidjson::FileReadStream</a></div><div class="ttdoc">File byte stream for input using fread(). </div><div class="ttdef"><b>Definition:</b> filereadstream.h:34</div></div>
+<div class="ttc" id="namespacerapidjson_html_aa65fc9fb381b2cbc54f98673eadd6505"><div class="ttname"><a href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">rapidjson::Value</a></div><div class="ttdeci">GenericValue&lt; UTF8&lt;&gt; &gt; Value</div><div class="ttdoc">GenericValue with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> document.h:1753</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_reader_html"><div class="ttname"><a href="classrapidjson_1_1_generic_reader.html">rapidjson::GenericReader</a></div><div class="ttdoc">SAX-style JSON parser. Use Reader for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> fwd.h:88</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_string_buffer_html"><div class="ttname"><a href="classrapidjson_1_1_generic_string_buffer.html">rapidjson::GenericStringBuffer</a></div><div class="ttdoc">Represents an in-memory output stream. </div><div class="ttdef"><b>Definition:</b> fwd.h:59</div></div>
+<div class="ttc" id="structrapidjson_1_1_memory_stream_html"><div class="ttname"><a href="structrapidjson_1_1_memory_stream.html">rapidjson::MemoryStream</a></div><div class="ttdoc">Represents an in-memory input byte stream. </div><div class="ttdef"><b>Definition:</b> memorystream.h:40</div></div>
+<div class="ttc" id="structrapidjson_1_1_generic_memory_buffer_html"><div class="ttname"><a href="structrapidjson_1_1_generic_memory_buffer.html">rapidjson::GenericMemoryBuffer</a></div><div class="ttdoc">Represents an in-memory output byte stream. </div><div class="ttdef"><b>Definition:</b> fwd.h:74</div></div>
+<div class="ttc" id="structrapidjson_1_1_generic_member_html"><div class="ttname"><a href="structrapidjson_1_1_generic_member.html">rapidjson::GenericMember</a></div><div class="ttdoc">Name-value pair in a JSON object value. </div><div class="ttdef"><b>Definition:</b> document.h:66</div></div>
+<div class="ttc" id="classrapidjson_1_1_crt_allocator_html"><div class="ttname"><a href="classrapidjson_1_1_crt_allocator.html">rapidjson::CrtAllocator</a></div><div class="ttdoc">C-runtime library allocator. </div><div class="ttdef"><b>Definition:</b> allocators.h:62</div></div>
+<div class="ttc" id="classrapidjson_1_1_file_write_stream_html"><div class="ttname"><a href="classrapidjson_1_1_file_write_stream.html">rapidjson::FileWriteStream</a></div><div class="ttdoc">Wrapper of C file stream for input using fread(). </div><div class="ttdef"><b>Definition:</b> filewritestream.h:32</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_pointer_html"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer</a></div><div class="ttdoc">Represents a JSON Pointer. Use Pointer for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> fwd.h:121</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_schema_document_html"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument</a></div><div class="ttdoc">JSON schema document. </div><div class="ttdef"><b>Definition:</b> fwd.h:131</div></div>
+<div class="ttc" id="classrapidjson_1_1_i_generic_remote_schema_document_provider_html"><div class="ttname"><a href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">rapidjson::IGenericRemoteSchemaDocumentProvider</a></div><div class="ttdef"><b>Definition:</b> fwd.h:128</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_document_html"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html">rapidjson::GenericDocument</a></div><div class="ttdoc">A document for parsing JSON text as DOM. </div><div class="ttdef"><b>Definition:</b> document.h:57</div></div>
+<div class="ttc" id="classrapidjson_1_1_writer_html"><div class="ttname"><a href="classrapidjson_1_1_writer.html">rapidjson::Writer</a></div><div class="ttdoc">JSON writer. </div><div class="ttdef"><b>Definition:</b> fwd.h:95</div></div>
+<div class="ttc" id="structrapidjson_1_1_base_reader_handler_html"><div class="ttname"><a href="structrapidjson_1_1_base_reader_handler.html">rapidjson::BaseReaderHandler</a></div><div class="ttdoc">Default implementation of Handler. </div><div class="ttdef"><b>Definition:</b> fwd.h:85</div></div>
+<div class="ttc" id="rapidjson_8h_html"><div class="ttname"><a href="rapidjson_8h.html">rapidjson.h</a></div><div class="ttdoc">common definitions and configuration </div></div>
+<div class="ttc" id="namespacerapidjson_html_ace11b5b575baf1cccd5ba5f8586dcdc8"><div class="ttname"><a href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">rapidjson::Document</a></div><div class="ttdeci">GenericDocument&lt; UTF8&lt;&gt; &gt; Document</div><div class="ttdoc">GenericDocument with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> document.h:2101</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_schema_validator_html"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_validator.html">rapidjson::GenericSchemaValidator</a></div><div class="ttdoc">JSON Schema Validator. </div><div class="ttdef"><b>Definition:</b> fwd.h:140</div></div>
+<div class="ttc" id="structrapidjson_1_1_u_t_f8_html"><div class="ttname"><a href="structrapidjson_1_1_u_t_f8.html">rapidjson::UTF8</a></div><div class="ttdoc">UTF-8 encoding. </div><div class="ttdef"><b>Definition:</b> encodings.h:96</div></div>
+<div class="ttc" id="structrapidjson_1_1_generic_string_ref_html"><div class="ttname"><a href="structrapidjson_1_1_generic_string_ref.html">rapidjson::GenericStringRef</a></div><div class="ttdoc">Reference to a constant string (not taking a copy) </div><div class="ttdef"><b>Definition:</b> document.h:244</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_value_html"><div class="ttname"><a href="classrapidjson_1_1_generic_value.html">rapidjson::GenericValue</a></div><div class="ttdoc">Represents a JSON value. Use Value for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> document.h:54</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_member_iterator_html"><div class="ttname"><a href="classrapidjson_1_1_generic_member_iterator.html">rapidjson::GenericMemberIterator</a></div><div class="ttdoc">(Constant) member iterator for a JSON object value </div><div class="ttdef"><b>Definition:</b> document.h:96</div></div>
+<div class="ttc" id="classrapidjson_1_1_memory_pool_allocator_html"><div class="ttname"><a href="classrapidjson_1_1_memory_pool_allocator.html">rapidjson::MemoryPoolAllocator</a></div><div class="ttdoc">Default memory allocator used by the parser and DOM. </div><div class="ttdef"><b>Definition:</b> allocators.h:102</div></div>
+<div class="ttc" id="structrapidjson_1_1_generic_insitu_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_insitu_string_stream.html">rapidjson::GenericInsituStringStream</a></div><div class="ttdoc">A read-write string stream. </div><div class="ttdef"><b>Definition:</b> fwd.h:52</div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- HTML footer for doxygen 1.8.7-->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_2e777bb85672ca91d8484c1593fb1d89.html">include</a></li><li class="navelem"><a class="el" href="dir_0b07344794a20f8375311f92e90cd9a3.html">rapidjson</a></li><li class="navelem"><b>fwd.h</b></li>
+ </ul>
+</div>
+<script type="text/javascript">
+ /* * * CONFIGURATION VARIABLES * * */
+ var disqus_shortname = 'rapidjson-doc';
+ /* * * DON'T EDIT BELOW THIS LINE * * */
+ (function() {
+ var dt = document.createElement('div');
+ dt.id = "disqus_thread";
+ (document.getElementsByClassName('contents')[0]).appendChild(dt);
+ var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
+ dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
+ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
+ })();
+</script>
+</body>
+</html>
diff --git a/zh-cn/group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html b/zh-cn/group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html
index 62593d74..078453f2 100644
--- a/zh-cn/group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html
+++ b/zh-cn/group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html
@@ -182,7 +182,7 @@ $(document).ready(function(){initNavTree('group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_
</table>
</div><div class="memdoc">
<div class="textblock"><p>Result of parsing (wraps ParseErrorCode) </p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> doc;</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> doc;</div>
<div class="line"><a class="code" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#a0f03679d5fa2736d9e351541e767fac1">ParseResult</a> ok = doc.Parse(<span class="stringliteral">&quot;[42]&quot;</span>);</div>
<div class="line"><span class="keywordflow">if</span> (!ok) {</div>
<div class="line"> fprintf(stderr, <span class="stringliteral">&quot;JSON parse error: %s (%u)&quot;</span>,</div>
diff --git a/zh-cn/hierarchy.html b/zh-cn/hierarchy.html
index 14fa78c1..03fea792 100644
--- a/zh-cn/hierarchy.html
+++ b/zh-cn/hierarchy.html
@@ -107,7 +107,7 @@ $(document).ready(function(){initNavTree('hierarchy.html','');});
<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structrapidjson_1_1_generic_memory_buffer.html" target="_self">rapidjson::GenericMemoryBuffer&lt; Allocator &gt;</a></td><td class="desc">Represents an in-memory output byte stream </td></tr>
<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrapidjson_1_1_generic_pointer.html" target="_self">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a></td><td class="desc">Represents a JSON Pointer. Use Pointer for <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding and default allocator </td></tr>
<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrapidjson_1_1_generic_reader.html" target="_self">rapidjson::GenericReader&lt; SourceEncoding, TargetEncoding, StackAllocator &gt;</a></td><td class="desc">SAX-style JSON parser. Use <a class="el" href="md_doc_sax_8zh-cn.html#Reader">Reader</a> for <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding and default allocator </td></tr>
-<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrapidjson_1_1_generic_schema_document.html" target="_self">rapidjson::GenericSchemaDocument&lt; ValueType, Allocator &gt;</a></td><td class="desc">JSON schema document </td></tr>
+<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrapidjson_1_1_generic_schema_document.html" target="_self">rapidjson::GenericSchemaDocument&lt; ValueT, Allocator &gt;</a></td><td class="desc">JSON schema document </td></tr>
<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrapidjson_1_1_generic_string_buffer.html" target="_self">rapidjson::GenericStringBuffer&lt; Encoding, Allocator &gt;</a></td><td class="desc">Represents an in-memory output stream </td></tr>
<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structrapidjson_1_1_generic_string_ref.html" target="_self">rapidjson::GenericStringRef&lt; CharType &gt;</a></td><td class="desc">Reference to a constant string (not taking a copy) </td></tr>
<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structrapidjson_1_1_generic_string_stream.html" target="_self">rapidjson::GenericStringStream&lt; Encoding &gt;</a></td><td class="desc">Read-only string stream </td></tr>
diff --git a/zh-cn/hierarchy.js b/zh-cn/hierarchy.js
index 39b2c82f..5a6bb982 100644
--- a/zh-cn/hierarchy.js
+++ b/zh-cn/hierarchy.js
@@ -17,7 +17,7 @@ var hierarchy =
[ "rapidjson::GenericMemoryBuffer< Allocator >", "structrapidjson_1_1_generic_memory_buffer.html", null ],
[ "rapidjson::GenericPointer< ValueType, Allocator >", "classrapidjson_1_1_generic_pointer.html", null ],
[ "rapidjson::GenericReader< SourceEncoding, TargetEncoding, StackAllocator >", "classrapidjson_1_1_generic_reader.html", null ],
- [ "rapidjson::GenericSchemaDocument< ValueType, Allocator >", "classrapidjson_1_1_generic_schema_document.html", null ],
+ [ "rapidjson::GenericSchemaDocument< ValueT, Allocator >", "classrapidjson_1_1_generic_schema_document.html", null ],
[ "rapidjson::GenericStringBuffer< Encoding, Allocator >", "classrapidjson_1_1_generic_string_buffer.html", null ],
[ "rapidjson::GenericStringRef< CharType >", "structrapidjson_1_1_generic_string_ref.html", null ],
[ "rapidjson::GenericStringStream< Encoding >", "structrapidjson_1_1_generic_string_stream.html", null ],
diff --git a/zh-cn/ieee754_8h_source.html b/zh-cn/ieee754_8h_source.html
index 2d56ec59..95cadb60 100644
--- a/zh-cn/ieee754_8h_source.html
+++ b/zh-cn/ieee754_8h_source.html
@@ -116,7 +116,7 @@ $(document).ready(function(){initNavTree('ieee754_8h_source.html','');});
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; Double(<span class="keywordtype">double</span> d) : d_(d) {}</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; Double(uint64_t u) : u_(u) {}</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordtype">double</span> <a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> d_; }</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordtype">double</span> <a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> d_; }</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; uint64_t Uint64Value()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> u_; }</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordtype">double</span> NextPositiveDouble()<span class="keyword"> const </span>{</div>
@@ -165,8 +165,8 @@ $(document).ready(function(){initNavTree('ieee754_8h_source.html','');});
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;RAPIDJSON_NAMESPACE_END</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_IEEE754_</span></div>
+<div class="ttc" id="namespacerapidjson_html_aa65fc9fb381b2cbc54f98673eadd6505"><div class="ttname"><a href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">rapidjson::Value</a></div><div class="ttdeci">GenericValue&lt; UTF8&lt;&gt; &gt; Value</div><div class="ttdoc">GenericValue with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> document.h:1753</div></div>
<div class="ttc" id="rapidjson_8h_html_aaee1245f375a71be1ac9b8a07ba5fb8f"><div class="ttname"><a href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a></div><div class="ttdeci">#define RAPIDJSON_UINT64_C2(high32, low32)</div><div class="ttdoc">Construct a 64-bit literal by a pair of 32-bit integer. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:288</div></div>
-<div class="ttc" id="namespacerapidjson_html_afb3fa116c66d834b6f4289d648cc8d6d"><div class="ttname"><a href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">rapidjson::Value</a></div><div class="ttdeci">GenericValue&lt; UTF8&lt;&gt; &gt; Value</div><div class="ttdoc">GenericValue with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> document.h:1753</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/zh-cn/md_doc_dom_8zh-cn.html b/zh-cn/md_doc_dom_8zh-cn.html
index 552f4173..a6eb9ce1 100644
--- a/zh-cn/md_doc_dom_8zh-cn.html
+++ b/zh-cn/md_doc_dom_8zh-cn.html
@@ -117,8 +117,8 @@ $(document).ready(function(){initNavTree('md_doc_dom_8zh-cn.html','');});
<div class="line"> <span class="comment">// ...</span></div>
<div class="line">};</div>
<div class="line"></div>
-<div class="line"><span class="keyword">typedef</span> GenericValue&lt;UTF8&lt;&gt; &gt; <a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>;</div>
-<div class="line"><span class="keyword">typedef</span> GenericDocument&lt;UTF8&lt;&gt; &gt; <a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a>;</div>
+<div class="line"><span class="keyword">typedef</span> GenericValue&lt;UTF8&lt;&gt; &gt; <a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>;</div>
+<div class="line"><span class="keyword">typedef</span> GenericDocument&lt;UTF8&lt;&gt; &gt; <a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a>;</div>
<div class="line"></div>
<div class="line">} <span class="comment">// namespace rapidjson</span></div>
</div><!-- fragment --><p>使用者可以自定义这些模板参数。</p>
@@ -254,7 +254,7 @@ Allocator</h2>
<div class="line"><span class="preprocessor">#include &quot;rapidjson/error/en.h&quot;</span></div>
<div class="line"></div>
<div class="line"><span class="comment">// ...</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> d;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> d;</div>
<div class="line"><span class="keywordflow">if</span> (d.Parse(json).HasParseError()) {</div>
<div class="line"> fprintf(stderr, <span class="stringliteral">&quot;\nError(offset %u): %s\n&quot;</span>, </div>
<div class="line"> (<span class="keywordtype">unsigned</span>)d.GetErrorOffset(),</div>
@@ -294,7 +294,7 @@ Allocator</h2>
<div class="line">fclose(fp);</div>
<div class="line"></div>
<div class="line"><span class="comment">// 原位解析buffer至d,buffer内容会被修改。</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> d;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> d;</div>
<div class="line">d.ParseInsitu(buffer);</div>
<div class="line"></div>
<div class="line"><span class="comment">// 在此查询、修改DOM……</span></div>
diff --git a/zh-cn/md_doc_faq_8zh-cn.html b/zh-cn/md_doc_faq_8zh-cn.html
index bdc7c422..2c8f228b 100644
--- a/zh-cn/md_doc_faq_8zh-cn.html
+++ b/zh-cn/md_doc_faq_8zh-cn.html
@@ -172,17 +172,17 @@ $(document).ready(function(){initNavTree('md_doc_faq_8zh-cn.html','');});
<p class="startli">调用 <code>SetXXX()</code> 方法 - 这些方法会调用析构函数,并重建空的Object或Array:</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>另外,也可以参考在 <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> 或者,使用这个稍微长一点的代码也能完成同样的事情: </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>另外,也可以参考在 <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> 或者,使用这个稍微长一点的代码也能完成同样的事情: </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">如何将一个<code>document</code>节点插入到另一个<code>document</code>中?</p>
-<p class="startli">比如有以下两个document(DOM): </p><div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> person;</div>
+<p class="startli">比如有以下两个document(DOM): </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">&quot;{\&quot;person\&quot;:{\&quot;name\&quot;:{\&quot;first\&quot;:\&quot;Adam\&quot;,\&quot;last\&quot;:\&quot;Thomas\&quot;}}}&quot;</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">&quot;{\&quot;address\&quot;:{\&quot;city\&quot;:\&quot;Moscow\&quot;,\&quot;street\&quot;:\&quot;Quiet\&quot;}}&quot;</span>);</div>
</div><!-- fragment --><p> 假设我们希望将整个 <code>address</code> 插入到<code>person</code>中,作为其的一个子节点: </p><div class="fragment"><div class="line">{ <span class="stringliteral">&quot;person&quot;</span>: {</div>
<div class="line"> <span class="stringliteral">&quot;name&quot;</span>: { <span class="stringliteral">&quot;first&quot;</span>: <span class="stringliteral">&quot;Adam&quot;</span>, <span class="stringliteral">&quot;last&quot;</span>: <span class="stringliteral">&quot;Thomas&quot;</span> },</div>
@@ -198,7 +198,7 @@ $(document).ready(function(){initNavTree('md_doc_faq_8zh-cn.html','');});
<div class="line">person[<span class="stringliteral">&quot;person&quot;</span>].AddMember(<span class="stringliteral">&quot;address&quot;</span>, address[<span class="stringliteral">&quot;address&quot;</span>], person.GetAllocator());</div>
</div><!-- fragment --><p> 当然,如果你不想通过显式地写出<code>address</code>的key来得到其值,可以使用迭代器来实现: </p><div class="fragment"><div class="line"><span class="keyword">auto</span> addressRoot = address.MemberBegin();</div>
<div class="line">person[<span class="stringliteral">&quot;person&quot;</span>].AddMember(addressRoot-&gt;name, addressRoot-&gt;value, person.GetAllocator());</div>
-</div><!-- fragment --><p>此外,还可以通过深拷贝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">&quot;address&quot;</span>], person.GetAllocator());</div>
+</div><!-- fragment --><p>此外,还可以通过深拷贝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">&quot;address&quot;</span>], person.GetAllocator());</div>
<div class="line">person[<span class="stringliteral">&quot;person&quot;</span>].AddMember(<span class="stringliteral">&quot;address&quot;</span>, addressValue, person.GetAllocator());</div>
</div><!-- fragment --><h2>Document/Value (DOM)</h2>
<ol type="1">
diff --git a/zh-cn/md_doc_pointer_8zh-cn.html b/zh-cn/md_doc_pointer_8zh-cn.html
index 1604853d..5878fae8 100644
--- a/zh-cn/md_doc_pointer_8zh-cn.html
+++ b/zh-cn/md_doc_pointer_8zh-cn.html
@@ -121,39 +121,39 @@ JSON Pointer</h1>
<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;rapidjson/pointer.h&quot;</span></div>
<div class="line"></div>
<div class="line"><span class="comment">// ...</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> d;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> d;</div>
<div class="line"></div>
<div class="line"><span class="comment">// 使用 Set() 创建 DOM</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">Pointer</a>(<span class="stringliteral">&quot;/project&quot;</span>).Set(d, <span class="stringliteral">&quot;RapidJSON&quot;</span>);</div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">Pointer</a>(<span class="stringliteral">&quot;/stars&quot;</span>).Set(d, 10);</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">Pointer</a>(<span class="stringliteral">&quot;/project&quot;</span>).Set(d, <span class="stringliteral">&quot;RapidJSON&quot;</span>);</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">Pointer</a>(<span class="stringliteral">&quot;/stars&quot;</span>).Set(d, 10);</div>
<div class="line"></div>
<div class="line"><span class="comment">// { &quot;project&quot; : &quot;RapidJSON&quot;, &quot;stars&quot; : 10 }</span></div>
<div class="line"></div>
<div class="line"><span class="comment">// 使用 Get() 访问 DOM。若该值不存在则返回 nullptr。</span></div>
-<div class="line"><span class="keywordflow">if</span> (<a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>* stars = <a class="code" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">Pointer</a>(<span class="stringliteral">&quot;/stars&quot;</span>).Get(d))</div>
+<div class="line"><span class="keywordflow">if</span> (<a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>* stars = <a class="code" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">Pointer</a>(<span class="stringliteral">&quot;/stars&quot;</span>).Get(d))</div>
<div class="line"> stars-&gt;SetInt(stars-&gt;GetInt() + 1);</div>
<div class="line"></div>
<div class="line"><span class="comment">// { &quot;project&quot; : &quot;RapidJSON&quot;, &quot;stars&quot; : 11 }</span></div>
<div class="line"></div>
<div class="line"><span class="comment">// Set() 和 Create() 自动生成父值(如果它们不存在)。</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">Pointer</a>(<span class="stringliteral">&quot;/a/b/0&quot;</span>).Create(d);</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">Pointer</a>(<span class="stringliteral">&quot;/a/b/0&quot;</span>).Create(d);</div>
<div class="line"></div>
<div class="line"><span class="comment">// { &quot;project&quot; : &quot;RapidJSON&quot;, &quot;stars&quot; : 11, &quot;a&quot; : { &quot;b&quot; : [ null ] } }</span></div>
<div class="line"></div>
<div class="line"><span class="comment">// GetWithDefault() 返回引用。若该值不存在则会深拷贝缺省值。</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>&amp; hello = <a class="code" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">Pointer</a>(<span class="stringliteral">&quot;/hello&quot;</span>).GetWithDefault(d, <span class="stringliteral">&quot;world&quot;</span>);</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>&amp; hello = <a class="code" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">Pointer</a>(<span class="stringliteral">&quot;/hello&quot;</span>).GetWithDefault(d, <span class="stringliteral">&quot;world&quot;</span>);</div>
<div class="line"></div>
<div class="line"><span class="comment">// { &quot;project&quot; : &quot;RapidJSON&quot;, &quot;stars&quot; : 11, &quot;a&quot; : { &quot;b&quot; : [ null ] }, &quot;hello&quot; : &quot;world&quot; }</span></div>
<div class="line"></div>
<div class="line"><span class="comment">// Swap() 和 Set() 相似</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> x(<span class="stringliteral">&quot;C++&quot;</span>);</div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">Pointer</a>(<span class="stringliteral">&quot;/hello&quot;</span>).Swap(d, x);</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> x(<span class="stringliteral">&quot;C++&quot;</span>);</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">Pointer</a>(<span class="stringliteral">&quot;/hello&quot;</span>).Swap(d, x);</div>
<div class="line"></div>
<div class="line"><span class="comment">// { &quot;project&quot; : &quot;RapidJSON&quot;, &quot;stars&quot; : 11, &quot;a&quot; : { &quot;b&quot; : [ null ] }, &quot;hello&quot; : &quot;C++&quot; }</span></div>
<div class="line"><span class="comment">// x 变成 &quot;world&quot;</span></div>
<div class="line"></div>
<div class="line"><span class="comment">// 删去一个成员或元素,若值存在返回 true</span></div>
-<div class="line"><span class="keywordtype">bool</span> success = <a class="code" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">Pointer</a>(<span class="stringliteral">&quot;/a&quot;</span>).Erase(d);</div>
+<div class="line"><span class="keywordtype">bool</span> success = <a class="code" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">Pointer</a>(<span class="stringliteral">&quot;/a&quot;</span>).Erase(d);</div>
<div class="line">assert(success);</div>
<div class="line"></div>
<div class="line"><span class="comment">// { &quot;project&quot; : &quot;RapidJSON&quot;, &quot;stars&quot; : 10 }</span></div>
@@ -161,19 +161,19 @@ JSON Pointer</h1>
辅助函数</h1>
<p>由于面向对象的调用习惯可能不符直觉,RapidJSON 也提供了一些辅助函数,它们把成员函数包装成自由函数。</p>
<p>以下的例子与上面例子所做的事情完全相同。</p>
-<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">SetValueByPointer(d, <span class="stringliteral">&quot;/project&quot;</span>, <span class="stringliteral">&quot;RapidJSON&quot;</span>);</div>
<div class="line">SetValueByPointer(d, <span class="stringliteral">&quot;/stars&quot;</span>, 10);</div>
<div class="line"></div>
-<div class="line"><span class="keywordflow">if</span> (<a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>* stars = GetValueByPointer(d, <span class="stringliteral">&quot;/stars&quot;</span>))</div>
+<div class="line"><span class="keywordflow">if</span> (<a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>* stars = GetValueByPointer(d, <span class="stringliteral">&quot;/stars&quot;</span>))</div>
<div class="line"> stars-&gt;SetInt(stars-&gt;GetInt() + 1);</div>
<div class="line"></div>
<div class="line">CreateValueByPointer(d, <span class="stringliteral">&quot;/a/b/0&quot;</span>);</div>
<div class="line"></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>&amp; hello = GetValueByPointerWithDefault(d, <span class="stringliteral">&quot;/hello&quot;</span>, <span class="stringliteral">&quot;world&quot;</span>);</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>&amp; hello = GetValueByPointerWithDefault(d, <span class="stringliteral">&quot;/hello&quot;</span>, <span class="stringliteral">&quot;world&quot;</span>);</div>
<div class="line"></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> x(<span class="stringliteral">&quot;C++&quot;</span>);</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> x(<span class="stringliteral">&quot;C++&quot;</span>);</div>
<div class="line">SwapValueByPointer(d, <span class="stringliteral">&quot;/hello&quot;</span>, x);</div>
<div class="line"></div>
<div class="line"><span class="keywordtype">bool</span> success = EraseValueByPointer(d, <span class="stringliteral">&quot;/a&quot;</span>);</div>
@@ -202,7 +202,7 @@ JSON Pointer</h1>
<div class="fragment"><div class="line">SetValueByPointer(d, <span class="stringliteral">&quot;1/a&quot;</span>, 789); <span class="comment">// { &quot;0&quot; : 123, &quot;1&quot; : { &quot;a&quot; : 789 } }</span></div>
</div><!-- fragment --><h2>解析负号 token</h2>
<p>另外,<a href="https://tools.ietf.org/html/rfc6901">RFC6901</a> 定义了一个特殊 token <code>-</code> (单个负号),用于表示数组最后元素的下一个元素。 <code>Get()</code> 只会把此 token 当作成员名字 '"-"'。而其他函数则会以此解析数组,等同于对数组调用 <code>Value::PushBack()</code> 。</p>
-<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">d.Parse(<span class="stringliteral">&quot;{\&quot;foo\&quot;:[123]}&quot;</span>);</div>
<div class="line">SetValueByPointer(d, <span class="stringliteral">&quot;/foo/-&quot;</span>, 456); <span class="comment">// { &quot;foo&quot; : [123, 456] }</span></div>
<div class="line">SetValueByPointer(d, <span class="stringliteral">&quot;/-&quot;</span>, 789); <span class="comment">// { &quot;foo&quot; : [123, 456], &quot;-&quot; : 789 }</span></div>
@@ -213,14 +213,14 @@ JSON Pointer</h1>
<div class="fragment"><div class="line"><span class="keyword">class </span>Person {</div>
<div class="line"><span class="keyword">public</span>:</div>
<div class="line"> Person() {</div>
-<div class="line"> document_ = <span class="keyword">new</span> <a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a>();</div>
+<div class="line"> document_ = <span class="keyword">new</span> <a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a>();</div>
<div class="line"> <span class="comment">// CreateValueByPointer() here no need allocator</span></div>
<div class="line"> SetLocation(CreateValueByPointer(*document_, <span class="stringliteral">&quot;/residence&quot;</span>), ...);</div>
<div class="line"> SetLocation(CreateValueByPointer(*document_, <span class="stringliteral">&quot;/office&quot;</span>), ...);</div>
<div class="line"> };</div>
<div class="line"></div>
<div class="line"><span class="keyword">private</span>:</div>
-<div class="line"> <span class="keywordtype">void</span> SetLocation(<a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>&amp; location, <span class="keyword">const</span> <span class="keywordtype">char</span>* country, <span class="keyword">const</span> <span class="keywordtype">char</span>* addresses[2]) {</div>
+<div class="line"> <span class="keywordtype">void</span> SetLocation(<a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>&amp; location, <span class="keyword">const</span> <span class="keywordtype">char</span>* country, <span class="keyword">const</span> <span class="keywordtype">char</span>* addresses[2]) {</div>
<div class="line"> Value::Allocator&amp; a = document_-&gt;GetAllocator();</div>
<div class="line"> <span class="comment">// SetValueByPointer() here need allocator</span></div>
<div class="line"> SetValueByPointer(location, <span class="stringliteral">&quot;/country&quot;</span>, country, a);</div>
@@ -230,7 +230,7 @@ JSON Pointer</h1>
<div class="line"></div>
<div class="line"> <span class="comment">// ...</span></div>
<div class="line"></div>
-<div class="line"> <a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a>* document_;</div>
+<div class="line"> <a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a>* document_;</div>
<div class="line">};</div>
</div><!-- fragment --><p><code>Erase()</code> 或 <code>EraseValueByPointer()</code> 不需要 allocator。而且它们成功删除值之后会返回 <code>true</code>。</p>
<h1><a class="anchor" id="ErrorHandling"></a>
@@ -260,8 +260,8 @@ URI 片段表示方式</h1>
<p>RapidJSON 完全支持 URI 片段表示方式。它在解译时会自动检测 <code>#</code> 号。</p>
<h1>字符串化</h1>
<p>你也可以把一个 <code>Pointer</code> 字符串化,储存于字符串或其他输出流。例如:</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">Pointer</a> p(...);</div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a51a6c35028b76e354bbb9e25d7125641">StringBuffer</a> sb;</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">Pointer</a> p(...);</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21">StringBuffer</a> sb;</div>
<div class="line">p.Stringify(sb);</div>
<div class="line">std::cout &lt;&lt; sb.GetString() &lt;&lt; std::endl;</div>
</div><!-- fragment --><p>使用 <code>StringifyUriFragment()</code> 可以把 pointer 字符串化为 URI 片段表示法。</p>
@@ -273,7 +273,7 @@ URI 片段表示方式</h1>
<div class="line"><span class="preprocessor">#define INDEX(i) { #i, sizeof(#i) - 1, i }</span></div>
<div class="line"></div>
<div class="line"><span class="keyword">static</span> <span class="keyword">const</span> Pointer::Token kTokens[] = { NAME(<span class="stringliteral">&quot;foo&quot;</span>), INDEX(123) };</div>
-<div class="line"><span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">Pointer</a> p(kTokens, <span class="keyword">sizeof</span>(kTokens) / <span class="keyword">sizeof</span>(kTokens[0]));</div>
+<div class="line"><span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">Pointer</a> p(kTokens, <span class="keyword">sizeof</span>(kTokens) / <span class="keyword">sizeof</span>(kTokens[0]));</div>
<div class="line"><span class="comment">// Equivalent to static const Pointer p(&quot;/foo/123&quot;);</span></div>
</div><!-- fragment --><p>这种做法可能适合内存受限的系统。 </p>
</div></div><!-- contents -->
diff --git a/zh-cn/md_doc_sax_8zh-cn.html b/zh-cn/md_doc_sax_8zh-cn.html
index af2817ee..352c4bf1 100644
--- a/zh-cn/md_doc_sax_8zh-cn.html
+++ b/zh-cn/md_doc_sax_8zh-cn.html
@@ -212,7 +212,7 @@ GenericReader</h2>
<div class="line"> <span class="comment">// ...</span></div>
<div class="line">};</div>
<div class="line"></div>
-<div class="line"><span class="keyword">typedef</span> GenericReader&lt;UTF8&lt;&gt;, UTF8&lt;&gt; &gt; <a class="code" href="namespacerapidjson.html#a4eaef42a208413d1f2c8d4655ecec52d">Reader</a>;</div>
+<div class="line"><span class="keyword">typedef</span> GenericReader&lt;UTF8&lt;&gt;, UTF8&lt;&gt; &gt; <a class="code" href="namespacerapidjson.html#ad5310edd1226f5b3ea82dc0d4d3740c6">Reader</a>;</div>
<div class="line"></div>
<div class="line">} <span class="comment">// namespace rapidjson</span></div>
</div><!-- fragment --><p><code>Reader</code>使用UTF-8作为来源及目标编码。来源编码是指JSON流的编码。目标编码是指<code>String()</code>的<code>str</code>参数所用的编码。例如,要解析一个UTF-8流并输出至UTF-16 string事件,你需要这么定义一个reader:</p>
@@ -257,7 +257,7 @@ Writer</h1>
<div class="line"> writer.Key(<span class="stringliteral">&quot;i&quot;</span>);</div>
<div class="line"> writer.Uint(123);</div>
<div class="line"> writer.Key(<span class="stringliteral">&quot;pi&quot;</span>);</div>
-<div class="line"> writer.<a class="code" href="classrapidjson_1_1_writer.html#ad5f042d9c1a8ce5be2d52e18255b4390">Double</a>(3.1416);</div>
+<div class="line"> writer.Double(3.1416);</div>
<div class="line"> writer.Key(<span class="stringliteral">&quot;a&quot;</span>);</div>
<div class="line"> writer.StartArray();</div>
<div class="line"> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i &lt; 4; i++)</div>
diff --git a/zh-cn/md_doc_schema_8zh-cn.html b/zh-cn/md_doc_schema_8zh-cn.html
index c011d63e..58fe8997 100644
--- a/zh-cn/md_doc_schema_8zh-cn.html
+++ b/zh-cn/md_doc_schema_8zh-cn.html
@@ -98,15 +98,15 @@ $(document).ready(function(){initNavTree('md_doc_schema_8zh-cn.html','');});
<div class="line"></div>
<div class="line"><span class="comment">// ...</span></div>
<div class="line"></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> sd;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> sd;</div>
<div class="line"><span class="keywordflow">if</span> (!sd.Parse(schemaJson)) {</div>
<div class="line"> <span class="comment">// the schema is not a valid JSON.</span></div>
<div class="line"> <span class="comment">// ... </span></div>
<div class="line">}</div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a1039ee639733008423fd0dfb67122e54">SchemaDocument</a> schema(sd); <span class="comment">// Compile a Document to SchemaDocument</span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#a52bbb5d64d1319495089e1713a0653cf">SchemaDocument</a> schema(sd); <span class="comment">// Compile a Document to SchemaDocument</span></div>
<div class="line"><span class="comment">// sd is no longer needed here.</span></div>
<div class="line"></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> d;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> d;</div>
<div class="line"><span class="keywordflow">if</span> (!d.Parse(inputJson)) {</div>
<div class="line"> <span class="comment">// the input is not a valid JSON.</span></div>
<div class="line"> <span class="comment">// ... </span></div>
@@ -116,7 +116,7 @@ $(document).ready(function(){initNavTree('md_doc_schema_8zh-cn.html','');});
<div class="line"><span class="keywordflow">if</span> (!d.Accept(validator)) {</div>
<div class="line"> <span class="comment">// Input JSON is invalid according to the schema</span></div>
<div class="line"> <span class="comment">// Output diagnostic information</span></div>
-<div class="line"> <a class="code" href="namespacerapidjson.html#a51a6c35028b76e354bbb9e25d7125641">StringBuffer</a> sb;</div>
+<div class="line"> <a class="code" href="namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21">StringBuffer</a> sb;</div>
<div class="line"> validator.GetInvalidSchemaPointer().StringifyUriFragment(sb);</div>
<div class="line"> printf(<span class="stringliteral">&quot;Invalid schema: %s\n&quot;</span>, sb.GetString());</div>
<div class="line"> printf(<span class="stringliteral">&quot;Invalid keyword: %s\n&quot;</span>, validator.GetInvalidSchemaKeyword());</div>
@@ -136,14 +136,14 @@ $(document).ready(function(){initNavTree('md_doc_schema_8zh-cn.html','');});
<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;rapidjson/filereadstream.h&quot;</span></div>
<div class="line"></div>
<div class="line"><span class="comment">// ...</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a1039ee639733008423fd0dfb67122e54">SchemaDocument</a> schema(sd); <span class="comment">// Compile a Document to SchemaDocument</span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#a52bbb5d64d1319495089e1713a0653cf">SchemaDocument</a> schema(sd); <span class="comment">// Compile a Document to SchemaDocument</span></div>
<div class="line"></div>
<div class="line"><span class="comment">// Use reader to parse the JSON</span></div>
<div class="line">FILE* fp = fopen(<span class="stringliteral">&quot;big.json&quot;</span>, <span class="stringliteral">&quot;r&quot;</span>);</div>
<div class="line">FileReadStream is(fp, buffer, <span class="keyword">sizeof</span>(buffer));</div>
<div class="line"></div>
<div class="line"><span class="comment">// Parse JSON from reader, validate the SAX events, and store in d.</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> d;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> d;</div>
<div class="line">SchemaValidatingReader&lt;kParseDefaultFlags, FileReadStream, UTF8&lt;&gt; &gt; reader(is, schema);</div>
<div class="line">d.Populate(reader);</div>
<div class="line"></div>
@@ -158,7 +158,7 @@ $(document).ready(function(){initNavTree('md_doc_schema_8zh-cn.html','');});
<div class="line"> <span class="keywordflow">if</span> (!reader.IsValid()) {</div>
<div class="line"> <span class="comment">// Input JSON is invalid according to the schema</span></div>
<div class="line"> <span class="comment">// Output diagnostic information</span></div>
-<div class="line"> <a class="code" href="namespacerapidjson.html#a51a6c35028b76e354bbb9e25d7125641">StringBuffer</a> sb;</div>
+<div class="line"> <a class="code" href="namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21">StringBuffer</a> sb;</div>
<div class="line"> reader.GetInvalidSchemaPointer().StringifyUriFragment(sb);</div>
<div class="line"> printf(<span class="stringliteral">&quot;Invalid schema: %s\n&quot;</span>, sb.GetString());</div>
<div class="line"> printf(<span class="stringliteral">&quot;Invalid keyword: %s\n&quot;</span>, reader.GetInvalidSchemaKeyword());</div>
@@ -170,7 +170,7 @@ $(document).ready(function(){initNavTree('md_doc_schema_8zh-cn.html','');});
</div><!-- fragment --><h3>SAX 解析</h3>
<p>使用 SAX 解析时,情况就简单得多。若只需要校验 JSON 而无需进一步处理,那么仅需要:</p>
<div class="fragment"><div class="line">SchemaValidator validator(schema);</div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a4eaef42a208413d1f2c8d4655ecec52d">Reader</a> reader;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ad5310edd1226f5b3ea82dc0d4d3740c6">Reader</a> reader;</div>
<div class="line"><span class="keywordflow">if</span> (!reader.Parse(stream, validator)) {</div>
<div class="line"> <span class="keywordflow">if</span> (!validator.IsValid()) {</div>
<div class="line"> <span class="comment">// ... </span></div>
@@ -180,7 +180,7 @@ $(document).ready(function(){initNavTree('md_doc_schema_8zh-cn.html','');});
<p>若你需要进一步处理 SAX 事件,便可使用模板类 <code>GenericSchemaValidator</code> 去设置校验器的输出 <code>Handler</code>:</p>
<div class="fragment"><div class="line">MyHandler handler;</div>
<div class="line">GenericSchemaValidator&lt;SchemaDocument, MyHandler&gt; validator(schema, handler);</div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a4eaef42a208413d1f2c8d4655ecec52d">Reader</a> reader;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ad5310edd1226f5b3ea82dc0d4d3740c6">Reader</a> reader;</div>
<div class="line"><span class="keywordflow">if</span> (!reader.Parse(ss, validator)) {</div>
<div class="line"> <span class="keywordflow">if</span> (!validator.IsValid()) {</div>
<div class="line"> <span class="comment">// ... </span></div>
@@ -188,7 +188,7 @@ $(document).ready(function(){initNavTree('md_doc_schema_8zh-cn.html','');});
<div class="line">}</div>
</div><!-- fragment --><h3>生成</h3>
<p>我们也可以在生成(serialization)的时候进行校验。这能确保输出的 JSON 符合一个 JSON Schema。</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#a51a6c35028b76e354bbb9e25d7125641">StringBuffer</a> sb;</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21">StringBuffer</a> sb;</div>
<div class="line">Writer&lt;StringBuffer&gt; writer(sb);</div>
<div class="line">GenericSchemaValidator&lt;SchemaDocument, Writer&lt;StringBuffer&gt; &gt; validator(s, writer);</div>
<div class="line"><span class="keywordflow">if</span> (!d.Accept(validator)) {</div>
@@ -202,9 +202,9 @@ $(document).ready(function(){initNavTree('md_doc_schema_8zh-cn.html','');});
<p>JSON Schema 支持 <a href="http://spacetelescope.github.io/understanding-json-schema/structuring.html">`$ref` 关键字</a>,它是一个JSON pointer 引用至一个本地(local)或远程(remote) schema。本地指针的首字符是 <code>#</code>,而远程指针是一个相对或绝对 URI。例如:</p>
<div class="fragment"><div class="line">{ <span class="stringliteral">&quot;$ref&quot;</span>: <span class="stringliteral">&quot;definitions.json#/address&quot;</span> }</div>
</div><!-- fragment --><p>由于 <code>SchemaValidator</code> 并不知道如何处理那些 URI,它需要使用者提供一个 <code>IRemoteSchemaDocumentProvider</code> 的实例去处理。</p>
-<div class="fragment"><div class="line"><span class="keyword">class </span>MyRemoteSchemaDocumentProvider : <span class="keyword">public</span> <a class="code" href="namespacerapidjson.html#a735a06a6e822111798e302c2f3af3de9">IRemoteSchemaDocumentProvider</a> {</div>
+<div class="fragment"><div class="line"><span class="keyword">class </span>MyRemoteSchemaDocumentProvider : <span class="keyword">public</span> <a class="code" href="namespacerapidjson.html#af91eb8eea47b79d75b23e29fa9c0abb5">IRemoteSchemaDocumentProvider</a> {</div>
<div class="line"><span class="keyword">public</span>:</div>
-<div class="line"> <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#a1039ee639733008423fd0dfb67122e54">SchemaDocument</a>* GetRemoteDocument(<span class="keyword">const</span> <span class="keywordtype">char</span>* uri, SizeTyp length) {</div>
+<div class="line"> <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#a52bbb5d64d1319495089e1713a0653cf">SchemaDocument</a>* GetRemoteDocument(<span class="keyword">const</span> <span class="keywordtype">char</span>* uri, SizeTyp length) {</div>
<div class="line"> <span class="comment">// Resolve the uri and returns a pointer to that schema.</span></div>
<div class="line"> }</div>
<div class="line">};</div>
diff --git a/zh-cn/md_doc_stream_8zh-cn.html b/zh-cn/md_doc_stream_8zh-cn.html
index 495ec027..fb94edc9 100644
--- a/zh-cn/md_doc_stream_8zh-cn.html
+++ b/zh-cn/md_doc_stream_8zh-cn.html
@@ -130,7 +130,7 @@ StringStream(输入)</h2>
</div><!-- fragment --><p>由于这是非常常用的用法,RapidJSON提供<code>Document::Parse(const char*)</code>去做完全相同的事情:</p>
<div class="fragment"><div class="line"><span class="comment">// ...</span></div>
<div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span> json[] = <span class="stringliteral">&quot;[1, 2, 3, 4]&quot;</span>;</div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> d;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> d;</div>
<div class="line">d.Parse(json);</div>
</div><!-- fragment --><p>需要注意,<code>StringStream</code>是<code>GenericStringStream&lt;UTF8&lt;&gt; &gt;</code>的typedef,使用者可用其他编码类去代表流所使用的字符集。</p>
<h2><a class="anchor" id="StringBuffer"></a>
@@ -138,14 +138,14 @@ StringBuffer(输出)</h2>
<p><code>StringBuffer</code>是一个简单的输出流。它分配一个内存缓冲区,供写入整个JSON。可使用<code>GetString()</code>来获取该缓冲区。</p>
<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;rapidjson/stringbuffer.h&quot;</span></div>
<div class="line"></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a51a6c35028b76e354bbb9e25d7125641">StringBuffer</a> buffer;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21">StringBuffer</a> buffer;</div>
<div class="line">Writer&lt;StringBuffer&gt; writer(buffer);</div>
<div class="line">d.Accept(writer);</div>
<div class="line"></div>
<div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span>* output = buffer.GetString();</div>
</div><!-- fragment --><p>当缓冲区满溢,它将自动增加容量。缺省容量是256个字符(UTF8是256字节,UTF16是512字节等)。使用者能自行提供分配器及初始容量。</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#a51a6c35028b76e354bbb9e25d7125641">StringBuffer</a> buffer1(0, 1024); <span class="comment">// 使用它的分配器,初始大小 = 1024</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a51a6c35028b76e354bbb9e25d7125641">StringBuffer</a> buffer2(allocator, 1024);</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21">StringBuffer</a> buffer1(0, 1024); <span class="comment">// 使用它的分配器,初始大小 = 1024</span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21">StringBuffer</a> buffer2(allocator, 1024);</div>
</div><!-- fragment --><p>如无设置分配器,<code>StringBuffer</code>会自行实例化一个内部分配器。</p>
<p>相似地,<code>StringBuffer</code>是<code>GenericStringBuffer&lt;UTF8&lt;&gt; &gt;</code>的typedef。</p>
<h1><a class="anchor" id="FileStreams"></a>
@@ -228,7 +228,7 @@ EncodedOutputStream</h2>
<div class="line"><span class="preprocessor">#include &quot;rapidjson/encodedstream.h&quot;</span> <span class="comment">// EncodedOutputStream</span></div>
<div class="line"><span class="preprocessor">#include &lt;cstdio&gt;</span></div>
<div class="line"></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> d; <span class="comment">// Document为GenericDocument&lt;UTF8&lt;&gt; &gt; </span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> d; <span class="comment">// Document为GenericDocument&lt;UTF8&lt;&gt; &gt; </span></div>
<div class="line"><span class="comment">// ...</span></div>
<div class="line"></div>
<div class="line">FILE* fp = fopen(<span class="stringliteral">&quot;output_utf32le.json&quot;</span>, <span class="stringliteral">&quot;wb&quot;</span>); <span class="comment">// 非Windows平台使用&quot;w&quot;</span></div>
@@ -354,7 +354,7 @@ AutoUTFOutputStream</h2>
<div class="line">std::stringstream ss(json);</div>
<div class="line">IStreamWrapper is(ss);</div>
<div class="line"></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> d;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> d;</div>
<div class="line">d.<a class="code" href="classrapidjson_1_1_generic_document.html#a3ae97682cf04685c7db9d89ebc399b85">ParseStream</a>(is);</div>
</div><!-- fragment --><p>但要注意,由于标准库的内部开销问,此实现的性能可能不如RapidJSON的内存/文件流。</p>
<h2><a class="anchor" id="ExampleOStreamWrapper"></a>
@@ -383,7 +383,7 @@ AutoUTFOutputStream</h2>
<div class="line"> std::ostream&amp; os_;</div>
<div class="line">};</div>
</div><!-- fragment --><p>使用者能用它来包装<code>std::stringstream</code>、<code>std::ofstream</code>的实例。</p>
-<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"><span class="comment">// ...</span></div>
<div class="line"></div>
<div class="line">std::stringstream ss;</div>
diff --git a/zh-cn/md_doc_tutorial_8zh-cn.html b/zh-cn/md_doc_tutorial_8zh-cn.html
index fa597477..073025bd 100644
--- a/zh-cn/md_doc_tutorial_8zh-cn.html
+++ b/zh-cn/md_doc_tutorial_8zh-cn.html
@@ -163,7 +163,7 @@ Value 及 Document</h1>
</div><!-- fragment --><div class="fragment"><div class="line">i = 123</div>
<div class="line">pi = 3.1416</div>
</div><!-- fragment --><p>JSON Array包含一些元素。 </p><div class="fragment"><div class="line"><span class="comment">// 使用引用来连续访问,方便之余还更高效。</span></div>
-<div class="line"><span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>&amp; a = document[<span class="stringliteral">&quot;a&quot;</span>];</div>
+<div class="line"><span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>&amp; a = document[<span class="stringliteral">&quot;a&quot;</span>];</div>
<div class="line">assert(a.IsArray());</div>
<div class="line"><span class="keywordflow">for</span> (<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> i = 0; i &lt; a.Size(); i++) <span class="comment">// 使用 SizeType 而不是 size_t</span></div>
<div class="line"> printf(<span class="stringliteral">&quot;a[%d] = %d\n&quot;</span>, i, a[i].GetInt());</div>
@@ -271,26 +271,26 @@ Value 及 Document</h1>
<h2><a class="anchor" id="ChangeValueType"></a>
改变Value类型</h2>
<p>当使用默认构造函数创建一个Value或Document,它的类型便会是Null。要改变其类型,需调用<code>SetXXX()</code>或赋值操作,例如:</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> d; <span class="comment">// Null</span></div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> d; <span class="comment">// Null</span></div>
<div class="line">d.SetObject();</div>
<div class="line"></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> v; <span class="comment">// Null</span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> v; <span class="comment">// Null</span></div>
<div class="line">v.SetInt(10);</div>
<div class="line">v = 10; <span class="comment">// 简写,和上面的相同</span></div>
</div><!-- fragment --><h3>构造函数的各个重载</h3>
<p>几个类型也有重载构造函数:</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> b(<span class="keyword">true</span>); <span class="comment">// 调用Value(bool)</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> i(-123); <span class="comment">// 调用 Value(int)</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> u(123u); <span class="comment">// 调用Value(unsigned)</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> d(1.5); <span class="comment">// 调用Value(double)</span></div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> b(<span class="keyword">true</span>); <span class="comment">// 调用Value(bool)</span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> i(-123); <span class="comment">// 调用 Value(int)</span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> u(123u); <span class="comment">// 调用Value(unsigned)</span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> d(1.5); <span class="comment">// 调用Value(double)</span></div>
</div><!-- fragment --><p>要重建空Object或Array,可在默认构造函数后使用 <code>SetObject()</code>/<code>SetArray()</code>,或一次性使用<code>Value(Type)</code>:</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> o(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">kObjectType</a>);</div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> a(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">kArrayType</a>);</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> o(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">kObjectType</a>);</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> a(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">kArrayType</a>);</div>
</div><!-- fragment --><h2><a class="anchor" id="MoveSemantics"></a>
转移语意(Move Semantics)</h2>
<p>在设计RapidJSON时有一个非常特别的决定,就是Value赋值并不是把来源Value复制至目的Value,而是把把来源Value转移(move)至目的Value。例如:</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> a(123);</div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> b(456);</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> a(123);</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> b(456);</div>
<div class="line">b = a; <span class="comment">// a变成Null,b变成数字123。</span></div>
</div><!-- fragment --><div class="image">
<img src="move1.png" alt="move1.png"/>
@@ -299,9 +299,9 @@ Value 及 Document</h1>
<p> 为什么?此语意有何优点?</p>
<p>最简单的答案就是性能。对于固定大小的JSON类型(Number、True、False、Null),复制它们是简单快捷。然而,对于可变大小的JSON类型(String、Array、Object),复制它们会产生大量开销,而且这些开销常常不被察觉。尤其是当我们需要创建临时Object,把它复制至另一变量,然后再析构它。</p>
<p>例如,若使用正常*复制*语意:</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> o(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">kObjectType</a>);</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> o(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">kObjectType</a>);</div>
<div class="line">{</div>
-<div class="line"> <a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> contacts(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">kArrayType</a>);</div>
+<div class="line"> <a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> contacts(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">kArrayType</a>);</div>
<div class="line"> <span class="comment">// 把元素加进contacts数组。</span></div>
<div class="line"> <span class="comment">// ...</span></div>
<div class="line"> o.AddMember(<span class="stringliteral">&quot;contacts&quot;</span>, contacts, d.GetAllocator()); <span class="comment">// 深度复制contacts (可能有大量内存分配)</span></div>
@@ -315,9 +315,9 @@ Value 及 Document</h1>
<p>有一些方案可避免实质地复制这些数据,例如引用计数(reference counting)、垃圾回收(garbage collection, GC)。</p>
<p>为了使RapidJSON简单及快速,我们选择了对赋值采用*转移*语意。这方法与<code>std::auto_ptr</code>相似,都是在赋值时转移拥有权。转移快得多简单得多,只需要析构原来的Value,把来源<code>memcpy()</code>至目标,最后把来源设置为Null类型。</p>
<p>因此,使用转移语意后,上面的例子变成:</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> o(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">kObjectType</a>);</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> o(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">kObjectType</a>);</div>
<div class="line">{</div>
-<div class="line"> <a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> contacts(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">kArrayType</a>);</div>
+<div class="line"> <a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> contacts(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">kArrayType</a>);</div>
<div class="line"> <span class="comment">// adding elements to contacts array.</span></div>
<div class="line"> o.AddMember(<span class="stringliteral">&quot;contacts&quot;</span>, contacts, d.GetAllocator()); <span class="comment">// 只需 memcpy() contacts本身至新成员的Value(16字节)</span></div>
<div class="line"> <span class="comment">// contacts在这里变成Null。它的析构是平凡的。</span></div>
@@ -330,11 +330,11 @@ Value 及 Document</h1>
<h3><a class="anchor" id="TemporaryValues"></a>
转移语意及临时值</h3>
<p>有时候,我们想直接构造一个Value并传递给一个“转移”函数(如<code>PushBack()</code>、<code>AddMember()</code>)。由于临时对象是不能转换为正常的Value引用,我们加入了一个方便的<code>Move()</code>函数:</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> a(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">kArrayType</a>);</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> a(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">kArrayType</a>);</div>
<div class="line">Document::AllocatorType&amp; allocator = document.GetAllocator();</div>
<div class="line"><span class="comment">// a.PushBack(Value(42), allocator); // 不能通过编译</span></div>
-<div class="line">a.PushBack(<a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>().SetInt(42), allocator); <span class="comment">// fluent API</span></div>
-<div class="line">a.PushBack(<a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>(42).Move(), allocator); <span class="comment">// 和上一行相同</span></div>
+<div class="line">a.PushBack(<a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>().SetInt(42), allocator); <span class="comment">// fluent API</span></div>
+<div class="line">a.PushBack(<a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>(42).Move(), allocator); <span class="comment">// 和上一行相同</span></div>
</div><!-- fragment --><h2><a class="anchor" id="CreateString"></a>
创建String</h2>
<p>RapidJSON提供两个String的存储策略。</p>
@@ -345,8 +345,8 @@ Value 及 Document</h1>
<p>Copy-string总是安全的,因为它拥有数据的克隆。Const-string可用于存储字符串字面量,以及用于在DOM一节中将会提到的in-situ解析中。</p>
<p>为了让用户自定义内存分配方式,当一个操作可能需要内存分配时,RapidJSON要求用户传递一个allocator实例作为API参数。此设计避免了在每个Value存储allocator(或document)的指针。</p>
<p>因此,当我们把一个copy-string赋值时, 调用含有allocator的<code>SetString()</code>重载函数:</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> document;</div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> author;</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> document;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> author;</div>
<div class="line"><span class="keywordtype">char</span> buffer[10];</div>
<div class="line"><span class="keywordtype">int</span> len = sprintf(buffer, <span class="stringliteral">&quot;%s %s&quot;</span>, <span class="stringliteral">&quot;Milo&quot;</span>, <span class="stringliteral">&quot;Yip&quot;</span>); <span class="comment">// 动态创建的字符串。</span></div>
<div class="line">author.SetString(buffer, len, document.GetAllocator());</div>
@@ -355,13 +355,13 @@ Value 及 Document</h1>
</div><!-- fragment --><p>在此例子中,我们使用<code>Document</code>实例的allocator。这是使用RapidJSON时常用的惯用法。但你也可以用其他allocator实例。</p>
<p>另外,上面的<code>SetString()</code>需要长度参数。这个API能处理含有空字符的字符串。另一个<code>SetString()</code>重载函数没有长度参数,它假设输入是空字符结尾的,并会调用类似<code>strlen()</code>的函数去获取长度。</p>
<p>最后,对于字符串字面量或有安全生命周期的字符串,可以使用const-string版本的<code>SetString()</code>,它没有allocator参数。对于字符串家面量(或字符数组常量),只需简单地传递字面量,又安全又高效:</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> s;</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> s;</div>
<div class="line">s.SetString(<span class="stringliteral">&quot;rapidjson&quot;</span>); <span class="comment">// 可包含空字符,长度在编译萁推导</span></div>
<div class="line">s = <span class="stringliteral">&quot;rapidjson&quot;</span>; <span class="comment">// 上行的缩写</span></div>
</div><!-- fragment --><p>对于字符指针,RapidJSON需要作一个标记,代表它不复制也是安全的。可以使用<code>StringRef</code>函数:</p>
<div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span> * cstr = getenv(<span class="stringliteral">&quot;USER&quot;</span>);</div>
<div class="line"><span class="keywordtype">size_t</span> cstr_len = ...; <span class="comment">// 如果有长度</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> s;</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> s;</div>
<div class="line"><span class="comment">// s.SetString(cstr); // 这不能通过编译</span></div>
<div class="line">s.SetString(<a class="code" href="structrapidjson_1_1_generic_string_ref.html#aa6b9fd9f6aa49405a574c362ba9af6b5">StringRef</a>(cstr)); <span class="comment">// 可以,假设它的生命周期案全,并且是以空字符结尾的</span></div>
<div class="line">s = <a class="code" href="structrapidjson_1_1_generic_string_ref.html#aa6b9fd9f6aa49405a574c362ba9af6b5">StringRef</a>(cstr); <span class="comment">// 上行的缩写</span></div>
@@ -381,7 +381,7 @@ Value 及 Document</h1>
</ul>
<p>注意,<code>Reserve(...)</code>及<code>PushBack(...)</code>可能会为数组元素分配内存,所以需要一个allocator。</p>
<p>以下是<code>PushBack()</code>的例子:</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> a(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">kArrayType</a>);</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> a(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">kArrayType</a>);</div>
<div class="line">Document::AllocatorType&amp; allocator = document.GetAllocator();</div>
<div class="line"></div>
<div class="line"><span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 5; i &lt;= 10; i++)</div>
@@ -392,11 +392,11 @@ Value 及 Document</h1>
</div><!-- fragment --><p>与STL不一样的是,<code>PushBack()</code>/<code>PopBack()</code>返回Array本身的引用。这称为流畅接口(_fluent interface_)。</p>
<p>如果你想在Array中加入一个非常量字符串,或是一个没有足够生命周期的字符串(见<a href="#CreateString">Create String</a>),你需要使用copy-string API去创建一个String。为了避免加入中间变量,可以就地使用一个<a href="#TemporaryValues">临时值</a>:</p>
<div class="fragment"><div class="line"><span class="comment">// 就地Value参数</span></div>
-<div class="line">contact.PushBack(<a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>(<span class="stringliteral">&quot;copy&quot;</span>, document.GetAllocator()).Move(), <span class="comment">// copy string</span></div>
+<div class="line">contact.PushBack(<a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>(<span class="stringliteral">&quot;copy&quot;</span>, document.GetAllocator()).Move(), <span class="comment">// copy string</span></div>
<div class="line"> document.GetAllocator());</div>
<div class="line"></div>
<div class="line"><span class="comment">// 显式Value参数</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> val(<span class="stringliteral">&quot;key&quot;</span>, document.GetAllocator()); <span class="comment">// copy string</span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> val(<span class="stringliteral">&quot;key&quot;</span>, document.GetAllocator()); <span class="comment">// copy string</span></div>
<div class="line">contact.PushBack(val, document.GetAllocator());</div>
</div><!-- fragment --><h2><a class="anchor" id="ModifyObject"></a>
修改Object</h2>
@@ -407,19 +407,19 @@ Value 及 Document</h1>
<li><code>template &lt;typename T&gt; Value&amp; AddMember(StringRefType, T value, Allocator&amp;)</code></li>
</ul>
<p>以下是一个例子。</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> contact(kObject);</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> contact(kObject);</div>
<div class="line">contact.AddMember(<span class="stringliteral">&quot;name&quot;</span>, <span class="stringliteral">&quot;Milo&quot;</span>, document.GetAllocator());</div>
<div class="line">contact.AddMember(<span class="stringliteral">&quot;married&quot;</span>, <span class="keyword">true</span>, document.GetAllocator());</div>
</div><!-- fragment --><p>使用<code>StringRefType</code>作为name参数的重载版本与字符串的<code>SetString</code>的接口相似。 这些重载是为了避免复制<code>name</code>字符串,因为JSON object中经常会使用常数键名。</p>
<p>如果你需要从非常数字符串或生命周期不足的字符串创建键名(见<a href="#CreateString">创建String</a>),你需要使用copy-string API。为了避免中间变量,可以就地使用<a href="#TemporaryValues">临时值</a>:</p>
<div class="fragment"><div class="line"><span class="comment">// 就地Value参数</span></div>
-<div class="line">contact.AddMember(<a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>(<span class="stringliteral">&quot;copy&quot;</span>, document.GetAllocator()).Move(), <span class="comment">// copy string</span></div>
-<div class="line"> <a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>().Move(), <span class="comment">// null value</span></div>
+<div class="line">contact.AddMember(<a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>(<span class="stringliteral">&quot;copy&quot;</span>, document.GetAllocator()).Move(), <span class="comment">// copy string</span></div>
+<div class="line"> <a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>().Move(), <span class="comment">// null value</span></div>
<div class="line"> document.GetAllocator());</div>
<div class="line"></div>
<div class="line"><span class="comment">// 显式参数</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> key(<span class="stringliteral">&quot;key&quot;</span>, document.GetAllocator()); <span class="comment">// copy string name</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> val(42); <span class="comment">// 某Value</span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> key(<span class="stringliteral">&quot;key&quot;</span>, document.GetAllocator()); <span class="comment">// copy string name</span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> val(42); <span class="comment">// 某Value</span></div>
<div class="line">contact.AddMember(key, val, document.GetAllocator());</div>
</div><!-- fragment --><p>移除成员有几个选择:</p>
<ul>
@@ -433,12 +433,12 @@ Value 及 Document</h1>
<h2><a class="anchor" id="DeepCopyValue"></a>
深复制Value</h2>
<p>若我们真的要复制一个DOM树,我们可使用两个APIs作深复制:含allocator的构造函数及<code>CopyFrom()</code>。</p>
-<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">Document::AllocatorType&amp; a = d.GetAllocator();</div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> v1(<span class="stringliteral">&quot;foo&quot;</span>);</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> v1(<span class="stringliteral">&quot;foo&quot;</span>);</div>
<div class="line"><span class="comment">// Value v2(v1); // 不容许</span></div>
<div class="line"></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> v2(v1, a); <span class="comment">// 制造一个克隆</span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> v2(v1, a); <span class="comment">// 制造一个克隆</span></div>
<div class="line">assert(v1.IsString()); <span class="comment">// v1不变</span></div>
<div class="line">d.SetArray().PushBack(v1, a).PushBack(v2, a);</div>
<div class="line">assert(v1.IsNull() &amp;&amp; v2.IsNull()); <span class="comment">// 两个都转移动d</span></div>
@@ -450,8 +450,8 @@ Value 及 Document</h1>
</div><!-- fragment --><h2><a class="anchor" id="SwapValues"></a>
交换Value</h2>
<p>RapidJSON也提供<code>Swap()</code>。</p>
-<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> a(123);</div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> b(<span class="stringliteral">&quot;Hello&quot;</span>);</div>
+<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> a(123);</div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> b(<span class="stringliteral">&quot;Hello&quot;</span>);</div>
<div class="line">a.Swap(b);</div>
<div class="line">assert(a.IsString());</div>
<div class="line">assert(b.IsInt());</div>
diff --git a/zh-cn/memorybuffer_8h_source.html b/zh-cn/memorybuffer_8h_source.html
index cf382e80..32b498b5 100644
--- a/zh-cn/memorybuffer_8h_source.html
+++ b/zh-cn/memorybuffer_8h_source.html
@@ -105,7 +105,7 @@ $(document).ready(function(){initNavTree('memorybuffer_8h_source.html','');});
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_MEMORYBUFFER_H_</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define RAPIDJSON_MEMORYBUFFER_H_</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rapidjson_8h.html">rapidjson.h</a>&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;stream.h&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;internal/stack.h&quot;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;RAPIDJSON_NAMESPACE_BEGIN</div>
@@ -124,10 +124,10 @@ $(document).ready(function(){initNavTree('memorybuffer_8h_source.html','');});
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> \note implements Stream concept</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Allocator = CrtAllocator&gt;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_generic_memory_buffer.html"> 37</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_generic_memory_buffer.html">GenericMemoryBuffer</a> {</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">struct </span>GenericMemoryBuffer {</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">char</span> Ch; <span class="comment">// byte</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <a class="code" href="structrapidjson_1_1_generic_memory_buffer.html">GenericMemoryBuffer</a>(<a class="code" href="classrapidjson_1_1_allocator.html">Allocator</a>* allocator = 0, <span class="keywordtype">size_t</span> capacity = kDefaultCapacity) : stack_(allocator, capacity) {}</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; GenericMemoryBuffer(Allocator* allocator = 0, <span class="keywordtype">size_t</span> capacity = kDefaultCapacity) : stack_(allocator, capacity) {}</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">void</span> Put(Ch c) { *stack_.template Push&lt;Ch&gt;() = c; }</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordtype">void</span> Flush() {}</div>
@@ -147,21 +147,18 @@ $(document).ready(function(){initNavTree('memorybuffer_8h_source.html','');});
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">mutable</span> internal::Stack&lt;Allocator&gt; stack_;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;};</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="keyword">typedef</span> <a class="code" href="structrapidjson_1_1_generic_memory_buffer.html">GenericMemoryBuffer&lt;&gt;</a> <a class="code" href="structrapidjson_1_1_generic_memory_buffer.html">MemoryBuffer</a>;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">typedef</span> GenericMemoryBuffer&lt;&gt; MemoryBuffer;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment">//! Implement specialized version of PutN() with memset() for better performance.</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#aba27b0c8dcf724aa2b288a24fda0811b"> 64</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">PutN</a>(<a class="code" href="structrapidjson_1_1_generic_memory_buffer.html">MemoryBuffer</a>&amp; memoryBuffer, <span class="keywordtype">char</span> c, <span class="keywordtype">size_t</span> n) {</div>
+<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#aba27b0c8dcf724aa2b288a24fda0811b"> 64</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a">PutN</a>(MemoryBuffer&amp; memoryBuffer, <span class="keywordtype">char</span> c, <span class="keywordtype">size_t</span> n) {</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; std::memset(memoryBuffer.stack_.Push&lt;<span class="keywordtype">char</span>&gt;(n), c, n * <span class="keyword">sizeof</span>(c));</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;}</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;RAPIDJSON_NAMESPACE_END</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_MEMORYBUFFER_H_</span></div>
-<div class="ttc" id="structrapidjson_1_1_generic_memory_buffer_html"><div class="ttname"><a href="structrapidjson_1_1_generic_memory_buffer.html">rapidjson::GenericMemoryBuffer</a></div><div class="ttdoc">Represents an in-memory output byte stream. </div><div class="ttdef"><b>Definition:</b> memorybuffer.h:37</div></div>
-<div class="ttc" id="rapidjson_8h_html"><div class="ttname"><a href="rapidjson_8h.html">rapidjson.h</a></div><div class="ttdoc">common definitions and configuration </div></div>
-<div class="ttc" id="classrapidjson_1_1_allocator_html"><div class="ttname"><a href="classrapidjson_1_1_allocator.html">rapidjson::Allocator</a></div><div class="ttdoc">Concept for allocating, resizing and freeing memory block. </div></div>
-<div class="ttc" id="namespacerapidjson_html_a1d49d2cab617858b53a1db23b1759f43"><div class="ttname"><a href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">rapidjson::PutN</a></div><div class="ttdeci">void PutN(Stream &amp;stream, Ch c, size_t n)</div><div class="ttdoc">Put N copies of a character to a stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:632</div></div>
+<div class="ttc" id="namespacerapidjson_html_a1ac13bac5976fc06587e00fc0bcfb32a"><div class="ttname"><a href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a">rapidjson::PutN</a></div><div class="ttdeci">void PutN(FileWriteStream &amp;stream, char c, size_t n)</div><div class="ttdoc">Implement specialized version of PutN() with memset() for better performance. </div><div class="ttdef"><b>Definition:</b> filewritestream.h:94</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.7-->
diff --git a/zh-cn/memorystream_8h_source.html b/zh-cn/memorystream_8h_source.html
index 35752ade..8401a6fd 100644
--- a/zh-cn/memorystream_8h_source.html
+++ b/zh-cn/memorystream_8h_source.html
@@ -105,7 +105,7 @@ $(document).ready(function(){initNavTree('memorystream_8h_source.html','');});
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_MEMORYSTREAM_H_</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define RAPIDJSON_MEMORYSTREAM_H_</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rapidjson_8h.html">rapidjson.h</a>&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;stream.h&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#ifdef __clang__</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;RAPIDJSON_DIAG_PUSH</div>
@@ -164,7 +164,6 @@ $(document).ready(function(){initNavTree('memorystream_8h_source.html','');});
<div class="ttc" id="structrapidjson_1_1_memory_stream_html_a47f45298891e8156121b4017954fabe8"><div class="ttname"><a href="structrapidjson_1_1_memory_stream.html#a47f45298891e8156121b4017954fabe8">rapidjson::MemoryStream::end_</a></div><div class="ttdeci">const Ch * end_</div><div class="ttdoc">End of stream. </div><div class="ttdef"><b>Definition:</b> memorystream.h:61</div></div>
<div class="ttc" id="structrapidjson_1_1_memory_stream_html_a1cc586e50fbfc0bd5994977b42243b93"><div class="ttname"><a href="structrapidjson_1_1_memory_stream.html#a1cc586e50fbfc0bd5994977b42243b93">rapidjson::MemoryStream::begin_</a></div><div class="ttdeci">const Ch * begin_</div><div class="ttdoc">Original head of the string. </div><div class="ttdef"><b>Definition:</b> memorystream.h:60</div></div>
<div class="ttc" id="structrapidjson_1_1_memory_stream_html_ac0b4da6016e5ba6241604fd4258fb722"><div class="ttname"><a href="structrapidjson_1_1_memory_stream.html#ac0b4da6016e5ba6241604fd4258fb722">rapidjson::MemoryStream::src_</a></div><div class="ttdeci">const Ch * src_</div><div class="ttdoc">Current read position. </div><div class="ttdef"><b>Definition:</b> memorystream.h:59</div></div>
-<div class="ttc" id="rapidjson_8h_html"><div class="ttname"><a href="rapidjson_8h.html">rapidjson.h</a></div><div class="ttdoc">common definitions and configuration </div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/zh-cn/meta_8h_source.html b/zh-cn/meta_8h_source.html
index affd3830..279cfa1e 100644
--- a/zh-cn/meta_8h_source.html
+++ b/zh-cn/meta_8h_source.html
@@ -131,7 +131,7 @@ $(document).ready(function(){initNavTree('meta_8h_source.html','');});
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"></span><span class="comment">// BoolType, TrueType, FalseType</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">template</span> &lt;<span class="keywordtype">bool</span> Cond&gt; <span class="keyword">struct </span>BoolType {</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> = Cond;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> = Cond;</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">typedef</span> BoolType <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">Type</a>;</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;};</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">typedef</span> BoolType&lt;true&gt; TrueType;</div>
@@ -209,7 +209,7 @@ $(document).ready(function(){initNavTree('meta_8h_source.html','');});
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">operator</span> <span class="keyword">const</span> D*();</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; };</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">enum</span> { <a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> = (<span class="keyword">sizeof</span>(Check(Host(), 0)) == <span class="keyword">sizeof</span>(Yes)) };</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">enum</span> { <a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> = (<span class="keyword">sizeof</span>(Check(Host(), 0)) == <span class="keyword">sizeof</span>(Yes)) };</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;};</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> B, <span class="keyword">typename</span> D&gt; <span class="keyword">struct </span>IsBaseOf</div>
@@ -269,9 +269,9 @@ $(document).ready(function(){initNavTree('meta_8h_source.html','');});
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_INTERNAL_META_H_</span></div>
+<div class="ttc" id="namespacerapidjson_html_aa65fc9fb381b2cbc54f98673eadd6505"><div class="ttname"><a href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">rapidjson::Value</a></div><div class="ttdeci">GenericValue&lt; UTF8&lt;&gt; &gt; Value</div><div class="ttdoc">GenericValue with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> document.h:1753</div></div>
<div class="ttc" id="rapidjson_8h_html_af95188da1d8eb6d4b148fe9ce71cd7c4"><div class="ttname"><a href="rapidjson_8h.html#af95188da1d8eb6d4b148fe9ce71cd7c4">RAPIDJSON_STATIC_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_STATIC_ASSERT(x)</div><div class="ttdoc">(Internal) macro to check for conditions at compile-time </div><div class="ttdef"><b>Definition:</b> rapidjson.h:406</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:716</div></div>
-<div class="ttc" id="namespacerapidjson_html_afb3fa116c66d834b6f4289d648cc8d6d"><div class="ttname"><a href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">rapidjson::Value</a></div><div class="ttdeci">GenericValue&lt; UTF8&lt;&gt; &gt; Value</div><div class="ttdoc">GenericValue with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> document.h:1753</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:557</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.7-->
diff --git a/zh-cn/namespacemembers.html b/zh-cn/namespacemembers.html
index 104c3662..13ab963c 100644
--- a/zh-cn/namespacemembers.html
+++ b/zh-cn/namespacemembers.html
@@ -88,7 +88,7 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');});
<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
<li>Document
-: <a class="el" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">rapidjson</a>
</li>
</ul>
@@ -105,10 +105,10 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');});
<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
<li>InsituStringStream
-: <a class="el" href="namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#a64e957c8d9d7cd15b193ffc31410038e">rapidjson</a>
</li>
<li>IRemoteSchemaDocumentProvider
-: <a class="el" href="namespacerapidjson.html#a735a06a6e822111798e302c2f3af3de9">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#af91eb8eea47b79d75b23e29fa9c0abb5">rapidjson</a>
</li>
</ul>
@@ -254,13 +254,13 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');});
: <a class="el" href="namespacerapidjson.html#a81379eb4e94a0386d71d15fda882ebc9">rapidjson</a>
</li>
<li>Pointer
-: <a class="el" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">rapidjson</a>
</li>
<li>PointerParseErrorCode
: <a class="el" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gade540ee4cc2a416c23b8ee2c12393c7b">rapidjson</a>
</li>
<li>PutN()
-: <a class="el" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a">rapidjson</a>
</li>
<li>PutReserve()
: <a class="el" href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">rapidjson</a>
@@ -273,14 +273,14 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');});
<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
<li>Reader
-: <a class="el" href="namespacerapidjson.html#a4eaef42a208413d1f2c8d4655ecec52d">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#ad5310edd1226f5b3ea82dc0d4d3740c6">rapidjson</a>
</li>
</ul>
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
<li>SchemaDocument
-: <a class="el" href="namespacerapidjson.html#a1039ee639733008423fd0dfb67122e54">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#a52bbb5d64d1319495089e1713a0653cf">rapidjson</a>
</li>
<li>SizeType
: <a class="el" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">rapidjson</a>
@@ -289,13 +289,13 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');});
: <a class="el" href="namespacerapidjson.html#a3caa6f393c9940e6525d5f1c21ed9ea2">rapidjson</a>
</li>
<li>StringBuffer
-: <a class="el" href="namespacerapidjson.html#a51a6c35028b76e354bbb9e25d7125641">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21">rapidjson</a>
</li>
<li>StringRef()
: <a class="el" href="namespacerapidjson.html#aa6b9fd9f6aa49405a574c362ba9af6b5">rapidjson</a>
</li>
<li>StringStream
-: <a class="el" href="namespacerapidjson.html#ada4cef9931d4a3a0017ee776c907807b">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#a021f77051e9f85188fc2f71ff5a15ebc">rapidjson</a>
</li>
</ul>
@@ -316,7 +316,7 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');});
<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
<li>Value
-: <a class="el" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">rapidjson</a>
</li>
</ul>
</div><!-- contents -->
diff --git a/zh-cn/namespacemembers_func.html b/zh-cn/namespacemembers_func.html
index 19bb6352..c04d0380 100644
--- a/zh-cn/namespacemembers_func.html
+++ b/zh-cn/namespacemembers_func.html
@@ -89,7 +89,7 @@ $(document).ready(function(){initNavTree('namespacemembers_func.html','');});
: <a class="el" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gabdaf1a7a4db30fb0e3d927fdf0fabe79">rapidjson</a>
</li>
<li>PutN()
-: <a class="el" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a">rapidjson</a>
</li>
<li>PutReserve()
: <a class="el" href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">rapidjson</a>
diff --git a/zh-cn/namespacemembers_type.html b/zh-cn/namespacemembers_type.html
index eb10980a..a3b63ecf 100644
--- a/zh-cn/namespacemembers_type.html
+++ b/zh-cn/namespacemembers_type.html
@@ -86,37 +86,37 @@ $(document).ready(function(){initNavTree('namespacemembers_type.html','');});
<div class="contents">
&#160;<ul>
<li>Document
-: <a class="el" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">rapidjson</a>
</li>
<li>GetParseErrorFunc
: <a class="el" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga4e77e464ec8abe1111ee581fc2cb00de">rapidjson</a>
</li>
<li>InsituStringStream
-: <a class="el" href="namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#a64e957c8d9d7cd15b193ffc31410038e">rapidjson</a>
</li>
<li>IRemoteSchemaDocumentProvider
-: <a class="el" href="namespacerapidjson.html#a735a06a6e822111798e302c2f3af3de9">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#af91eb8eea47b79d75b23e29fa9c0abb5">rapidjson</a>
</li>
<li>Pointer
-: <a class="el" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">rapidjson</a>
</li>
<li>Reader
-: <a class="el" href="namespacerapidjson.html#a4eaef42a208413d1f2c8d4655ecec52d">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#ad5310edd1226f5b3ea82dc0d4d3740c6">rapidjson</a>
</li>
<li>SchemaDocument
-: <a class="el" href="namespacerapidjson.html#a1039ee639733008423fd0dfb67122e54">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#a52bbb5d64d1319495089e1713a0653cf">rapidjson</a>
</li>
<li>SizeType
: <a class="el" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">rapidjson</a>
</li>
<li>StringBuffer
-: <a class="el" href="namespacerapidjson.html#a51a6c35028b76e354bbb9e25d7125641">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21">rapidjson</a>
</li>
<li>StringStream
-: <a class="el" href="namespacerapidjson.html#ada4cef9931d4a3a0017ee776c907807b">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#a021f77051e9f85188fc2f71ff5a15ebc">rapidjson</a>
</li>
<li>Value
-: <a class="el" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">rapidjson</a>
+: <a class="el" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">rapidjson</a>
</li>
</ul>
</div><!-- contents -->
diff --git a/zh-cn/namespacerapidjson.html b/zh-cn/namespacerapidjson.html
index 746a286c..9dad3453 100644
--- a/zh-cn/namespacerapidjson.html
+++ b/zh-cn/namespacerapidjson.html
@@ -240,61 +240,66 @@ $(document).ready(function(){initNavTree('namespacerapidjson.html','');});
<tr class="memitem:a44eb33eaa523e36d466b1ced64b85c84"><td class="memItemLeft" align="right" valign="top">typedef unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a></td></tr>
<tr class="memdesc:a44eb33eaa523e36d466b1ced64b85c84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size type (for string lengths, array sizes, etc.) <a href="#a44eb33eaa523e36d466b1ced64b85c84">更多...</a><br /></td></tr>
<tr class="separator:a44eb33eaa523e36d466b1ced64b85c84"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ada4cef9931d4a3a0017ee776c907807b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada4cef9931d4a3a0017ee776c907807b"></a>
-typedef <a class="el" href="structrapidjson_1_1_generic_string_stream.html">GenericStringStream</a><br class="typebreak" />
-&lt; <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#ada4cef9931d4a3a0017ee776c907807b">StringStream</a></td></tr>
-<tr class="memdesc:ada4cef9931d4a3a0017ee776c907807b"><td class="mdescLeft">&#160;</td><td class="mdescRight">String stream with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
-<tr class="separator:ada4cef9931d4a3a0017ee776c907807b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5660e8e601d2719796bc86c3168a1787"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5660e8e601d2719796bc86c3168a1787"></a>
-typedef <br class="typebreak" />
-<a class="el" href="structrapidjson_1_1_generic_insitu_string_stream.html">GenericInsituStringStream</a><br class="typebreak" />
-&lt; <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787">InsituStringStream</a></td></tr>
-<tr class="memdesc:a5660e8e601d2719796bc86c3168a1787"><td class="mdescLeft">&#160;</td><td class="mdescRight">Insitu string stream with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
-<tr class="separator:a5660e8e601d2719796bc86c3168a1787"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:afb3fa116c66d834b6f4289d648cc8d6d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afb3fa116c66d834b6f4289d648cc8d6d"></a>
-typedef <a class="el" href="classrapidjson_1_1_generic_value.html">GenericValue</a>&lt; <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a></td></tr>
-<tr class="memdesc:afb3fa116c66d834b6f4289d648cc8d6d"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_generic_value.html" title="Represents a JSON value. Use Value for UTF8 encoding and default allocator. ">GenericValue</a> with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
-<tr class="separator:afb3fa116c66d834b6f4289d648cc8d6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a660c934c2959121babf799b6cb206659"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a660c934c2959121babf799b6cb206659"></a>
-typedef <a class="el" href="classrapidjson_1_1_generic_document.html">GenericDocument</a>&lt; <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a></td></tr>
-<tr class="memdesc:a660c934c2959121babf799b6cb206659"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_generic_document.html" title="A document for parsing JSON text as DOM. ">GenericDocument</a> with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
-<tr class="separator:a660c934c2959121babf799b6cb206659"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa65fc9fb381b2cbc54f98673eadd6505"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa65fc9fb381b2cbc54f98673eadd6505"></a>
+typedef <a class="el" href="classrapidjson_1_1_generic_value.html">GenericValue</a>&lt; <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a></td></tr>
+<tr class="memdesc:aa65fc9fb381b2cbc54f98673eadd6505"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_generic_value.html" title="Represents a JSON value. Use Value for UTF8 encoding and default allocator. ">GenericValue</a> with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
+<tr class="separator:aa65fc9fb381b2cbc54f98673eadd6505"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace11b5b575baf1cccd5ba5f8586dcdc8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ace11b5b575baf1cccd5ba5f8586dcdc8"></a>
+typedef <a class="el" href="classrapidjson_1_1_generic_document.html">GenericDocument</a>&lt; <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a></td></tr>
+<tr class="memdesc:ace11b5b575baf1cccd5ba5f8586dcdc8"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_generic_document.html" title="A document for parsing JSON text as DOM. ">GenericDocument</a> with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
+<tr class="separator:ace11b5b575baf1cccd5ba5f8586dcdc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4e77e464ec8abe1111ee581fc2cb00de"><td class="memItemLeft" align="right" valign="top">typedef const <br class="typebreak" />
<a class="el" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga7e4636fd48d0148f102b8a13f0539d8c">RAPIDJSON_ERROR_CHARTYPE</a> *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga4e77e464ec8abe1111ee581fc2cb00de">GetParseErrorFunc</a> )(<a class="el" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga7d3acf640886b1f2552dc8c4cd6dea60">ParseErrorCode</a>)</td></tr>
<tr class="memdesc:ga4e77e464ec8abe1111ee581fc2cb00de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function pointer type of GetParseError(). <a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga4e77e464ec8abe1111ee581fc2cb00de">更多...</a><br /></td></tr>
<tr class="separator:ga4e77e464ec8abe1111ee581fc2cb00de"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a021f77051e9f85188fc2f71ff5a15ebc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a021f77051e9f85188fc2f71ff5a15ebc"></a>
+typedef <a class="el" href="structrapidjson_1_1_generic_string_stream.html">GenericStringStream</a><br class="typebreak" />
+&lt; <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt; char &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a021f77051e9f85188fc2f71ff5a15ebc">StringStream</a></td></tr>
+<tr class="memdesc:a021f77051e9f85188fc2f71ff5a15ebc"><td class="mdescLeft">&#160;</td><td class="mdescRight">String stream with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
+<tr class="separator:a021f77051e9f85188fc2f71ff5a15ebc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64e957c8d9d7cd15b193ffc31410038e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a64e957c8d9d7cd15b193ffc31410038e"></a>
+typedef <br class="typebreak" />
+<a class="el" href="structrapidjson_1_1_generic_insitu_string_stream.html">GenericInsituStringStream</a><br class="typebreak" />
+&lt; <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt; char &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a64e957c8d9d7cd15b193ffc31410038e">InsituStringStream</a></td></tr>
+<tr class="memdesc:a64e957c8d9d7cd15b193ffc31410038e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Insitu string stream with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
+<tr class="separator:a64e957c8d9d7cd15b193ffc31410038e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac0765ea91f41539645c4b78689d03f21"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac0765ea91f41539645c4b78689d03f21"></a>
+typedef <a class="el" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a><br class="typebreak" />
+&lt; <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt; char &gt;, <a class="el" href="classrapidjson_1_1_crt_allocator.html">CrtAllocator</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21">StringBuffer</a></td></tr>
+<tr class="memdesc:ac0765ea91f41539645c4b78689d03f21"><td class="mdescLeft">&#160;</td><td class="mdescRight">String buffer with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
+<tr class="separator:ac0765ea91f41539645c4b78689d03f21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb643b9055e7988f4cb89ce4f7e6b115"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb643b9055e7988f4cb89ce4f7e6b115"></a>
-typedef <a class="el" href="structrapidjson_1_1_generic_memory_buffer.html">GenericMemoryBuffer</a>&#160;</td><td class="memItemRight" valign="bottom"><b>MemoryBuffer</b></td></tr>
+typedef <a class="el" href="structrapidjson_1_1_generic_memory_buffer.html">GenericMemoryBuffer</a><br class="typebreak" />
+&lt; <a class="el" href="classrapidjson_1_1_crt_allocator.html">CrtAllocator</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>MemoryBuffer</b></td></tr>
<tr class="separator:acb643b9055e7988f4cb89ce4f7e6b115"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9c225e4848c5facd20e43084ba2a51a3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9c225e4848c5facd20e43084ba2a51a3"></a>
-typedef <a class="el" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a>&lt; <a class="el" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3">Pointer</a></td></tr>
-<tr class="memdesc:a9c225e4848c5facd20e43084ba2a51a3"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_generic_pointer.html" title="Represents a JSON Pointer. Use Pointer for UTF8 encoding and default allocator. ">GenericPointer</a> for Value (UTF-8, default allocator). <br /></td></tr>
-<tr class="separator:a9c225e4848c5facd20e43084ba2a51a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4eaef42a208413d1f2c8d4655ecec52d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4eaef42a208413d1f2c8d4655ecec52d"></a>
+<tr class="memitem:ad5310edd1226f5b3ea82dc0d4d3740c6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad5310edd1226f5b3ea82dc0d4d3740c6"></a>
typedef <a class="el" href="classrapidjson_1_1_generic_reader.html">GenericReader</a>&lt; <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a><br class="typebreak" />
-&lt;&gt;, <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a4eaef42a208413d1f2c8d4655ecec52d">Reader</a></td></tr>
-<tr class="memdesc:a4eaef42a208413d1f2c8d4655ecec52d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reader with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding and default allocator. <br /></td></tr>
-<tr class="separator:a4eaef42a208413d1f2c8d4655ecec52d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1039ee639733008423fd0dfb67122e54"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1039ee639733008423fd0dfb67122e54"></a>
+&lt; char &gt;, <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt; char &gt;<br class="typebreak" />
+, <a class="el" href="classrapidjson_1_1_crt_allocator.html">CrtAllocator</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#ad5310edd1226f5b3ea82dc0d4d3740c6">Reader</a></td></tr>
+<tr class="memdesc:ad5310edd1226f5b3ea82dc0d4d3740c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reader with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding and default allocator. <br /></td></tr>
+<tr class="separator:ad5310edd1226f5b3ea82dc0d4d3740c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a080910f74d2f5046e6724280159cf374"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a080910f74d2f5046e6724280159cf374"></a>
+typedef <a class="el" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a>&lt; <a class="el" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>, <br class="typebreak" />
+<a class="el" href="classrapidjson_1_1_crt_allocator.html">CrtAllocator</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">Pointer</a></td></tr>
+<tr class="memdesc:a080910f74d2f5046e6724280159cf374"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_generic_pointer.html" title="Represents a JSON Pointer. Use Pointer for UTF8 encoding and default allocator. ">GenericPointer</a> for Value (UTF-8, default allocator). <br /></td></tr>
+<tr class="separator:a080910f74d2f5046e6724280159cf374"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a52bbb5d64d1319495089e1713a0653cf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a52bbb5d64d1319495089e1713a0653cf"></a>
typedef <a class="el" href="classrapidjson_1_1_generic_schema_document.html">GenericSchemaDocument</a><br class="typebreak" />
-&lt; <a class="el" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a1039ee639733008423fd0dfb67122e54">SchemaDocument</a></td></tr>
-<tr class="memdesc:a1039ee639733008423fd0dfb67122e54"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_generic_schema_document.html" title="JSON schema document. ">GenericSchemaDocument</a> using Value type. <br /></td></tr>
-<tr class="separator:a1039ee639733008423fd0dfb67122e54"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a735a06a6e822111798e302c2f3af3de9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a735a06a6e822111798e302c2f3af3de9"></a>
+&lt; <a class="el" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>, <a class="el" href="classrapidjson_1_1_crt_allocator.html">CrtAllocator</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a52bbb5d64d1319495089e1713a0653cf">SchemaDocument</a></td></tr>
+<tr class="memdesc:a52bbb5d64d1319495089e1713a0653cf"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_generic_schema_document.html" title="JSON schema document. ">GenericSchemaDocument</a> using Value type. <br /></td></tr>
+<tr class="separator:a52bbb5d64d1319495089e1713a0653cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af91eb8eea47b79d75b23e29fa9c0abb5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af91eb8eea47b79d75b23e29fa9c0abb5"></a>
typedef <br class="typebreak" />
<a class="el" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IGenericRemoteSchemaDocumentProvider</a><br class="typebreak" />
-&lt; <a class="el" href="namespacerapidjson.html#a1039ee639733008423fd0dfb67122e54">SchemaDocument</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a735a06a6e822111798e302c2f3af3de9">IRemoteSchemaDocumentProvider</a></td></tr>
-<tr class="memdesc:a735a06a6e822111798e302c2f3af3de9"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IGenericRemoteSchemaDocumentProvider</a> using SchemaDocument. <br /></td></tr>
-<tr class="separator:a735a06a6e822111798e302c2f3af3de9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab53b9a536b2918c669052834239de91f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab53b9a536b2918c669052834239de91f"></a>
+&lt; <a class="el" href="namespacerapidjson.html#a52bbb5d64d1319495089e1713a0653cf">SchemaDocument</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#af91eb8eea47b79d75b23e29fa9c0abb5">IRemoteSchemaDocumentProvider</a></td></tr>
+<tr class="memdesc:af91eb8eea47b79d75b23e29fa9c0abb5"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IGenericRemoteSchemaDocumentProvider</a> using SchemaDocument. <br /></td></tr>
+<tr class="separator:af91eb8eea47b79d75b23e29fa9c0abb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a38dbb50c156f67adc0a70548d5572ccf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a38dbb50c156f67adc0a70548d5572ccf"></a>
typedef <a class="el" href="classrapidjson_1_1_generic_schema_validator.html">GenericSchemaValidator</a><br class="typebreak" />
-&lt; <a class="el" href="namespacerapidjson.html#a1039ee639733008423fd0dfb67122e54">SchemaDocument</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>SchemaValidator</b></td></tr>
-<tr class="separator:ab53b9a536b2918c669052834239de91f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a51a6c35028b76e354bbb9e25d7125641"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a51a6c35028b76e354bbb9e25d7125641"></a>
-typedef <a class="el" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a><br class="typebreak" />
-&lt; <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a51a6c35028b76e354bbb9e25d7125641">StringBuffer</a></td></tr>
-<tr class="memdesc:a51a6c35028b76e354bbb9e25d7125641"><td class="mdescLeft">&#160;</td><td class="mdescRight">String buffer with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
-<tr class="separator:a51a6c35028b76e354bbb9e25d7125641"><td class="memSeparator" colspan="2">&#160;</td></tr>
+&lt; <a class="el" href="namespacerapidjson.html#a52bbb5d64d1319495089e1713a0653cf">SchemaDocument</a>, <br class="typebreak" />
+<a class="el" href="structrapidjson_1_1_base_reader_handler.html">BaseReaderHandler</a>&lt; <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt; char &gt;<br class="typebreak" />
+, void &gt;, <a class="el" href="classrapidjson_1_1_crt_allocator.html">CrtAllocator</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>SchemaValidator</b></td></tr>
+<tr class="separator:a38dbb50c156f67adc0a70548d5572ccf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
枚举</h2></td></tr>
@@ -377,21 +382,6 @@ typedef <a class="el" href="classrapidjson_1_1_generic_string_buffer.html">Gener
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
函数</h2></td></tr>
-<tr class="memitem:a820f77efccfbb749bd15fe4822d2c740"><td class="memTemplParams" colspan="2"><a class="anchor" id="a820f77efccfbb749bd15fe4822d2c740"></a>
-template&lt;typename Stream &gt; </td></tr>
-<tr class="memitem:a820f77efccfbb749bd15fe4822d2c740"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">PutReserve</a> (<a class="el" href="classrapidjson_1_1_stream.html">Stream</a> &amp;stream, size_t count)</td></tr>
-<tr class="memdesc:a820f77efccfbb749bd15fe4822d2c740"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reserve n characters for writing to a stream. <br /></td></tr>
-<tr class="separator:a820f77efccfbb749bd15fe4822d2c740"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0a774dcffe8ae07686f459ae017d2f20"><td class="memTemplParams" colspan="2"><a class="anchor" id="a0a774dcffe8ae07686f459ae017d2f20"></a>
-template&lt;typename Stream &gt; </td></tr>
-<tr class="memitem:a0a774dcffe8ae07686f459ae017d2f20"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a> (<a class="el" href="classrapidjson_1_1_stream.html">Stream</a> &amp;stream, typename Stream::Ch c)</td></tr>
-<tr class="memdesc:a0a774dcffe8ae07686f459ae017d2f20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write character to a stream, presuming buffer is reserved. <br /></td></tr>
-<tr class="separator:a0a774dcffe8ae07686f459ae017d2f20"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1d49d2cab617858b53a1db23b1759f43"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1d49d2cab617858b53a1db23b1759f43"></a>
-template&lt;typename Stream , typename Ch &gt; </td></tr>
-<tr class="memitem:a1d49d2cab617858b53a1db23b1759f43"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">PutN</a> (<a class="el" href="classrapidjson_1_1_stream.html">Stream</a> &amp;stream, Ch c, size_t n)</td></tr>
-<tr class="memdesc:a1d49d2cab617858b53a1db23b1759f43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Put N copies of a character to a stream. <br /></td></tr>
-<tr class="separator:a1d49d2cab617858b53a1db23b1759f43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6b9fd9f6aa49405a574c362ba9af6b5"><td class="memTemplParams" colspan="2">template&lt;typename CharType &gt; </td></tr>
<tr class="memitem:aa6b9fd9f6aa49405a574c362ba9af6b5"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structrapidjson_1_1_generic_string_ref.html">GenericStringRef</a>&lt; CharType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#aa6b9fd9f6aa49405a574c362ba9af6b5">StringRef</a> (const CharType *str)</td></tr>
<tr class="memdesc:aa6b9fd9f6aa49405a574c362ba9af6b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mark a character pointer as constant string. <a href="#aa6b9fd9f6aa49405a574c362ba9af6b5">更多...</a><br /></td></tr>
@@ -404,18 +394,23 @@ template&lt;typename Stream , typename Ch &gt; </td></tr>
<tr class="memitem:af94951529a5d51e8c4e6e770bb707c1f"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structrapidjson_1_1_generic_string_ref.html">GenericStringRef</a>&lt; CharType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#af94951529a5d51e8c4e6e770bb707c1f">StringRef</a> (const std::basic_string&lt; CharType &gt; &amp;str)</td></tr>
<tr class="memdesc:af94951529a5d51e8c4e6e770bb707c1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mark a string object as constant string. <a href="#af94951529a5d51e8c4e6e770bb707c1f">更多...</a><br /></td></tr>
<tr class="separator:af94951529a5d51e8c4e6e770bb707c1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0a774dcffe8ae07686f459ae017d2f20"><td class="memTemplParams" colspan="2"><a class="anchor" id="a0a774dcffe8ae07686f459ae017d2f20"></a>
+template&lt;typename Stream &gt; </td></tr>
+<tr class="memitem:a0a774dcffe8ae07686f459ae017d2f20"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a> (<a class="el" href="classrapidjson_1_1_stream.html">Stream</a> &amp;stream, typename Stream::Ch c)</td></tr>
+<tr class="memdesc:a0a774dcffe8ae07686f459ae017d2f20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write character to a stream, presuming buffer is reserved. <br /></td></tr>
+<tr class="separator:a0a774dcffe8ae07686f459ae017d2f20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabdaf1a7a4db30fb0e3d927fdf0fabe79"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga7e4636fd48d0148f102b8a13f0539d8c">RAPIDJSON_ERROR_CHARTYPE</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gabdaf1a7a4db30fb0e3d927fdf0fabe79">GetParseError_En</a> (<a class="el" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga7d3acf640886b1f2552dc8c4cd6dea60">ParseErrorCode</a> parseErrorCode)</td></tr>
<tr class="memdesc:gabdaf1a7a4db30fb0e3d927fdf0fabe79"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maps error code of parsing into error message. <a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gabdaf1a7a4db30fb0e3d927fdf0fabe79">更多...</a><br /></td></tr>
<tr class="separator:gabdaf1a7a4db30fb0e3d927fdf0fabe79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ac13bac5976fc06587e00fc0bcfb32a"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1ac13bac5976fc06587e00fc0bcfb32a"></a>
template&lt;&gt; </td></tr>
<tr class="memitem:a1ac13bac5976fc06587e00fc0bcfb32a"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a">PutN</a> (<a class="el" href="classrapidjson_1_1_file_write_stream.html">FileWriteStream</a> &amp;stream, char c, size_t n)</td></tr>
-<tr class="memdesc:a1ac13bac5976fc06587e00fc0bcfb32a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implement specialized version of <a class="el" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43" title="Put N copies of a character to a stream. ">PutN()</a> with memset() for better performance. <br /></td></tr>
+<tr class="memdesc:a1ac13bac5976fc06587e00fc0bcfb32a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implement specialized version of <a class="el" href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a" title="Implement specialized version of PutN() with memset() for better performance. ">PutN()</a> with memset() for better performance. <br /></td></tr>
<tr class="separator:a1ac13bac5976fc06587e00fc0bcfb32a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba27b0c8dcf724aa2b288a24fda0811b"><td class="memTemplParams" colspan="2"><a class="anchor" id="aba27b0c8dcf724aa2b288a24fda0811b"></a>
template&lt;&gt; </td></tr>
<tr class="memitem:aba27b0c8dcf724aa2b288a24fda0811b"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#aba27b0c8dcf724aa2b288a24fda0811b">PutN</a> (<a class="el" href="structrapidjson_1_1_generic_memory_buffer.html">MemoryBuffer</a> &amp;memoryBuffer, char c, size_t n)</td></tr>
-<tr class="memdesc:aba27b0c8dcf724aa2b288a24fda0811b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implement specialized version of <a class="el" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43" title="Put N copies of a character to a stream. ">PutN()</a> with memset() for better performance. <br /></td></tr>
+<tr class="memdesc:aba27b0c8dcf724aa2b288a24fda0811b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implement specialized version of <a class="el" href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a" title="Implement specialized version of PutN() with memset() for better performance. ">PutN()</a> with memset() for better performance. <br /></td></tr>
<tr class="separator:aba27b0c8dcf724aa2b288a24fda0811b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6efb0f4d2a6f81477a59718d42e9464a"><td class="memTemplParams" colspan="2">template&lt;typename InputStream &gt; </td></tr>
<tr class="memitem:a6efb0f4d2a6f81477a59718d42e9464a"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a6efb0f4d2a6f81477a59718d42e9464a">SkipWhitespace</a> (InputStream &amp;is)</td></tr>
@@ -423,14 +418,24 @@ template&lt;&gt; </td></tr>
<tr class="separator:a6efb0f4d2a6f81477a59718d42e9464a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3caa6f393c9940e6525d5f1c21ed9ea2"><td class="memTemplParams" colspan="2"><a class="anchor" id="a3caa6f393c9940e6525d5f1c21ed9ea2"></a>
template&lt;&gt; </td></tr>
-<tr class="memitem:a3caa6f393c9940e6525d5f1c21ed9ea2"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a3caa6f393c9940e6525d5f1c21ed9ea2">SkipWhitespace</a> (<a class="el" href="namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787">InsituStringStream</a> &amp;is)</td></tr>
+<tr class="memitem:a3caa6f393c9940e6525d5f1c21ed9ea2"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a3caa6f393c9940e6525d5f1c21ed9ea2">SkipWhitespace</a> (<a class="el" href="namespacerapidjson.html#a64e957c8d9d7cd15b193ffc31410038e">InsituStringStream</a> &amp;is)</td></tr>
<tr class="memdesc:a3caa6f393c9940e6525d5f1c21ed9ea2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Template function specialization for InsituStringStream. <br /></td></tr>
<tr class="separator:a3caa6f393c9940e6525d5f1c21ed9ea2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a791735c27e073a70d720c2775ddf9568"><td class="memTemplParams" colspan="2"><a class="anchor" id="a791735c27e073a70d720c2775ddf9568"></a>
template&lt;&gt; </td></tr>
-<tr class="memitem:a791735c27e073a70d720c2775ddf9568"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a791735c27e073a70d720c2775ddf9568">SkipWhitespace</a> (<a class="el" href="namespacerapidjson.html#ada4cef9931d4a3a0017ee776c907807b">StringStream</a> &amp;is)</td></tr>
+<tr class="memitem:a791735c27e073a70d720c2775ddf9568"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a791735c27e073a70d720c2775ddf9568">SkipWhitespace</a> (<a class="el" href="namespacerapidjson.html#a021f77051e9f85188fc2f71ff5a15ebc">StringStream</a> &amp;is)</td></tr>
<tr class="memdesc:a791735c27e073a70d720c2775ddf9568"><td class="mdescLeft">&#160;</td><td class="mdescRight">Template function specialization for StringStream. <br /></td></tr>
<tr class="separator:a791735c27e073a70d720c2775ddf9568"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a820f77efccfbb749bd15fe4822d2c740"><td class="memTemplParams" colspan="2"><a class="anchor" id="a820f77efccfbb749bd15fe4822d2c740"></a>
+template&lt;typename Stream &gt; </td></tr>
+<tr class="memitem:a820f77efccfbb749bd15fe4822d2c740"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">PutReserve</a> (<a class="el" href="classrapidjson_1_1_stream.html">Stream</a> &amp;stream, size_t count)</td></tr>
+<tr class="memdesc:a820f77efccfbb749bd15fe4822d2c740"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reserve n characters for writing to a stream. <br /></td></tr>
+<tr class="separator:a820f77efccfbb749bd15fe4822d2c740"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d49d2cab617858b53a1db23b1759f43"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1d49d2cab617858b53a1db23b1759f43"></a>
+template&lt;typename Stream , typename Ch &gt; </td></tr>
+<tr class="memitem:a1d49d2cab617858b53a1db23b1759f43"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">PutN</a> (<a class="el" href="classrapidjson_1_1_stream.html">Stream</a> &amp;stream, Ch c, size_t n)</td></tr>
+<tr class="memdesc:a1d49d2cab617858b53a1db23b1759f43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Put N copies of a character to a stream. <br /></td></tr>
+<tr class="separator:a1d49d2cab617858b53a1db23b1759f43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab38d4a353d3577fdedd8171316af80b3"><td class="memTemplParams" colspan="2"><a class="anchor" id="ab38d4a353d3577fdedd8171316af80b3"></a>
template&lt;typename Encoding , typename Allocator &gt; </td></tr>
<tr class="memitem:ab38d4a353d3577fdedd8171316af80b3"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>PutReserve</b> (<a class="el" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>&lt; <a class="el" href="classrapidjson_1_1_encoding.html">Encoding</a>, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> &gt; &amp;stream, size_t count)</td></tr>
@@ -442,7 +447,7 @@ template&lt;typename Encoding , typename Allocator &gt; </td></tr>
<tr class="memitem:a9d43be9c033dc49738b713fe6fbafecf"><td class="memTemplParams" colspan="2"><a class="anchor" id="a9d43be9c033dc49738b713fe6fbafecf"></a>
template&lt;&gt; </td></tr>
<tr class="memitem:a9d43be9c033dc49738b713fe6fbafecf"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a9d43be9c033dc49738b713fe6fbafecf">PutN</a> (<a class="el" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>&lt; <a class="el" href="structrapidjson_1_1_u_t_f8.html">UTF8</a>&lt;&gt; &gt; &amp;stream, char c, size_t n)</td></tr>
-<tr class="memdesc:a9d43be9c033dc49738b713fe6fbafecf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implement specialized version of <a class="el" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43" title="Put N copies of a character to a stream. ">PutN()</a> with memset() for better performance. <br /></td></tr>
+<tr class="memdesc:a9d43be9c033dc49738b713fe6fbafecf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implement specialized version of <a class="el" href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a" title="Implement specialized version of PutN() with memset() for better performance. ">PutN()</a> with memset() for better performance. <br /></td></tr>
<tr class="separator:a9d43be9c033dc49738b713fe6fbafecf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Helper functions for GenericPointer</div></td></tr>
<tr class="memitem:a6cc308180c1a10dc918da0192aed8fb7"><td class="memTemplParams" colspan="2"><a class="anchor" id="a6cc308180c1a10dc918da0192aed8fb7"></a>
diff --git a/zh-cn/navtree.js b/zh-cn/navtree.js
index 432edc85..2902282e 100644
--- a/zh-cn/navtree.js
+++ b/zh-cn/navtree.js
@@ -151,8 +151,8 @@ var NAVTREEINDEX =
[
"allocators_8h_source.html",
"classrapidjson_1_1_generic_string_buffer.html#a315f6f4528438a19d5a93eac3e2c99f0",
-"document_8h.html#af94951529a5d51e8c4e6e770bb707c1f",
-"md_doc_tutorial_8zh-cn.html#ValueDocument"
+"document_8h.html#ace11b5b575baf1cccd5ba5f8586dcdc8",
+"md_doc_tutorial_8zh-cn.html#TemporaryValues"
];
var SYNCONMSG = 'click to disable panel synchronisation';
diff --git a/zh-cn/navtreeindex0.js b/zh-cn/navtreeindex0.js
index c8560900..4f2de7a9 100644
--- a/zh-cn/navtreeindex0.js
+++ b/zh-cn/navtreeindex0.js
@@ -203,16 +203,16 @@ var NAVTREEINDEX0 =
"classrapidjson_1_1_generic_reader.html#ab907a36c410e96154c99797a6a0ce16d":[13,0,0,18,2],
"classrapidjson_1_1_generic_reader.html#ac9c540b77de19661f6f45e04b9b0937b":[13,0,0,18,5],
"classrapidjson_1_1_generic_schema_document.html":[13,0,0,19],
-"classrapidjson_1_1_generic_schema_document.html#a06a3a9f30a63d9da12472fbea7c2c8b1":[13,0,0,19,3],
-"classrapidjson_1_1_generic_schema_document.html#a09c94a10d412ee188de575b82292a90e":[13,0,0,19,7],
-"classrapidjson_1_1_generic_schema_document.html#a12958fba0cd706113a2825847756ff51":[13,0,0,19,1],
-"classrapidjson_1_1_generic_schema_document.html#a16de40d860a7c8ec1299ad644df43c9f":[13,0,0,19,0],
-"classrapidjson_1_1_generic_schema_document.html#a666d94105aa39c446327105339378320":[13,0,0,19,9],
-"classrapidjson_1_1_generic_schema_document.html#a7afaa64e663a4119cadd4af488372c68":[13,0,0,19,4],
-"classrapidjson_1_1_generic_schema_document.html#a8fa1491b1225a19fbe614bb2d6825222":[13,0,0,19,6],
-"classrapidjson_1_1_generic_schema_document.html#aafeabeff1ef66d27738b8ddfad7af9b2":[13,0,0,19,2],
-"classrapidjson_1_1_generic_schema_document.html#ad05d77ee8910b43513acf48fadf99c28":[13,0,0,19,8],
-"classrapidjson_1_1_generic_schema_document.html#af9a7be9da5b3f884b83ec39e991ee5bc":[13,0,0,19,5],
+"classrapidjson_1_1_generic_schema_document.html#a019035fd281ca52874ed434ce4f7d4d8":[13,0,0,19,2],
+"classrapidjson_1_1_generic_schema_document.html#a61540c0f8aa542760ae03257a0e6dab7":[13,0,0,19,4],
+"classrapidjson_1_1_generic_schema_document.html#a6fc497ef6e303b3a3ecec9fefe82eade":[13,0,0,19,0],
+"classrapidjson_1_1_generic_schema_document.html#a87eb1db271e7f57442802a5f4f6178f3":[13,0,0,19,6],
+"classrapidjson_1_1_generic_schema_document.html#aaf4e7f371de938025f7ed4be3b83266e":[13,0,0,19,5],
+"classrapidjson_1_1_generic_schema_document.html#ab2764f2258889b3262eff6293d7ca015":[13,0,0,19,3],
+"classrapidjson_1_1_generic_schema_document.html#ad200cc7bcb193c8568cdbda7b7fd0496":[13,0,0,19,7],
+"classrapidjson_1_1_generic_schema_document.html#adf6f3372013227873ed392dee1e752bf":[13,0,0,19,8],
+"classrapidjson_1_1_generic_schema_document.html#af64ea17654ab0f1a91e382d422f91daf":[13,0,0,19,9],
+"classrapidjson_1_1_generic_schema_document.html#af9b82162834b30bdcbe93cb065d0aedd":[13,0,0,19,1],
"classrapidjson_1_1_generic_schema_document.html#afcc03e6ba8f1a819e1a028c31ad38347":[13,0,0,19,10],
"classrapidjson_1_1_generic_schema_validator.html":[13,0,0,20],
"classrapidjson_1_1_generic_schema_validator.html#a0619c9faf3014ef141d1c6d05ae04ddc":[13,0,0,20,3],
diff --git a/zh-cn/navtreeindex1.js b/zh-cn/navtreeindex1.js
index 46be529c..f6391960 100644
--- a/zh-cn/navtreeindex1.js
+++ b/zh-cn/navtreeindex1.js
@@ -248,6 +248,6 @@ var NAVTREEINDEX1 =
"diyfp_8h_source.html":[14,0,0,0,1,1],
"document_8h.html":[14,0,0,0,3],
"document_8h.html#a578c51ab574a50a9c760b9da7c7562f2":[14,0,0,0,3,12],
-"document_8h.html#a660c934c2959121babf799b6cb206659":[14,0,0,0,3,9],
+"document_8h.html#aa65fc9fb381b2cbc54f98673eadd6505":[14,0,0,0,3,10],
"document_8h.html#aa6b9fd9f6aa49405a574c362ba9af6b5":[14,0,0,0,3,11]
};
diff --git a/zh-cn/navtreeindex2.js b/zh-cn/navtreeindex2.js
index 5b6d24a0..904e5f80 100644
--- a/zh-cn/navtreeindex2.js
+++ b/zh-cn/navtreeindex2.js
@@ -1,7 +1,7 @@
var NAVTREEINDEX2 =
{
+"document_8h.html#ace11b5b575baf1cccd5ba5f8586dcdc8":[14,0,0,0,3,9],
"document_8h.html#af94951529a5d51e8c4e6e770bb707c1f":[14,0,0,0,3,13],
-"document_8h.html#afb3fa116c66d834b6f4289d648cc8d6d":[14,0,0,0,3,10],
"document_8h_source.html":[14,0,0,0,3],
"dtoa_8h_source.html":[14,0,0,0,1,2],
"en_8h_source.html":[14,0,0,0,0,0],
@@ -76,39 +76,40 @@ var NAVTREEINDEX2 =
"functions_vars.html":[13,2,2],
"functions_w.html":[13,2,0,19],
"functions_~.html":[13,2,0,20],
+"fwd_8h_source.html":[14,0,0,0,8],
"globals.html":[14,1,0],
"globals_defs.html":[14,1,1],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html":[11,0],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga0ccf72f3ebc4b3306ab669f95ca5c64b":[11,0,12],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga0ccf72f3ebc4b3306ab669f95ca5c64b":[14,0,0,0,12,21],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga0ccf72f3ebc4b3306ab669f95ca5c64b":[14,0,0,0,13,16],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga250603aa9e2a12429b25ba0c8108ad4f":[11,0,9],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga250603aa9e2a12429b25ba0c8108ad4f":[14,0,0,0,12,19],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga250603aa9e2a12429b25ba0c8108ad4f":[14,0,0,0,13,14],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga2f2eef0ee4477f3fe5874703a66e997f":[11,0,3],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga2f2eef0ee4477f3fe5874703a66e997f":[14,0,0,0,12,11],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga583915242504c7fdb36e826f02f76242":[14,0,0,0,12,6],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga2f2eef0ee4477f3fe5874703a66e997f":[14,0,0,0,13,6],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga583915242504c7fdb36e826f02f76242":[14,0,0,0,13,1],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga583915242504c7fdb36e826f02f76242":[11,0,0],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga5dc14176a9e71ace282404b0bcda57a1":[11,0,4],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga5dc14176a9e71ace282404b0bcda57a1":[14,0,0,0,12,12],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga6a2b1695c13e77ae425e3cbac980ccb5":[14,0,0,0,12,24],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga5dc14176a9e71ace282404b0bcda57a1":[14,0,0,0,13,7],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga6a2b1695c13e77ae425e3cbac980ccb5":[14,0,0,0,13,19],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga6a2b1695c13e77ae425e3cbac980ccb5":[11,0,13],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga743a79d3af927391fe3eb5c979136899":[14,0,0,0,12,16],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga743a79d3af927391fe3eb5c979136899":[11,0,7],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga743a79d3af927391fe3eb5c979136899":[14,0,0,0,13,11],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga77005e892e6601599beaf421b0395c31":[11,0,10],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga77005e892e6601599beaf421b0395c31":[14,0,0,0,13,2],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga7f4e50c35dae3b015390daa6d48ce23c":[14,0,0,0,12,18],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga77005e892e6601599beaf421b0395c31":[14,0,0,0,14,2],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga7f4e50c35dae3b015390daa6d48ce23c":[14,0,0,0,13,13],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga7f4e50c35dae3b015390daa6d48ce23c":[11,0,8],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaba2445f582142cf918e74c2d22d1aa07":[11,0,2],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaba2445f582142cf918e74c2d22d1aa07":[14,0,0,0,12,10],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaba2445f582142cf918e74c2d22d1aa07":[14,0,0,0,13,5],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c":[11,0,1],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c":[14,0,0,0,12,7],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c":[14,0,0,0,13,2],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gad283cfde97d9a32b7d8e8107b11f70a6":[14,0,0,0,13,20],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gad283cfde97d9a32b7d8e8107b11f70a6":[11,0,14],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gad283cfde97d9a32b7d8e8107b11f70a6":[14,0,0,0,12,25],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaf1ff1685be6cbebb5d4b2ab997776f45":[14,0,0,0,12,14],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaf1ff1685be6cbebb5d4b2ab997776f45":[14,0,0,0,13,9],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaf1ff1685be6cbebb5d4b2ab997776f45":[11,0,5],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaf9125105c593a636a79f1c2d96835376":[11,0,6],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaf9125105c593a636a79f1c2d96835376":[14,0,0,0,12,15],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaf9125105c593a636a79f1c2d96835376":[14,0,0,0,13,10],
"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaf967d31be43666ce7f53756d73bd1cdf":[11,0,11],
-"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaf967d31be43666ce7f53756d73bd1cdf":[14,0,0,0,12,20],
+"group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaf967d31be43666ce7f53756d73bd1cdf":[14,0,0,0,13,15],
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html":[11,1],
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#a056e5792c1554fbc05b5f1cc168d82ae":[11,1,0,5],
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#a0f03679d5fa2736d9e351541e767fac1":[11,1,0,0],
@@ -125,13 +126,13 @@ var NAVTREEINDEX2 =
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga7d3acf640886b1f2552dc8c4cd6dea60":[11,1,6],
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga7e4636fd48d0148f102b8a13f0539d8c":[14,0,0,0,0,1,0],
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga7e4636fd48d0148f102b8a13f0539d8c":[11,1,1],
-"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga7f8c4265b2edda78568ae3338aaf1461":[14,0,0,0,13,4],
+"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga7f8c4265b2edda78568ae3338aaf1461":[14,0,0,0,14,4],
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga7f8c4265b2edda78568ae3338aaf1461":[11,1,4],
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gabdaf1a7a4db30fb0e3d927fdf0fabe79":[11,1,8],
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gabe2e1bd1349e5a7d6c1af78c05a98f0d":[14,0,0,0,0,1,1],
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gabe2e1bd1349e5a7d6c1af78c05a98f0d":[11,1,2],
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gade540ee4cc2a416c23b8ee2c12393c7b":[11,1,7],
-"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gae3689840fa6e89a241313f33b602f865":[14,0,0,0,13,3],
+"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gae3689840fa6e89a241313f33b602f865":[14,0,0,0,14,3],
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gae3689840fa6e89a241313f33b602f865":[11,1,3],
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a06183076357ebd9eca228666f614c286":[11,1,6,1],
"group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a1a4ac97731f997e9591b40f98ecd9f93":[11,1,6,7],
@@ -248,6 +249,5 @@ var NAVTREEINDEX2 =
"md_doc_tutorial_8zh-cn.html#QueryObject":[1,1,1],
"md_doc_tutorial_8zh-cn.html#QueryString":[1,1,3],
"md_doc_tutorial_8zh-cn.html#QueryValue":[1,1],
-"md_doc_tutorial_8zh-cn.html#SwapValues":[1,2,6],
-"md_doc_tutorial_8zh-cn.html#TemporaryValues":[1,2,1,0]
+"md_doc_tutorial_8zh-cn.html#SwapValues":[1,2,6]
};
diff --git a/zh-cn/navtreeindex3.js b/zh-cn/navtreeindex3.js
index 7b147790..2a1a2d59 100644
--- a/zh-cn/navtreeindex3.js
+++ b/zh-cn/navtreeindex3.js
@@ -1,9 +1,10 @@
var NAVTREEINDEX3 =
{
+"md_doc_tutorial_8zh-cn.html#TemporaryValues":[1,2,1,0],
"md_doc_tutorial_8zh-cn.html#ValueDocument":[1,0],
"md_doc_tutorial_8zh-cn.html#WhatsNext":[1,3],
-"memorybuffer_8h_source.html":[14,0,0,0,8],
-"memorystream_8h_source.html":[14,0,0,0,9],
+"memorybuffer_8h_source.html":[14,0,0,0,9],
+"memorystream_8h_source.html":[14,0,0,0,10],
"meta_8h_source.html":[14,0,0,0,1,5],
"modules.html":[11],
"namespacemembers.html":[12,0],
@@ -13,59 +14,54 @@ var NAVTREEINDEX3 =
"namespacemembers_type.html":[12,2],
"namespacerapidjson.html":[13,0,0],
"pages.html":[],
-"pointer_8h_source.html":[14,0,0,0,10],
+"pointer_8h_source.html":[14,0,0,0,11],
"pow10_8h_source.html":[14,0,0,0,1,6],
-"prettywriter_8h_source.html":[14,0,0,0,11],
-"rapidjson_8h.html":[14,0,0,0,12],
-"rapidjson_8h.html#a0a774dcffe8ae07686f459ae017d2f20":[14,0,0,0,12,32],
-"rapidjson_8h.html#a1d49d2cab617858b53a1db23b1759f43":[14,0,0,0,12,30],
-"rapidjson_8h.html#a44eb33eaa523e36d466b1ced64b85c84":[14,0,0,0,12,27],
-"rapidjson_8h.html#a52c941c3fdd646527cdcd42aa846a28a":[14,0,0,0,12,9],
-"rapidjson_8h.html#a5660e8e601d2719796bc86c3168a1787":[14,0,0,0,12,26],
-"rapidjson_8h.html#a820f77efccfbb749bd15fe4822d2c740":[14,0,0,0,12,31],
-"rapidjson_8h.html#a93973847cb99354b6b5bb5605aa7fe52":[14,0,0,0,12,5],
-"rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f":[14,0,0,0,12,23],
-"rapidjson_8h.html#ab9e102fa2f1a0ae4914d4dac21f690a2":[14,0,0,0,12,17],
-"rapidjson_8h.html#ac7951ebf8a2624ab85d2dcd3ec7af974":[14,0,0,0,12,8],
-"rapidjson_8h.html#ada4cef9931d4a3a0017ee776c907807b":[14,0,0,0,12,28],
-"rapidjson_8h.html#addcc0c3607c5790f35cc4c15885ff97c":[14,0,0,0,12,13],
-"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4":[14,0,0,0,12,29],
-"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468":[14,0,0,0,12,29,4],
-"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e":[14,0,0,0,12,29,2],
-"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff":[14,0,0,0,12,29,0],
-"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607":[14,0,0,0,12,29,1],
-"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a":[14,0,0,0,12,29,6],
-"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9":[14,0,0,0,12,29,3],
-"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7":[14,0,0,0,12,29,5],
-"rapidjson_8h.html#af95188da1d8eb6d4b148fe9ce71cd7c4":[14,0,0,0,12,22],
-"rapidjson_8h_source.html":[14,0,0,0,12],
-"reader_8h.html":[14,0,0,0,13],
-"reader_8h.html#a3caa6f393c9940e6525d5f1c21ed9ea2":[14,0,0,0,13,8],
-"reader_8h.html#a4eaef42a208413d1f2c8d4655ecec52d":[14,0,0,0,13,5],
-"reader_8h.html#a6efb0f4d2a6f81477a59718d42e9464a":[14,0,0,0,13,7],
-"reader_8h.html#a791735c27e073a70d720c2775ddf9568":[14,0,0,0,13,9],
-"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9":[14,0,0,0,13,6],
-"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9a02748971d6ea0c5e22c69b8aa7f344ea":[14,0,0,0,13,6,1],
-"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9a3df81f75479da8e052393f92cbec394b":[14,0,0,0,13,6,2],
-"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9a5640cb00db7814b7f22be3683dda9835":[14,0,0,0,13,6,7],
-"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9a7923686c8bdb7614699f1fb1bb615bb2":[14,0,0,0,13,6,3],
-"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9ab5d719b36aac626135d5d622d0d837c1":[14,0,0,0,13,6,6],
-"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9adf80892cdfa076b2d1a7dd9530e15cb0":[14,0,0,0,13,6,5],
-"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9af2c7fa21e9e7656e467bd71079ac8fb0":[14,0,0,0,13,6,0],
-"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9af84c60868704433b80aa51a62e042bb1":[14,0,0,0,13,6,4],
-"reader_8h_source.html":[14,0,0,0,13],
+"prettywriter_8h_source.html":[14,0,0,0,12],
+"rapidjson_8h.html":[14,0,0,0,13],
+"rapidjson_8h.html#a44eb33eaa523e36d466b1ced64b85c84":[14,0,0,0,13,21],
+"rapidjson_8h.html#a52c941c3fdd646527cdcd42aa846a28a":[14,0,0,0,13,4],
+"rapidjson_8h.html#a93973847cb99354b6b5bb5605aa7fe52":[14,0,0,0,13,0],
+"rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f":[14,0,0,0,13,18],
+"rapidjson_8h.html#ab9e102fa2f1a0ae4914d4dac21f690a2":[14,0,0,0,13,12],
+"rapidjson_8h.html#ac7951ebf8a2624ab85d2dcd3ec7af974":[14,0,0,0,13,3],
+"rapidjson_8h.html#addcc0c3607c5790f35cc4c15885ff97c":[14,0,0,0,13,8],
+"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4":[14,0,0,0,13,22],
+"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468":[14,0,0,0,13,22,4],
+"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e":[14,0,0,0,13,22,2],
+"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff":[14,0,0,0,13,22,0],
+"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607":[14,0,0,0,13,22,1],
+"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a":[14,0,0,0,13,22,6],
+"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9":[14,0,0,0,13,22,3],
+"rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7":[14,0,0,0,13,22,5],
+"rapidjson_8h.html#af95188da1d8eb6d4b148fe9ce71cd7c4":[14,0,0,0,13,17],
+"rapidjson_8h_source.html":[14,0,0,0,13],
+"reader_8h.html":[14,0,0,0,14],
+"reader_8h.html#a3caa6f393c9940e6525d5f1c21ed9ea2":[14,0,0,0,14,7],
+"reader_8h.html#a6efb0f4d2a6f81477a59718d42e9464a":[14,0,0,0,14,6],
+"reader_8h.html#a791735c27e073a70d720c2775ddf9568":[14,0,0,0,14,8],
+"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9":[14,0,0,0,14,5],
+"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9a02748971d6ea0c5e22c69b8aa7f344ea":[14,0,0,0,14,5,1],
+"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9a3df81f75479da8e052393f92cbec394b":[14,0,0,0,14,5,2],
+"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9a5640cb00db7814b7f22be3683dda9835":[14,0,0,0,14,5,7],
+"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9a7923686c8bdb7614699f1fb1bb615bb2":[14,0,0,0,14,5,3],
+"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9ab5d719b36aac626135d5d622d0d837c1":[14,0,0,0,14,5,6],
+"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9adf80892cdfa076b2d1a7dd9530e15cb0":[14,0,0,0,14,5,5],
+"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9af2c7fa21e9e7656e467bd71079ac8fb0":[14,0,0,0,14,5,0],
+"reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9af84c60868704433b80aa51a62e042bb1":[14,0,0,0,14,5,4],
+"reader_8h_source.html":[14,0,0,0,14],
"regex_8h_source.html":[14,0,0,0,1,7],
-"schema_8h_source.html":[14,0,0,0,14],
+"schema_8h_source.html":[14,0,0,0,15],
"stack_8h_source.html":[14,0,0,0,1,8],
+"stream_8h_source.html":[14,0,0,0,16],
"strfunc_8h_source.html":[14,0,0,0,1,9],
-"stringbuffer_8h_source.html":[14,0,0,0,15],
+"stringbuffer_8h_source.html":[14,0,0,0,17],
"strtod_8h_source.html":[14,0,0,0,1,10],
"structrapidjson_1_1_a_s_c_i_i.html":[13,0,0,1],
"structrapidjson_1_1_a_s_c_i_i.html#a2c1e49f42921027d58f1125a627cc5e5":[13,0,0,1,0],
-"structrapidjson_1_1_a_s_c_i_i.html#a9949bd6ba4dabd9945412bb96fcc4240a7c8190ea4c25af669f952bfe200afeee":[13,0,0,1,1],
+"structrapidjson_1_1_a_s_c_i_i.html#a598bb5f32c9f0c851529a9ded73db5eba7c8190ea4c25af669f952bfe200afeee":[13,0,0,1,1],
"structrapidjson_1_1_auto_u_t_f.html":[13,0,0,2],
"structrapidjson_1_1_auto_u_t_f.html#a8ba58f529fad9b33dc419b12ee13844d":[13,0,0,2,0],
-"structrapidjson_1_1_auto_u_t_f.html#a97917924016223755d1f2f70812ea6eda15b55b712f9e34d146fb236e5a89e06e":[13,0,0,2,1],
+"structrapidjson_1_1_auto_u_t_f.html#aa9095b9e85767361f9a0ae5527dba101a15b55b712f9e34d146fb236e5a89e06e":[13,0,0,2,1],
"structrapidjson_1_1_base_reader_handler.html":[13,0,0,5],
"structrapidjson_1_1_base_reader_handler.html#a03e7d273b4d317b61a4ae56e0da9097a":[13,0,0,5,4],
"structrapidjson_1_1_base_reader_handler.html#a050d1b4130a924d138f762d3c914a748":[13,0,0,5,3],
@@ -156,32 +152,32 @@ var NAVTREEINDEX3 =
"structrapidjson_1_1_memory_stream.html#abf9f7cf51a5830ae45e24f5d55fdceaf":[13,0,0,28,0],
"structrapidjson_1_1_memory_stream.html#ac0b4da6016e5ba6241604fd4258fb722":[13,0,0,28,13],
"structrapidjson_1_1_stream_traits.html":[13,0,0,33],
-"structrapidjson_1_1_stream_traits.html#abce9b61706255c4575abaf0ca9a7b94aaf6f7f81d1e208f1041e618b57e0d3828":[13,0,0,33,0],
+"structrapidjson_1_1_stream_traits.html#a3a11abaf56440885401e34830a819c53af6f7f81d1e208f1041e618b57e0d3828":[13,0,0,33,0],
"structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html":[13,0,0,34],
-"structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html#a054229c03fb6ea37485c597efbf2b10cab943169f50f1fc0616fedc1dd2605201":[13,0,0,34,0],
+"structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html#af17a82c2a14a192ef2e497aba82ad46bab943169f50f1fc0616fedc1dd2605201":[13,0,0,34,0],
"structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html":[13,0,0,35],
-"structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html#a210d1cf911ace22a80ec62aec8869c11a58160aabefa22129afe0dd6dce3285f9":[13,0,0,35,0],
+"structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html#ad0861f3abdc5e583e711bc2679fe8f33a58160aabefa22129afe0dd6dce3285f9":[13,0,0,35,0],
"structrapidjson_1_1_transcoder.html":[13,0,0,36],
"structrapidjson_1_1_transcoder_3_01_encoding_00_01_encoding_01_4.html":[13,0,0,37],
"structrapidjson_1_1_u_t_f16.html":[13,0,0,38],
-"structrapidjson_1_1_u_t_f16.html#a1b25407397e76551362ad06fb0f755dda5a09bf086fb94e4d6fb106da7c3f01ea":[13,0,0,38,1],
+"structrapidjson_1_1_u_t_f16.html#a439e1dc4701cc7ae34d257ce76f5dc37a5a09bf086fb94e4d6fb106da7c3f01ea":[13,0,0,38,1],
"structrapidjson_1_1_u_t_f16.html#a97a1141d35742ceeedc0da87538b8790":[13,0,0,38,2],
"structrapidjson_1_1_u_t_f16.html#acb67f53501b796b55996352a6080da54":[13,0,0,38,0],
"structrapidjson_1_1_u_t_f16_b_e.html":[13,0,0,39],
"structrapidjson_1_1_u_t_f16_l_e.html":[13,0,0,40],
"structrapidjson_1_1_u_t_f32.html":[13,0,0,41],
+"structrapidjson_1_1_u_t_f32.html#a65443b00cba1bb95baf55025108d6a54a4b93019e2b1729a70b35ba10b581ab9e":[13,0,0,41,1],
"structrapidjson_1_1_u_t_f32.html#ac297f89fdab70c22b19f7db769affe05":[13,0,0,41,2],
"structrapidjson_1_1_u_t_f32.html#acea97ff3d1b722b88c5faa72cfd4385e":[13,0,0,41,0],
-"structrapidjson_1_1_u_t_f32.html#af76c14241fb9ce42b4ff0b10d5c6300da4b93019e2b1729a70b35ba10b581ab9e":[13,0,0,41,1],
"structrapidjson_1_1_u_t_f32_b_e.html":[13,0,0,42],
"structrapidjson_1_1_u_t_f32_l_e.html":[13,0,0,43],
"structrapidjson_1_1_u_t_f8.html":[13,0,0,44],
-"structrapidjson_1_1_u_t_f8.html#a2855bd8436afb593c19d8746e189c895a821cba43661b67d78115cc9366e91b32":[13,0,0,44,1],
+"structrapidjson_1_1_u_t_f8.html#a162ec39d1feea956ac7c82ee21bbe037a821cba43661b67d78115cc9366e91b32":[13,0,0,44,1],
"structrapidjson_1_1_u_t_f8.html#a9f47e775d8306a647a5c9eceac4b52fc":[13,0,0,44,0],
"structrapidjson_1_1_writer_1_1_level.html":[13,0,0,45,0],
"structrapidjson_1_1_writer_1_1_level.html#a5920547a092cb88db486d75064ffe50e":[13,0,0,45,0,1],
"structrapidjson_1_1_writer_1_1_level.html#a8e478a154f4230449e441ce986c49970":[13,0,0,45,0,2],
"structrapidjson_1_1_writer_1_1_level.html#ac557fb8846daeb3415eb54d4a43cb43f":[13,0,0,45,0,0],
"swap_8h_source.html":[14,0,0,0,1,11],
-"writer_8h_source.html":[14,0,0,0,16]
+"writer_8h_source.html":[14,0,0,0,18]
};
diff --git a/zh-cn/pointer_8h_source.html b/zh-cn/pointer_8h_source.html
index d21ab6c9..ae786a9f 100644
--- a/zh-cn/pointer_8h_source.html
+++ b/zh-cn/pointer_8h_source.html
@@ -163,7 +163,7 @@ $(document).ready(function(){initNavTree('pointer_8h_source.html','');});
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment"> However, Allocator of GenericPointer is independent of Allocator of Value.</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> ValueType, <span class="keyword">typename</span> Allocator = CrtAllocator&gt;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_pointer.html"> 76</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a> {</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keyword">class </span>GenericPointer {</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_pointer.html#a399790c5fe8076d91a58c621c0c2a79e"> 78</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> ValueType::EncodingType <a class="code" href="classrapidjson_1_1_generic_pointer.html#a399790c5fe8076d91a58c621c0c2a79e">EncodingType</a>; <span class="comment">//!&lt; Encoding type from Value</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_pointer.html#a850f78846c5548565f8395be5f3427b7"> 79</a></span>&#160;<span class="comment"></span> <span class="keyword">typedef</span> <span class="keyword">typename</span> ValueType::Ch <a class="code" href="classrapidjson_1_1_generic_pointer.html#a850f78846c5548565f8395be5f3427b7">Ch</a>; <span class="comment">//!&lt; Character type from Value</span></div>
@@ -298,9 +298,9 @@ $(document).ready(function(){initNavTree('pointer_8h_source.html','');});
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; r.allocator_ = allocator;</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="classrapidjson_1_1_generic_pointer.html#a850f78846c5548565f8395be5f3427b7">Ch</a> *p = r.CopyFromRaw(*<span class="keyword">this</span>, 1, token.<a class="code" href="structrapidjson_1_1_generic_pointer_1_1_token.html#ad866d674dbddf9690ad571b65e968600">length</a> + 1);</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; std::memcpy(p, token.<a class="code" href="structrapidjson_1_1_generic_pointer_1_1_token.html#aceb59c9796418c20da27b03bf1948fe8">name</a>, (token.<a class="code" href="structrapidjson_1_1_generic_pointer_1_1_token.html#ad866d674dbddf9690ad571b65e968600">length</a> + 1) * <span class="keyword">sizeof</span>(<a class="code" href="classrapidjson_1_1_generic_pointer.html#a850f78846c5548565f8395be5f3427b7">Ch</a>));</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; r.tokens_[tokenCount_].<a class="code" href="structrapidjson_1_1_generic_pointer_1_1_token.html#aceb59c9796418c20da27b03bf1948fe8">name</a> = p;</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; r.tokens_[tokenCount_].<a class="code" href="structrapidjson_1_1_generic_pointer_1_1_token.html#ad866d674dbddf9690ad571b65e968600">length</a> = token.<a class="code" href="structrapidjson_1_1_generic_pointer_1_1_token.html#ad866d674dbddf9690ad571b65e968600">length</a>;</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; r.tokens_[tokenCount_].<a class="code" href="structrapidjson_1_1_generic_pointer_1_1_token.html#a50331c9e3dedc34d2c79745b2e58fb2d">index</a> = token.<a class="code" href="structrapidjson_1_1_generic_pointer_1_1_token.html#a50331c9e3dedc34d2c79745b2e58fb2d">index</a>;</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; r.tokens_[tokenCount_].name = p;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; r.tokens_[tokenCount_].length = token.<a class="code" href="structrapidjson_1_1_generic_pointer_1_1_token.html#ad866d674dbddf9690ad571b65e968600">length</a>;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; r.tokens_[tokenCount_].index = token.<a class="code" href="structrapidjson_1_1_generic_pointer_1_1_token.html#a50331c9e3dedc34d2c79745b2e58fb2d">index</a>;</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> r;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="comment"></span></div>
@@ -417,13 +417,13 @@ $(document).ready(function(){initNavTree('pointer_8h_source.html','');});
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="comment"> \note When any pointers are invalid, always returns false.</span></div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_pointer.html#af0d009a8322a7b61f63a9539ca8bddaf"> 329</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classrapidjson_1_1_generic_pointer.html#af0d009a8322a7b61f63a9539ca8bddaf">operator==</a>(<span class="keyword">const</span> <a class="code" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a>&amp; rhs)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">if</span> (!IsValid() || !rhs.<a class="code" href="classrapidjson_1_1_generic_pointer.html#a112f364fe9aeabba2a72e83bcbeb8fda">IsValid</a>() || tokenCount_ != rhs.tokenCount_)</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">if</span> (!IsValid() || !rhs.IsValid() || tokenCount_ != rhs.tokenCount_)</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; tokenCount_; i++) {</div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">if</span> (tokens_[i].index != rhs.tokens_[i].<a class="code" href="structrapidjson_1_1_generic_pointer_1_1_token.html#a50331c9e3dedc34d2c79745b2e58fb2d">index</a> ||</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; tokens_[i].length != rhs.tokens_[i].<a class="code" href="structrapidjson_1_1_generic_pointer_1_1_token.html#ad866d674dbddf9690ad571b65e968600">length</a> || </div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; (tokens_[i].length != 0 &amp;&amp; std::memcmp(tokens_[i].name, rhs.tokens_[i].<a class="code" href="structrapidjson_1_1_generic_pointer_1_1_token.html#aceb59c9796418c20da27b03bf1948fe8">name</a>, <span class="keyword">sizeof</span>(<a class="code" href="classrapidjson_1_1_generic_pointer.html#a850f78846c5548565f8395be5f3427b7">Ch</a>)* tokens_[i].length) != 0))</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">if</span> (tokens_[i].index != rhs.tokens_[i].index ||</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; tokens_[i].length != rhs.tokens_[i].length || </div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; (tokens_[i].length != 0 &amp;&amp; std::memcmp(tokens_[i].name, rhs.tokens_[i].name, <span class="keyword">sizeof</span>(<a class="code" href="classrapidjson_1_1_generic_pointer.html#a850f78846c5548565f8395be5f3427b7">Ch</a>)* tokens_[i].length) != 0))</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; {</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; }</div>
@@ -1111,7 +1111,7 @@ $(document).ready(function(){initNavTree('pointer_8h_source.html','');});
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;<span class="comment"></span>};</div>
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;<span class="comment">//! GenericPointer for Value (UTF-8, default allocator).</span></div>
-<div class="line"><a name="l01024"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3"> 1024</a></span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_pointer.html">GenericPointer&lt;Value&gt;</a> <a class="code" href="classrapidjson_1_1_generic_pointer.html">Pointer</a>;</div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;<span class="comment"></span><span class="keyword">typedef</span> GenericPointer&lt;Value&gt; <a class="code" href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">Pointer</a>;</div>
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;<span class="comment">//!@name Helper functions for GenericPointer</span></div>
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;<span class="comment"></span><span class="comment">//@{</span></div>
@@ -1119,8 +1119,8 @@ $(document).ready(function(){initNavTree('pointer_8h_source.html','');});
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;<span class="comment">//////////////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;<span class="keyword">typename</span> T::ValueType&amp; CreateValueByPointer(T&amp; root, <span class="keyword">const</span> <a class="code" href="classrapidjson_1_1_generic_pointer.html">GenericPointer&lt;typename T::ValueType&gt;</a>&amp; pointer, <span class="keyword">typename</span> T::AllocatorType&amp; a) {</div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; <span class="keywordflow">return</span> pointer.<a class="code" href="classrapidjson_1_1_generic_pointer.html#a3733a6d6cf2a3a13f2a59b109b56d800">Create</a>(root, a);</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;<span class="keyword">typename</span> T::ValueType&amp; CreateValueByPointer(T&amp; root, <span class="keyword">const</span> GenericPointer&lt;typename T::ValueType&gt;&amp; pointer, <span class="keyword">typename</span> T::AllocatorType&amp; a) {</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; <span class="keywordflow">return</span> pointer.Create(root, a);</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"> 1035</span>&#160;</div>
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> CharType, <span class="keywordtype">size_t</span> N&gt;</div>
@@ -1432,6 +1432,7 @@ $(document).ready(function(){initNavTree('pointer_8h_source.html','');});
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_ab914090864d0ded21a376867c33ad865"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#ab914090864d0ded21a376867c33ad865">rapidjson::GenericPointer::GetWithDefault</a></div><div class="ttdeci">ValueType &amp; GetWithDefault(ValueType &amp;root, const std::basic_string&lt; Ch &gt; &amp;defaultValue, typename ValueType::AllocatorType &amp;allocator) const </div><div class="ttdoc">Query a value in a subtree with default std::basic_string. </div><div class="ttdef"><b>Definition:</b> pointer.h:527</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_a64f7bb98da73976b59597cdde96a40b8"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#a64f7bb98da73976b59597cdde96a40b8">rapidjson::GenericPointer::Append</a></div><div class="ttdeci">GenericPointer Append(const Token &amp;token, Allocator *allocator=0) const </div><div class="ttdoc">Append a token and return a new Pointer. </div><div class="ttdef"><b>Definition:</b> pointer.h:206</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_a0e144b9956a5272c13ceff3b9306e748"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#a0e144b9956a5272c13ceff3b9306e748">rapidjson::GenericPointer::~GenericPointer</a></div><div class="ttdeci">~GenericPointer()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> pointer.h:168</div></div>
+<div class="ttc" id="namespacerapidjson_html_a080910f74d2f5046e6724280159cf374"><div class="ttname"><a href="namespacerapidjson.html#a080910f74d2f5046e6724280159cf374">rapidjson::Pointer</a></div><div class="ttdeci">GenericPointer&lt; Value, CrtAllocator &gt; Pointer</div><div class="ttdoc">GenericPointer for Value (UTF-8, default allocator). </div><div class="ttdef"><b>Definition:</b> fwd.h:121</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_acdac4ea8e57920194827be4afb942d97"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#acdac4ea8e57920194827be4afb942d97">rapidjson::GenericPointer::GetAllocator</a></div><div class="ttdeci">Allocator &amp; GetAllocator()</div><div class="ttdoc">Get the allocator of this pointer. </div><div class="ttdef"><b>Definition:</b> pointer.h:309</div></div>
<div class="ttc" id="namespacerapidjson_html_a44eb33eaa523e36d466b1ced64b85c84"><div class="ttname"><a href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">rapidjson::SizeType</a></div><div class="ttdeci">unsigned SizeType</div><div class="ttdoc">Size type (for string lengths, array sizes, etc.) </div><div class="ttdef"><b>Definition:</b> rapidjson.h:349</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_ggade540ee4cc2a416c23b8ee2c12393c7ba9094f236b2ec70c42f1ea91dffc1e39b"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ggade540ee4cc2a416c23b8ee2c12393c7ba9094f236b2ec70c42f1ea91dffc1e39b">rapidjson::kPointerParseErrorNone</a></div><div class="ttdoc">The parse is successful. </div><div class="ttdef"><b>Definition:</b> pointer.h:35</div></div>
@@ -1451,13 +1452,13 @@ $(document).ready(function(){initNavTree('pointer_8h_source.html','');});
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_a5e9e740bec7f5a1703088171e0b2557b"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#a5e9e740bec7f5a1703088171e0b2557b">rapidjson::GenericPointer::GetWithDefault</a></div><div class="ttdeci">ValueType &amp; GetWithDefault(GenericDocument&lt; EncodingType, typename ValueType::AllocatorType, stackAllocator &gt; &amp;document, const std::basic_string&lt; Ch &gt; &amp;defaultValue) const </div><div class="ttdoc">Query a value in a document with default std::basic_string. </div><div class="ttdef"><b>Definition:</b> pointer.h:559</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_a3e74f5b9c9fd3307f6ebac61a7131524"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#a3e74f5b9c9fd3307f6ebac61a7131524">rapidjson::GenericPointer::operator!=</a></div><div class="ttdeci">bool operator!=(const GenericPointer &amp;rhs) const </div><div class="ttdoc">Inequality operator. </div><div class="ttdef"><b>Definition:</b> pointer.h:349</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_a8f831aae14afc493a82b5fb6aa9c3c43"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#a8f831aae14afc493a82b5fb6aa9c3c43">rapidjson::GenericPointer::GenericPointer</a></div><div class="ttdeci">GenericPointer(const Ch *source, Allocator *allocator=0)</div><div class="ttdoc">Constructor that parses a string or URI fragment representation. </div><div class="ttdef"><b>Definition:</b> pointer.h:111</div></div>
-<div class="ttc" id="classrapidjson_1_1_generic_pointer_html"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer</a></div><div class="ttdoc">Represents a JSON Pointer. Use Pointer for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> pointer.h:76</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_pointer_html"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer</a></div><div class="ttdoc">Represents a JSON Pointer. Use Pointer for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> fwd.h:121</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_a112f364fe9aeabba2a72e83bcbeb8fda"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#a112f364fe9aeabba2a72e83bcbeb8fda">rapidjson::GenericPointer::IsValid</a></div><div class="ttdeci">bool IsValid() const </div><div class="ttdoc">Check whether this is a valid pointer. </div><div class="ttdef"><b>Definition:</b> pointer.h:298</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:716</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:557</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_a23194bb6ce6c07c78981344fe80ac3a6"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#a23194bb6ce6c07c78981344fe80ac3a6">rapidjson::GenericPointer::operator=</a></div><div class="ttdeci">GenericPointer &amp; operator=(const GenericPointer &amp;rhs)</div><div class="ttdoc">Assignment operator. </div><div class="ttdef"><b>Definition:</b> pointer.h:175</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_a151f17dc1c655b9dc0a9a3cf06e6bdcb"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#a151f17dc1c655b9dc0a9a3cf06e6bdcb">rapidjson::GenericPointer::Set</a></div><div class="ttdeci">ValueType &amp; Set(ValueType &amp;root, const std::basic_string&lt; Ch &gt; &amp;value, typename ValueType::AllocatorType &amp;allocator) const </div><div class="ttdoc">Set a std::basic_string in a subtree. </div><div class="ttdef"><b>Definition:</b> pointer.h:605</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_af89e3e8f87bb833d4eb4bb2fd4074431"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#af89e3e8f87bb833d4eb4bb2fd4074431">rapidjson::GenericPointer::GetWithDefault</a></div><div class="ttdeci">ValueType &amp; GetWithDefault(GenericDocument&lt; EncodingType, typename ValueType::AllocatorType, stackAllocator &gt; &amp;document, const ValueType &amp;defaultValue) const </div><div class="ttdoc">Query a value in a document with default value. </div><div class="ttdef"><b>Definition:</b> pointer.h:546</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">rapidjson::kObjectType</a></div><div class="ttdoc">object </div><div class="ttdef"><b>Definition:</b> rapidjson.h:720</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">rapidjson::kObjectType</a></div><div class="ttdoc">object </div><div class="ttdef"><b>Definition:</b> rapidjson.h:561</div></div>
<div class="ttc" id="document_8h_html"><div class="ttname"><a href="document_8h.html">document.h</a></div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_a0ee51e6c996d4665b398dae5dbf00bc4"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#a0ee51e6c996d4665b398dae5dbf00bc4">rapidjson::GenericPointer::GetTokens</a></div><div class="ttdeci">const Token * GetTokens() const </div><div class="ttdoc">Get the token array (const version only). </div><div class="ttdef"><b>Definition:</b> pointer.h:315</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_a83ff802b8fcacd96e60ba1c2627a19f0"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#a83ff802b8fcacd96e60ba1c2627a19f0">rapidjson::GenericPointer::Set</a></div><div class="ttdeci">ValueType &amp; Set(GenericDocument&lt; EncodingType, typename ValueType::AllocatorType, stackAllocator &gt; &amp;document, const ValueType &amp;value) const </div><div class="ttdoc">Set a value in a document, with copy semantics. </div><div class="ttdef"><b>Definition:</b> pointer.h:628</div></div>
@@ -1466,7 +1467,7 @@ $(document).ready(function(){initNavTree('pointer_8h_source.html','');});
<div class="ttc" id="rapidjson_8h_html_ab9e102fa2f1a0ae4914d4dac21f690a2"><div class="ttname"><a href="rapidjson_8h.html#ab9e102fa2f1a0ae4914d4dac21f690a2">RAPIDJSON_NEW</a></div><div class="ttdeci">#define RAPIDJSON_NEW(x)</div><div class="ttdoc">! customization point for global new </div><div class="ttdef"><b>Definition:</b> rapidjson.h:540</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_a98454081fb9557b3d2285c4e89bd34f6"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#a98454081fb9557b3d2285c4e89bd34f6">rapidjson::GenericPointer::Set</a></div><div class="ttdeci">ValueType &amp; Set(ValueType &amp;root, const Ch *value, typename ValueType::AllocatorType &amp;allocator) const </div><div class="ttdoc">Set a null-terminated string in a subtree. </div><div class="ttdef"><b>Definition:</b> pointer.h:599</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_document_html"><div class="ttname"><a href="classrapidjson_1_1_generic_document.html">rapidjson::GenericDocument</a></div><div class="ttdoc">A document for parsing JSON text as DOM. </div><div class="ttdef"><b>Definition:</b> document.h:57</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">rapidjson::kArrayType</a></div><div class="ttdoc">array </div><div class="ttdef"><b>Definition:</b> rapidjson.h:721</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">rapidjson::kArrayType</a></div><div class="ttdoc">array </div><div class="ttdef"><b>Definition:</b> rapidjson.h:562</div></div>
<div class="ttc" id="rapidjson_8h_html_a52c941c3fdd646527cdcd42aa846a28a"><div class="ttname"><a href="rapidjson_8h.html#a52c941c3fdd646527cdcd42aa846a28a">RAPIDJSON_DELETE</a></div><div class="ttdeci">#define RAPIDJSON_DELETE(x)</div><div class="ttdoc">! customization point for global delete </div><div class="ttdef"><b>Definition:</b> rapidjson.h:544</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_af0d009a8322a7b61f63a9539ca8bddaf"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#af0d009a8322a7b61f63a9539ca8bddaf">rapidjson::GenericPointer::operator==</a></div><div class="ttdeci">bool operator==(const GenericPointer &amp;rhs) const </div><div class="ttdoc">Equality operator. </div><div class="ttdef"><b>Definition:</b> pointer.h:329</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_pointer_html_ab9166f175517b1bff8c2219ea769e506"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#ab9166f175517b1bff8c2219ea769e506">rapidjson::GenericPointer::Stringify</a></div><div class="ttdeci">bool Stringify(OutputStream &amp;os) const </div><div class="ttdoc">Stringify the pointer into string representation. </div><div class="ttdef"><b>Definition:</b> pointer.h:362</div></div>
diff --git a/zh-cn/prettywriter_8h_source.html b/zh-cn/prettywriter_8h_source.html
index 65cc83bc..429e7bbd 100644
--- a/zh-cn/prettywriter_8h_source.html
+++ b/zh-cn/prettywriter_8h_source.html
@@ -276,7 +276,7 @@ $(document).ready(function(){initNavTree('prettywriter_8h_source.html','');});
<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; <span class="keywordtype">void</span> WriteIndent() {</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordtype">size_t</span> count = (Base::level_stack_.GetSize() / <span class="keyword">sizeof</span>(<span class="keyword">typename</span> Base::Level)) * indentCharCount_;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">PutN</a>(*Base::os_, static_cast&lt;typename TargetEncoding::Ch&gt;(indentChar_), count);</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a">PutN</a>(*Base::os_, static_cast&lt;typename TargetEncoding::Ch&gt;(indentChar_), count);</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; Ch indentChar_;</div>
@@ -295,22 +295,22 @@ $(document).ready(function(){initNavTree('prettywriter_8h_source.html','');});
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor">#endif</span></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="preprocessor">#endif // RAPIDJSON_RAPIDJSON_H_</span></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e">rapidjson::kTrueType</a></div><div class="ttdoc">true </div><div class="ttdef"><b>Definition:</b> rapidjson.h:719</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e">rapidjson::kTrueType</a></div><div class="ttdoc">true </div><div class="ttdef"><b>Definition:</b> rapidjson.h:560</div></div>
<div class="ttc" id="classrapidjson_1_1_pretty_writer_html_aec337a69de964cdbb8eed17d44065f3d"><div class="ttname"><a href="classrapidjson_1_1_pretty_writer.html#aec337a69de964cdbb8eed17d44065f3d">rapidjson::PrettyWriter::String</a></div><div class="ttdeci">bool String(const Ch *str)</div><div class="ttdoc">Simpler but slower overload. </div><div class="ttdef"><b>Definition:</b> prettywriter.h:141</div></div>
<div class="ttc" id="namespacerapidjson_html_a44eb33eaa523e36d466b1ced64b85c84"><div class="ttname"><a href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">rapidjson::SizeType</a></div><div class="ttdeci">unsigned SizeType</div><div class="ttdoc">Size type (for string lengths, array sizes, etc.) </div><div class="ttdef"><b>Definition:</b> rapidjson.h:349</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607">rapidjson::kFalseType</a></div><div class="ttdoc">false </div><div class="ttdef"><b>Definition:</b> rapidjson.h:718</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607">rapidjson::kFalseType</a></div><div class="ttdoc">false </div><div class="ttdef"><b>Definition:</b> rapidjson.h:559</div></div>
<div class="ttc" id="classrapidjson_1_1_pretty_writer_html"><div class="ttname"><a href="classrapidjson_1_1_pretty_writer.html">rapidjson::PrettyWriter</a></div><div class="ttdoc">Writer with indentation and spacing. </div><div class="ttdef"><b>Definition:</b> prettywriter.h:35</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:716</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">rapidjson::kObjectType</a></div><div class="ttdoc">object </div><div class="ttdef"><b>Definition:</b> rapidjson.h:720</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:557</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">rapidjson::kObjectType</a></div><div class="ttdoc">object </div><div class="ttdef"><b>Definition:</b> rapidjson.h:561</div></div>
<div class="ttc" id="classrapidjson_1_1_pretty_writer_html_ad85cd16f7cc2bcd563becab6b555aefc"><div class="ttname"><a href="classrapidjson_1_1_pretty_writer.html#ad85cd16f7cc2bcd563becab6b555aefc">rapidjson::PrettyWriter::SetIndent</a></div><div class="ttdeci">PrettyWriter &amp; SetIndent(Ch indentChar, unsigned indentCharCount)</div><div class="ttdoc">Set custom indentation. </div><div class="ttdef"><b>Definition:</b> prettywriter.h:53</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">rapidjson::kArrayType</a></div><div class="ttdoc">array </div><div class="ttdef"><b>Definition:</b> rapidjson.h:721</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">rapidjson::kArrayType</a></div><div class="ttdoc">array </div><div class="ttdef"><b>Definition:</b> rapidjson.h:562</div></div>
+<div class="ttc" id="namespacerapidjson_html_a1ac13bac5976fc06587e00fc0bcfb32a"><div class="ttname"><a href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a">rapidjson::PutN</a></div><div class="ttdeci">void PutN(FileWriteStream &amp;stream, char c, size_t n)</div><div class="ttdoc">Implement specialized version of PutN() with memset() for better performance. </div><div class="ttdef"><b>Definition:</b> filewritestream.h:94</div></div>
<div class="ttc" id="classrapidjson_1_1_pretty_writer_html_a96edf06d5bbb010d3e8c95b22b6f4750"><div class="ttname"><a href="classrapidjson_1_1_pretty_writer.html#a96edf06d5bbb010d3e8c95b22b6f4750">rapidjson::PrettyWriter::PrettyWriter</a></div><div class="ttdeci">PrettyWriter(OutputStream &amp;os, StackAllocator *allocator=0, size_t levelDepth=Base::kDefaultLevelDepth)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> prettywriter.h:45</div></div>
-<div class="ttc" id="classrapidjson_1_1_writer_html"><div class="ttname"><a href="classrapidjson_1_1_writer.html">rapidjson::Writer</a></div><div class="ttdoc">JSON writer. </div><div class="ttdef"><b>Definition:</b> writer.h:55</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff">rapidjson::kNullType</a></div><div class="ttdoc">null </div><div class="ttdef"><b>Definition:</b> rapidjson.h:717</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7">rapidjson::kStringType</a></div><div class="ttdoc">string </div><div class="ttdef"><b>Definition:</b> rapidjson.h:722</div></div>
+<div class="ttc" id="classrapidjson_1_1_writer_html"><div class="ttname"><a href="classrapidjson_1_1_writer.html">rapidjson::Writer</a></div><div class="ttdoc">JSON writer. </div><div class="ttdef"><b>Definition:</b> fwd.h:95</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff">rapidjson::kNullType</a></div><div class="ttdoc">null </div><div class="ttdef"><b>Definition:</b> rapidjson.h:558</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7">rapidjson::kStringType</a></div><div class="ttdoc">string </div><div class="ttdef"><b>Definition:</b> rapidjson.h:563</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a">rapidjson::kNumberType</a></div><div class="ttdoc">number </div><div class="ttdef"><b>Definition:</b> rapidjson.h:723</div></div>
-<div class="ttc" id="namespacerapidjson_html_a1d49d2cab617858b53a1db23b1759f43"><div class="ttname"><a href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">rapidjson::PutN</a></div><div class="ttdeci">void PutN(Stream &amp;stream, Ch c, size_t n)</div><div class="ttdoc">Put N copies of a character to a stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:632</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a">rapidjson::kNumberType</a></div><div class="ttdoc">number </div><div class="ttdef"><b>Definition:</b> rapidjson.h:564</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.7-->
diff --git a/zh-cn/rapidjson_8h.html b/zh-cn/rapidjson_8h.html
index e4bd9dcf..72fe7827 100644
--- a/zh-cn/rapidjson_8h.html
+++ b/zh-cn/rapidjson_8h.html
@@ -85,12 +85,10 @@ $(document).ready(function(){initNavTree('rapidjson_8h.html','');});
<div class="header">
<div class="summary">
-<a href="#nested-classes">类</a> &#124;
<a href="#namespaces">命名空间</a> &#124;
<a href="#define-members">宏定义</a> &#124;
<a href="#typedef-members">类型定义</a> &#124;
-<a href="#enum-members">枚举</a> &#124;
-<a href="#func-members">函数</a> </div>
+<a href="#enum-members">枚举</a> </div>
<div class="headertitle">
<div class="title">rapidjson.h 文件参考</div> </div>
</div><!--header-->
@@ -102,27 +100,9 @@ $(document).ready(function(){initNavTree('rapidjson_8h.html','');});
<code>#include &lt;cstring&gt;</code><br />
<code>#include &lt;string&gt;</code><br />
<code>#include &lt;cassert&gt;</code><br />
-<code>#include &quot;allocators.h&quot;</code><br />
-<code>#include &quot;encodings.h&quot;</code><br />
</div>
<p><a href="rapidjson_8h_source.html">浏览源代码.</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
-类</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrapidjson_1_1_stream_traits.html">rapidjson::StreamTraits&lt; Stream &gt;</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides additional information for stream. <a href="structrapidjson_1_1_stream_traits.html#details">更多...</a><br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrapidjson_1_1_generic_string_stream.html">rapidjson::GenericStringStream&lt; Encoding &gt;</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read-only string stream. <a href="structrapidjson_1_1_generic_string_stream.html#details">更多...</a><br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html">rapidjson::StreamTraits&lt; GenericStringStream&lt; Encoding &gt; &gt;</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrapidjson_1_1_generic_insitu_string_stream.html">rapidjson::GenericInsituStringStream&lt; Encoding &gt;</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A read-write string stream. <a href="structrapidjson_1_1_generic_insitu_string_stream.html#details">更多...</a><br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html">rapidjson::StreamTraits&lt; GenericInsituStringStream&lt; Encoding &gt; &gt;</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
命名空间</h2></td></tr>
<tr class="memitem:namespacerapidjson"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html">rapidjson</a></td></tr>
@@ -209,17 +189,6 @@ $(document).ready(function(){initNavTree('rapidjson_8h.html','');});
<tr class="memitem:a44eb33eaa523e36d466b1ced64b85c84"><td class="memItemLeft" align="right" valign="top">typedef unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">rapidjson::SizeType</a></td></tr>
<tr class="memdesc:a44eb33eaa523e36d466b1ced64b85c84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size type (for string lengths, array sizes, etc.) <a href="#a44eb33eaa523e36d466b1ced64b85c84">更多...</a><br /></td></tr>
<tr class="separator:a44eb33eaa523e36d466b1ced64b85c84"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ada4cef9931d4a3a0017ee776c907807b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada4cef9931d4a3a0017ee776c907807b"></a>
-typedef GenericStringStream<br class="typebreak" />
-&lt; UTF8&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#ada4cef9931d4a3a0017ee776c907807b">rapidjson::StringStream</a></td></tr>
-<tr class="memdesc:ada4cef9931d4a3a0017ee776c907807b"><td class="mdescLeft">&#160;</td><td class="mdescRight">String stream with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
-<tr class="separator:ada4cef9931d4a3a0017ee776c907807b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5660e8e601d2719796bc86c3168a1787"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5660e8e601d2719796bc86c3168a1787"></a>
-typedef <br class="typebreak" />
-GenericInsituStringStream<br class="typebreak" />
-&lt; UTF8&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787">rapidjson::InsituStringStream</a></td></tr>
-<tr class="memdesc:a5660e8e601d2719796bc86c3168a1787"><td class="mdescLeft">&#160;</td><td class="mdescRight">Insitu string stream with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding. <br /></td></tr>
-<tr class="separator:a5660e8e601d2719796bc86c3168a1787"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
枚举</h2></td></tr>
@@ -236,24 +205,6 @@ GenericInsituStringStream<br class="typebreak" />
}</td></tr>
<tr class="memdesc:ae79a4751c1c460ff0de5ecc07874f3e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of JSON value. <a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">更多...</a><br /></td></tr>
<tr class="separator:ae79a4751c1c460ff0de5ecc07874f3e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-函数</h2></td></tr>
-<tr class="memitem:a820f77efccfbb749bd15fe4822d2c740"><td class="memTemplParams" colspan="2"><a class="anchor" id="a820f77efccfbb749bd15fe4822d2c740"></a>
-template&lt;typename Stream &gt; </td></tr>
-<tr class="memitem:a820f77efccfbb749bd15fe4822d2c740"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">rapidjson::PutReserve</a> (Stream &amp;stream, size_t count)</td></tr>
-<tr class="memdesc:a820f77efccfbb749bd15fe4822d2c740"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reserve n characters for writing to a stream. <br /></td></tr>
-<tr class="separator:a820f77efccfbb749bd15fe4822d2c740"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0a774dcffe8ae07686f459ae017d2f20"><td class="memTemplParams" colspan="2"><a class="anchor" id="a0a774dcffe8ae07686f459ae017d2f20"></a>
-template&lt;typename Stream &gt; </td></tr>
-<tr class="memitem:a0a774dcffe8ae07686f459ae017d2f20"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">rapidjson::PutUnsafe</a> (Stream &amp;stream, typename Stream::Ch c)</td></tr>
-<tr class="memdesc:a0a774dcffe8ae07686f459ae017d2f20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write character to a stream, presuming buffer is reserved. <br /></td></tr>
-<tr class="separator:a0a774dcffe8ae07686f459ae017d2f20"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1d49d2cab617858b53a1db23b1759f43"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1d49d2cab617858b53a1db23b1759f43"></a>
-template&lt;typename Stream , typename Ch &gt; </td></tr>
-<tr class="memitem:a1d49d2cab617858b53a1db23b1759f43"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">rapidjson::PutN</a> (Stream &amp;stream, Ch c, size_t n)</td></tr>
-<tr class="memdesc:a1d49d2cab617858b53a1db23b1759f43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Put N copies of a character to a stream. <br /></td></tr>
-<tr class="separator:a1d49d2cab617858b53a1db23b1759f43"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><p>common definitions and configuration </p>
diff --git a/zh-cn/rapidjson_8h.js b/zh-cn/rapidjson_8h.js
index 0f1bda9f..fa2d3a7a 100644
--- a/zh-cn/rapidjson_8h.js
+++ b/zh-cn/rapidjson_8h.js
@@ -1,10 +1,5 @@
var rapidjson_8h =
[
- [ "StreamTraits", "structrapidjson_1_1_stream_traits.html", "structrapidjson_1_1_stream_traits" ],
- [ "GenericStringStream", "structrapidjson_1_1_generic_string_stream.html", "structrapidjson_1_1_generic_string_stream" ],
- [ "StreamTraits< GenericStringStream< Encoding > >", "structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html", "structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4" ],
- [ "GenericInsituStringStream", "structrapidjson_1_1_generic_insitu_string_stream.html", "structrapidjson_1_1_generic_insitu_string_stream" ],
- [ "StreamTraits< GenericInsituStringStream< Encoding > >", "structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html", "structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4" ],
[ "RAPIDJSON_64BIT", "rapidjson_8h.html#a93973847cb99354b6b5bb5605aa7fe52", null ],
[ "RAPIDJSON_ALIGN", "group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga583915242504c7fdb36e826f02f76242", null ],
[ "RAPIDJSON_ASSERT", "group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c", null ],
@@ -26,9 +21,7 @@ var rapidjson_8h =
[ "RAPIDJSON_UINT64_C2", "rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f", null ],
[ "RAPIDJSON_UNLIKELY", "group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga6a2b1695c13e77ae425e3cbac980ccb5", null ],
[ "RAPIDJSON_VERSION_STRING", "group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gad283cfde97d9a32b7d8e8107b11f70a6", null ],
- [ "InsituStringStream", "rapidjson_8h.html#a5660e8e601d2719796bc86c3168a1787", null ],
[ "SizeType", "rapidjson_8h.html#a44eb33eaa523e36d466b1ced64b85c84", null ],
- [ "StringStream", "rapidjson_8h.html#ada4cef9931d4a3a0017ee776c907807b", null ],
[ "Type", "rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4", [
[ "kNullType", "rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff", null ],
[ "kFalseType", "rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607", null ],
@@ -37,8 +30,5 @@ var rapidjson_8h =
[ "kArrayType", "rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468", null ],
[ "kStringType", "rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7", null ],
[ "kNumberType", "rapidjson_8h.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a", null ]
- ] ],
- [ "PutN", "rapidjson_8h.html#a1d49d2cab617858b53a1db23b1759f43", null ],
- [ "PutReserve", "rapidjson_8h.html#a820f77efccfbb749bd15fe4822d2c740", null ],
- [ "PutUnsafe", "rapidjson_8h.html#a0a774dcffe8ae07686f459ae017d2f20", null ]
+ ] ]
]; \ No newline at end of file
diff --git a/zh-cn/rapidjson_8h_source.html b/zh-cn/rapidjson_8h_source.html
index e018c9c9..0615a1db 100644
--- a/zh-cn/rapidjson_8h_source.html
+++ b/zh-cn/rapidjson_8h_source.html
@@ -635,209 +635,37 @@ $(document).ready(function(){initNavTree('rapidjson_8h_source.html','');});
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<span class="comment">///////////////////////////////////////////////////////////////////////////////</span></div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;<span class="comment"></span><span class="comment">// Allocators and Encodings</span></div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;</div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="preprocessor">#include &quot;allocators.h&quot;</span></div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;<span class="preprocessor">#include &quot;encodings.h&quot;</span></div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="comment">/*! \namespace rapidjson</span></div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;<span class="comment"> \brief main RapidJSON namespace</span></div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="comment"> \see RAPIDJSON_NAMESPACE</span></div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;RAPIDJSON_NAMESPACE_BEGIN</div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;<span class="comment">///////////////////////////////////////////////////////////////////////////////</span></div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;<span class="comment"></span><span class="comment">// Stream</span></div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;<span class="comment">/*! \class rapidjson::Stream</span></div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;<span class="comment"> \brief Concept for reading and writing characters.</span></div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<span class="comment"> For read-only stream, no need to implement PutBegin(), Put(), Flush() and PutEnd().</span></div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<span class="comment"> For write-only stream, only need to implement Put() and Flush().</span></div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="comment">\code</span></div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<span class="comment">concept Stream {</span></div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;<span class="comment"> typename Ch; //!&lt; Character type of the stream.</span></div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;<span class="comment"></span><span class="comment"></span></div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<span class="comment"> //! Read the current character from stream without moving the read cursor.</span></div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;<span class="comment"></span> Ch Peek() const;</div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="comment"> //! Read the current character from stream and moving the read cursor to next character.</span></div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;<span class="comment"></span> Ch Take();</div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="comment"> //! Get the current read cursor.</span></div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;<span class="comment"> //! \return Number of characters read from start.</span></div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;<span class="comment"></span> size_t Tell();</div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;<span class="comment"> //! Begin writing operation at the current read pointer.</span></div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;<span class="comment"> //! \return The begin writer pointer.</span></div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;<span class="comment"></span> Ch* PutBegin();</div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;<span class="comment"> //! Write a character.</span></div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="comment"></span> void Put(Ch c);</div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;<span class="comment"> //! Flush the buffer.</span></div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;<span class="comment"></span> void Flush();</div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;<span class="comment"> //! End the writing operation.</span></div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;<span class="comment"> //! \param begin The begin write pointer returned by PutBegin().</span></div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;<span class="comment"> //! \return Number of characters written.</span></div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="comment"></span> size_t PutEnd(Ch* begin);</div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;}</div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;\endcode</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;<span class="comment"></span></div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;<span class="comment">//! Provides additional information for stream.</span></div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;<span class="comment"></span><span class="comment">/*!</span></div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;<span class="comment"> By using traits pattern, this type provides a default configuration for stream.</span></div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;<span class="comment"> For custom stream, this type can be specialized for other configuration.</span></div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;<span class="comment"> See TEST(Reader, CustomStringStream) in readertest.cpp for example.</span></div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Stream&gt;</div>
-<div class="line"><a name="l00608"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_stream_traits.html"> 608</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_stream_traits.html">StreamTraits</a> {<span class="comment"></span></div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;<span class="comment"> //! Whether to make local copy of stream for optimization during parsing.</span></div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;<span class="comment"></span><span class="comment"> /*!</span></div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;<span class="comment"> By default, for safety, streams do not use local copy optimization.</span></div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<span class="comment"> Stream that can be copied fast should specialize this, like StreamTraits&lt;StringStream&gt;.</span></div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="keyword">enum</span> { copyOptimization = 0 };</div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;};</div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;<span class="comment">//! Reserve n characters for writing to a stream.</span></div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Stream&gt;</div>
-<div class="line"><a name="l00619"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740"> 619</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">PutReserve</a>(<a class="code" href="classrapidjson_1_1_stream.html">Stream</a>&amp; stream, <span class="keywordtype">size_t</span> count) {</div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; (void)stream;</div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; (void)count;</div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;}</div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;<span class="comment">//! Write character to a stream, presuming buffer is reserved.</span></div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Stream&gt;</div>
-<div class="line"><a name="l00626"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20"> 626</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(<a class="code" href="classrapidjson_1_1_stream.html">Stream</a>&amp; stream, <span class="keyword">typename</span> Stream::Ch c) {</div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; stream.Put(c);</div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;}</div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;<span class="comment">//! Put N copies of a character to a stream.</span></div>
-<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Stream, <span class="keyword">typename</span> Ch&gt;</div>
-<div class="line"><a name="l00632"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43"> 632</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">PutN</a>(<a class="code" href="classrapidjson_1_1_stream.html">Stream</a>&amp; stream, Ch c, <span class="keywordtype">size_t</span> n) {</div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; PutReserve&lt;Stream&gt;(stream, n);</div>
-<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; n; i++)</div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(stream, c);</div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;}</div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;<span class="comment">///////////////////////////////////////////////////////////////////////////////</span></div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;<span class="comment"></span><span class="comment">// StringStream</span></div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;<span class="comment">//! Read-only string stream.</span></div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;<span class="comment"></span><span class="comment">/*! \note implements Stream concept</span></div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding&gt;</div>
-<div class="line"><a name="l00645"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_generic_string_stream.html"> 645</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_generic_string_stream.html">GenericStringStream</a> {</div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> Encoding::Ch Ch;</div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;</div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <a class="code" href="structrapidjson_1_1_generic_string_stream.html">GenericStringStream</a>(<span class="keyword">const</span> Ch *src) : src_(src), head_(src) {}</div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;</div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; Ch Peek()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *src_; }</div>
-<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; Ch Take() { <span class="keywordflow">return</span> *src_++; }</div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <span class="keywordtype">size_t</span> Tell()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">size_t</span><span class="keyword">&gt;</span>(src_ - head_); }</div>
-<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;</div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; Ch* PutBegin() { <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(<span class="keyword">false</span>); <span class="keywordflow">return</span> 0; }</div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <span class="keywordtype">void</span> Put(Ch) { <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(<span class="keyword">false</span>); }</div>
-<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; <span class="keywordtype">void</span> Flush() { <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(<span class="keyword">false</span>); }</div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="keywordtype">size_t</span> PutEnd(Ch*) { <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(<span class="keyword">false</span>); <span class="keywordflow">return</span> 0; }</div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;</div>
-<div class="line"><a name="l00659"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_generic_string_stream.html#a9a38a9d5b1ce782cacd4ec1bdf87fc2d"> 659</a></span>&#160; <span class="keyword">const</span> Ch* <a class="code" href="structrapidjson_1_1_generic_string_stream.html#a9a38a9d5b1ce782cacd4ec1bdf87fc2d">src_</a>; <span class="comment">//!&lt; Current read position.</span></div>
-<div class="line"><a name="l00660"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_generic_string_stream.html#a2556705b0a0fd6393862efe6db025b32"> 660</a></span>&#160;<span class="comment"></span> <span class="keyword">const</span> Ch* <a class="code" href="structrapidjson_1_1_generic_string_stream.html#a2556705b0a0fd6393862efe6db025b32">head_</a>; <span class="comment">//!&lt; Original head of the string.</span></div>
-<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;<span class="comment"></span>};</div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;</div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding&gt;</div>
-<div class="line"><a name="l00664"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html"> 664</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_stream_traits.html">StreamTraits</a>&lt;<a class="code" href="structrapidjson_1_1_generic_string_stream.html">GenericStringStream</a>&lt;<a class="code" href="classrapidjson_1_1_encoding.html">Encoding</a>&gt; &gt; {</div>
-<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="keyword">enum</span> { copyOptimization = 1 };</div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;};</div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;<span class="comment">//! String stream with UTF8 encoding.</span></div>
-<div class="line"><a name="l00669"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ada4cef9931d4a3a0017ee776c907807b"> 669</a></span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="structrapidjson_1_1_generic_string_stream.html">GenericStringStream&lt;UTF8&lt;&gt;</a> &gt; <a class="code" href="namespacerapidjson.html#ada4cef9931d4a3a0017ee776c907807b">StringStream</a>;</div>
-<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;<span class="comment">///////////////////////////////////////////////////////////////////////////////</span></div>
-<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;<span class="comment"></span><span class="comment">// InsituStringStream</span></div>
-<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;<span class="comment">//! A read-write string stream.</span></div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;<span class="comment"></span><span class="comment">/*! This string stream is particularly designed for in-situ parsing.</span></div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;<span class="comment"> \note implements Stream concept</span></div>
-<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding&gt;</div>
-<div class="line"><a name="l00679"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_generic_insitu_string_stream.html"> 679</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_generic_insitu_string_stream.html">GenericInsituStringStream</a> {</div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> Encoding::Ch Ch;</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"> 682</span>&#160; <a class="code" href="structrapidjson_1_1_generic_insitu_string_stream.html">GenericInsituStringStream</a>(Ch *src) : src_(src), dst_(0), head_(src) {}</div>
-<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;</div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; <span class="comment">// Read</span></div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; Ch Peek() { <span class="keywordflow">return</span> *src_; }</div>
-<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; Ch Take() { <span class="keywordflow">return</span> *src_++; }</div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; <span class="keywordtype">size_t</span> Tell() { <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">size_t</span><span class="keyword">&gt;</span>(src_ - head_); }</div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;</div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="comment">// Write</span></div>
-<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <span class="keywordtype">void</span> Put(Ch c) { <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(dst_ != 0); *dst_++ = c; }</div>
-<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;</div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; Ch* PutBegin() { <span class="keywordflow">return</span> dst_ = src_; }</div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keywordtype">size_t</span> PutEnd(Ch* begin) { <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">size_t</span><span class="keyword">&gt;</span>(dst_ - begin); }</div>
-<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <span class="keywordtype">void</span> Flush() {}</div>
-<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;</div>
-<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; Ch* Push(<span class="keywordtype">size_t</span> count) { Ch* begin = dst_; dst_ += count; <span class="keywordflow">return</span> begin; }</div>
-<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <span class="keywordtype">void</span> Pop(<span class="keywordtype">size_t</span> count) { dst_ -= count; }</div>
-<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;</div>
-<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; Ch* src_;</div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; Ch* dst_;</div>
-<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; Ch* head_;</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"> 703</span>&#160;</div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding&gt;</div>
-<div class="line"><a name="l00705"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html"> 705</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_stream_traits.html">StreamTraits</a>&lt;<a class="code" href="structrapidjson_1_1_generic_insitu_string_stream.html">GenericInsituStringStream</a>&lt;<a class="code" href="classrapidjson_1_1_encoding.html">Encoding</a>&gt; &gt; {</div>
-<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <span class="keyword">enum</span> { copyOptimization = 1 };</div>
-<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;};</div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;<span class="comment">//! Insitu string stream with UTF8 encoding.</span></div>
-<div class="line"><a name="l00710"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787"> 710</a></span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="structrapidjson_1_1_generic_insitu_string_stream.html">GenericInsituStringStream&lt;UTF8&lt;&gt;</a> &gt; <a class="code" href="namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787">InsituStringStream</a>;</div>
-<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;<span class="comment">///////////////////////////////////////////////////////////////////////////////</span></div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;<span class="comment"></span><span class="comment">// Type</span></div>
-<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;<span class="comment">//! Type of JSON value</span></div>
-<div class="line"><a name="l00716"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4"> 716</a></span>&#160;<span class="comment"></span><span class="keyword">enum</span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">Type</a> {</div>
-<div class="line"><a name="l00717"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff"> 717</a></span>&#160; <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff">kNullType</a> = 0, <span class="comment">//!&lt; null</span></div>
-<div class="line"><a name="l00718"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607"> 718</a></span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607">kFalseType</a> = 1, <span class="comment">//!&lt; false</span></div>
-<div class="line"><a name="l00719"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e"> 719</a></span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e">kTrueType</a> = 2, <span class="comment">//!&lt; true</span></div>
-<div class="line"><a name="l00720"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"> 720</a></span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">kObjectType</a> = 3, <span class="comment">//!&lt; object</span></div>
-<div class="line"><a name="l00721"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"> 721</a></span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">kArrayType</a> = 4, <span class="comment">//!&lt; array </span></div>
-<div class="line"><a name="l00722"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7"> 722</a></span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7">kStringType</a> = 5, <span class="comment">//!&lt; string</span></div>
-<div class="line"><a name="l00723"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a"> 723</a></span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a">kNumberType</a> = 6 <span class="comment">//!&lt; number</span></div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;<span class="comment"></span>};</div>
-<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;</div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;RAPIDJSON_NAMESPACE_END</div>
-<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;</div>
-<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_RAPIDJSON_H_</span></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e">rapidjson::kTrueType</a></div><div class="ttdoc">true </div><div class="ttdef"><b>Definition:</b> rapidjson.h:719</div></div>
-<div class="ttc" id="structrapidjson_1_1_generic_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_string_stream.html">rapidjson::GenericStringStream</a></div><div class="ttdoc">Read-only string stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:645</div></div>
-<div class="ttc" id="namespacerapidjson_html_a820f77efccfbb749bd15fe4822d2c740"><div class="ttname"><a href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">rapidjson::PutReserve</a></div><div class="ttdeci">void PutReserve(Stream &amp;stream, size_t count)</div><div class="ttdoc">Reserve n characters for writing to a stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:619</div></div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;<span class="comment"></span><span class="comment">// Type</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="comment">/*! \namespace rapidjson</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;<span class="comment"> \brief main RapidJSON namespace</span></div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;<span class="comment"> \see RAPIDJSON_NAMESPACE</span></div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;RAPIDJSON_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;<span class="comment">//! Type of JSON value</span></div>
+<div class="line"><a name="l00557"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4"> 557</a></span>&#160;<span class="comment"></span><span class="keyword">enum</span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">Type</a> {</div>
+<div class="line"><a name="l00558"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff"> 558</a></span>&#160; <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff">kNullType</a> = 0, <span class="comment">//!&lt; null</span></div>
+<div class="line"><a name="l00559"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607"> 559</a></span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607">kFalseType</a> = 1, <span class="comment">//!&lt; false</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e"> 560</a></span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e">kTrueType</a> = 2, <span class="comment">//!&lt; true</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"> 561</a></span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">kObjectType</a> = 3, <span class="comment">//!&lt; object</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"> 562</a></span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">kArrayType</a> = 4, <span class="comment">//!&lt; array </span></div>
+<div class="line"><a name="l00563"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7"> 563</a></span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7">kStringType</a> = 5, <span class="comment">//!&lt; string</span></div>
+<div class="line"><a name="l00564"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a"> 564</a></span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a">kNumberType</a> = 6 <span class="comment">//!&lt; number</span></div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<span class="comment"></span>};</div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;</div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;RAPIDJSON_NAMESPACE_END</div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_RAPIDJSON_H_</span></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e">rapidjson::kTrueType</a></div><div class="ttdoc">true </div><div class="ttdef"><b>Definition:</b> rapidjson.h:560</div></div>
<div class="ttc" id="namespacerapidjson_html_a44eb33eaa523e36d466b1ced64b85c84"><div class="ttname"><a href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">rapidjson::SizeType</a></div><div class="ttdeci">unsigned SizeType</div><div class="ttdoc">Size type (for string lengths, array sizes, etc.) </div><div class="ttdef"><b>Definition:</b> rapidjson.h:349</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607">rapidjson::kFalseType</a></div><div class="ttdoc">false </div><div class="ttdef"><b>Definition:</b> rapidjson.h:718</div></div>
-<div class="ttc" id="structrapidjson_1_1_generic_string_stream_html_a2556705b0a0fd6393862efe6db025b32"><div class="ttname"><a href="structrapidjson_1_1_generic_string_stream.html#a2556705b0a0fd6393862efe6db025b32">rapidjson::GenericStringStream::head_</a></div><div class="ttdeci">const Ch * head_</div><div class="ttdoc">Original head of the string. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:660</div></div>
-<div class="ttc" id="structrapidjson_1_1_generic_string_stream_html_a9a38a9d5b1ce782cacd4ec1bdf87fc2d"><div class="ttname"><a href="structrapidjson_1_1_generic_string_stream.html#a9a38a9d5b1ce782cacd4ec1bdf87fc2d">rapidjson::GenericStringStream::src_</a></div><div class="ttdeci">const Ch * src_</div><div class="ttdoc">Current read position. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:659</div></div>
-<div class="ttc" id="namespacerapidjson_html_a5660e8e601d2719796bc86c3168a1787"><div class="ttname"><a href="namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787">rapidjson::InsituStringStream</a></div><div class="ttdeci">GenericInsituStringStream&lt; UTF8&lt;&gt; &gt; InsituStringStream</div><div class="ttdoc">Insitu string stream with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:710</div></div>
-<div class="ttc" id="classrapidjson_1_1_encoding_html"><div class="ttname"><a href="classrapidjson_1_1_encoding.html">rapidjson::Encoding</a></div><div class="ttdoc">Concept for encoding of Unicode characters. </div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:716</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">rapidjson::kObjectType</a></div><div class="ttdoc">object </div><div class="ttdef"><b>Definition:</b> rapidjson.h:720</div></div>
-<div class="ttc" id="namespacerapidjson_html_ada4cef9931d4a3a0017ee776c907807b"><div class="ttname"><a href="namespacerapidjson.html#ada4cef9931d4a3a0017ee776c907807b">rapidjson::StringStream</a></div><div class="ttdeci">GenericStringStream&lt; UTF8&lt;&gt; &gt; StringStream</div><div class="ttdoc">String stream with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:669</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">rapidjson::kArrayType</a></div><div class="ttdoc">array </div><div class="ttdef"><b>Definition:</b> rapidjson.h:721</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff">rapidjson::kNullType</a></div><div class="ttdoc">null </div><div class="ttdef"><b>Definition:</b> rapidjson.h:717</div></div>
-<div class="ttc" id="classrapidjson_1_1_stream_html"><div class="ttname"><a href="classrapidjson_1_1_stream.html">rapidjson::Stream</a></div><div class="ttdoc">Concept for reading and writing characters. </div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7">rapidjson::kStringType</a></div><div class="ttdoc">string </div><div class="ttdef"><b>Definition:</b> rapidjson.h:722</div></div>
-<div class="ttc" id="namespacerapidjson_html_a0a774dcffe8ae07686f459ae017d2f20"><div class="ttname"><a href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">rapidjson::PutUnsafe</a></div><div class="ttdeci">void PutUnsafe(Stream &amp;stream, typename Stream::Ch c)</div><div class="ttdoc">Write character to a stream, presuming buffer is reserved. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:626</div></div>
-<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a">rapidjson::kNumberType</a></div><div class="ttdoc">number </div><div class="ttdef"><b>Definition:</b> rapidjson.h:723</div></div>
-<div class="ttc" id="structrapidjson_1_1_stream_traits_html"><div class="ttname"><a href="structrapidjson_1_1_stream_traits.html">rapidjson::StreamTraits</a></div><div class="ttdoc">Provides additional information for stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:608</div></div>
-<div class="ttc" id="structrapidjson_1_1_generic_insitu_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_insitu_string_stream.html">rapidjson::GenericInsituStringStream</a></div><div class="ttdoc">A read-write string stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:679</div></div>
-<div class="ttc" id="namespacerapidjson_html_a1d49d2cab617858b53a1db23b1759f43"><div class="ttname"><a href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">rapidjson::PutN</a></div><div class="ttdeci">void PutN(Stream &amp;stream, Ch c, size_t n)</div><div class="ttdoc">Put N copies of a character to a stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:632</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607">rapidjson::kFalseType</a></div><div class="ttdoc">false </div><div class="ttdef"><b>Definition:</b> rapidjson.h:559</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:557</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">rapidjson::kObjectType</a></div><div class="ttdoc">object </div><div class="ttdef"><b>Definition:</b> rapidjson.h:561</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">rapidjson::kArrayType</a></div><div class="ttdoc">array </div><div class="ttdef"><b>Definition:</b> rapidjson.h:562</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff">rapidjson::kNullType</a></div><div class="ttdoc">null </div><div class="ttdef"><b>Definition:</b> rapidjson.h:558</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7">rapidjson::kStringType</a></div><div class="ttdoc">string </div><div class="ttdef"><b>Definition:</b> rapidjson.h:563</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a">rapidjson::kNumberType</a></div><div class="ttdoc">number </div><div class="ttdef"><b>Definition:</b> rapidjson.h:564</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.7-->
diff --git a/zh-cn/reader_8h.html b/zh-cn/reader_8h.html
index 51b6bc3c..3699410e 100644
--- a/zh-cn/reader_8h.html
+++ b/zh-cn/reader_8h.html
@@ -88,15 +88,14 @@ $(document).ready(function(){initNavTree('reader_8h.html','');});
<a href="#nested-classes">类</a> &#124;
<a href="#namespaces">命名空间</a> &#124;
<a href="#define-members">宏定义</a> &#124;
-<a href="#typedef-members">类型定义</a> &#124;
<a href="#enum-members">枚举</a> &#124;
<a href="#func-members">函数</a> </div>
<div class="headertitle">
<div class="title">reader.h 文件参考</div> </div>
</div><!--header-->
<div class="contents">
-<div class="textblock"><code>#include &quot;<a class="el" href="rapidjson_8h_source.html">rapidjson.h</a>&quot;</code><br />
-<code>#include &quot;encodings.h&quot;</code><br />
+<div class="textblock"><code>#include &quot;allocators.h&quot;</code><br />
+<code>#include &quot;stream.h&quot;</code><br />
<code>#include &quot;internal/meta.h&quot;</code><br />
<code>#include &quot;internal/stack.h&quot;</code><br />
<code>#include &quot;internal/strtod.h&quot;</code><br />
@@ -131,14 +130,6 @@ $(document).ready(function(){initNavTree('reader_8h.html','');});
<tr class="memdesc:ga77005e892e6601599beaf421b0395c31"><td class="mdescLeft">&#160;</td><td class="mdescRight">User-defined kParseDefaultFlags definition. <a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga77005e892e6601599beaf421b0395c31">更多...</a><br /></td></tr>
<tr class="separator:ga77005e892e6601599beaf421b0395c31"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-类型定义</h2></td></tr>
-<tr class="memitem:a4eaef42a208413d1f2c8d4655ecec52d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4eaef42a208413d1f2c8d4655ecec52d"></a>
-typedef GenericReader&lt; UTF8<br class="typebreak" />
-&lt;&gt;, UTF8&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a4eaef42a208413d1f2c8d4655ecec52d">rapidjson::Reader</a></td></tr>
-<tr class="memdesc:a4eaef42a208413d1f2c8d4655ecec52d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reader with <a class="el" href="structrapidjson_1_1_u_t_f8.html" title="UTF-8 encoding. ">UTF8</a> encoding and default allocator. <br /></td></tr>
-<tr class="separator:a4eaef42a208413d1f2c8d4655ecec52d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
枚举</h2></td></tr>
<tr class="memitem:a81379eb4e94a0386d71d15fda882ebc9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerapidjson.html#a81379eb4e94a0386d71d15fda882ebc9">rapidjson::ParseFlag</a> { <br />
diff --git a/zh-cn/reader_8h.js b/zh-cn/reader_8h.js
index 2fb94d4f..1c0ed2a5 100644
--- a/zh-cn/reader_8h.js
+++ b/zh-cn/reader_8h.js
@@ -5,7 +5,6 @@ var reader_8h =
[ "RAPIDJSON_PARSE_DEFAULT_FLAGS", "group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga77005e892e6601599beaf421b0395c31", null ],
[ "RAPIDJSON_PARSE_ERROR", "group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gae3689840fa6e89a241313f33b602f865", null ],
[ "RAPIDJSON_PARSE_ERROR_NORETURN", "group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga7f8c4265b2edda78568ae3338aaf1461", null ],
- [ "Reader", "reader_8h.html#a4eaef42a208413d1f2c8d4655ecec52d", null ],
[ "ParseFlag", "reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9", [
[ "kParseNoFlags", "reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9af2c7fa21e9e7656e467bd71079ac8fb0", null ],
[ "kParseInsituFlag", "reader_8h.html#a81379eb4e94a0386d71d15fda882ebc9a02748971d6ea0c5e22c69b8aa7f344ea", null ],
diff --git a/zh-cn/reader_8h_source.html b/zh-cn/reader_8h_source.html
index b121c50d..60515d5a 100644
--- a/zh-cn/reader_8h_source.html
+++ b/zh-cn/reader_8h_source.html
@@ -107,8 +107,8 @@ $(document).ready(function(){initNavTree('reader_8h_source.html','');});
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">/*! \file reader.h */</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rapidjson_8h.html">rapidjson.h</a>&quot;</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;encodings.h&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;allocators.h&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;stream.h&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;internal/meta.h&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;internal/stack.h&quot;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;internal/strtod.h&quot;</span></div>
@@ -275,10 +275,10 @@ $(document).ready(function(){initNavTree('reader_8h_source.html','');});
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="comment"> \note implements Handler concept</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Encoding = UTF8&lt;&gt;, <span class="keyword">typename</span> Derived = <span class="keywordtype">void</span>&gt;</div>
-<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_base_reader_handler.html"> 188</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_base_reader_handler.html">BaseReaderHandler</a> {</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="keyword">struct </span>BaseReaderHandler {</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> Encoding::Ch Ch;</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> internal::SelectIf&lt;internal::IsSame&lt;Derived, void&gt;, <a class="code" href="structrapidjson_1_1_base_reader_handler.html">BaseReaderHandler</a>, Derived&gt;<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">::Type</a> Override;</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> internal::SelectIf&lt;internal::IsSame&lt;Derived, void&gt;, BaseReaderHandler, Derived&gt;<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">::Type</a> Override;</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; <span class="keywordtype">bool</span> Default() { <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordtype">bool</span> Null() { <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>Override&amp;<span class="keyword">&gt;</span>(*this).Default(); }</div>
@@ -306,9 +306,9 @@ $(document).ready(function(){initNavTree('reader_8h_source.html','');});
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="comment">//! Do copy optimization.</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Stream&gt;</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="keyword">class </span>StreamLocalCopy&lt;<a class="code" href="classrapidjson_1_1_stream.html">Stream</a>, 1&gt; {</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="keyword">class </span>StreamLocalCopy&lt;Stream, 1&gt; {</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; StreamLocalCopy(<a class="code" href="classrapidjson_1_1_stream.html">Stream</a>&amp; original) : s(original), original_(original) {}</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; StreamLocalCopy(Stream&amp; original) : s(original), original_(original) {}</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; ~StreamLocalCopy() { original_ = s; }</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; Stream s;</div>
@@ -466,7 +466,7 @@ $(document).ready(function(){initNavTree('reader_8h_source.html','');});
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="comment"> \tparam StackAllocator Allocator type for stack.</span></div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> SourceEncoding, <span class="keyword">typename</span> TargetEncoding, <span class="keyword">typename</span> StackAllocator = CrtAllocator&gt;</div>
-<div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_reader.html"> 379</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_reader.html">GenericReader</a> {</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="keyword">class </span>GenericReader {</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_reader.html#a0781d19e8c6bc044d9cc5f5d3dde287e"> 381</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> SourceEncoding::Ch <a class="code" href="classrapidjson_1_1_generic_reader.html#a0781d19e8c6bc044d9cc5f5d3dde287e">Ch</a>; <span class="comment">//!&lt; SourceEncoding character type</span></div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="comment"></span><span class="comment"></span></div>
@@ -890,7 +890,7 @@ $(document).ready(function(){initNavTree('reader_8h_source.html','');});
<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;<span class="preprocessor">#if defined(RAPIDJSON_SSE2) || defined(RAPIDJSON_SSE42)</span></div>
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <span class="comment">// StringStream -&gt; StackStream&lt;char&gt;</span></div>
-<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="keyword">static</span> RAPIDJSON_FORCEINLINE <span class="keywordtype">void</span> ScanCopyUnescapedString(<a class="code" href="namespacerapidjson.html#ada4cef9931d4a3a0017ee776c907807b">StringStream</a>&amp; is, StackStream&lt;char&gt;&amp; os) {</div>
+<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="keyword">static</span> RAPIDJSON_FORCEINLINE <span class="keywordtype">void</span> ScanCopyUnescapedString(StringStream&amp; is, StackStream&lt;char&gt;&amp; os) {</div>
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* p = is.src_;</div>
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;</div>
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="comment">// Scan one by one until alignment (unaligned load may cross page boundary and cause crash)</span></div>
@@ -941,7 +941,7 @@ $(document).ready(function(){initNavTree('reader_8h_source.html','');});
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; }</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="comment">// InsituStringStream -&gt; InsituStringStream</span></div>
-<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; <span class="keyword">static</span> RAPIDJSON_FORCEINLINE <span class="keywordtype">void</span> ScanCopyUnescapedString(<a class="code" href="namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787">InsituStringStream</a>&amp; is, <a class="code" href="namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787">InsituStringStream</a>&amp; os) {</div>
+<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; <span class="keyword">static</span> RAPIDJSON_FORCEINLINE <span class="keywordtype">void</span> ScanCopyUnescapedString(InsituStringStream&amp; is, InsituStringStream&amp; os) {</div>
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(&amp;is == &amp;os);</div>
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; (void)os;</div>
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160;</div>
@@ -1000,7 +1000,7 @@ $(document).ready(function(){initNavTree('reader_8h_source.html','');});
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; }</div>
<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160;</div>
<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; <span class="comment">// When read/write pointers are the same for insitu stream, just skip unescaped characters</span></div>
-<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; <span class="keyword">static</span> RAPIDJSON_FORCEINLINE <span class="keywordtype">void</span> SkipUnescapedString(<a class="code" href="namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787">InsituStringStream</a>&amp; is) {</div>
+<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; <span class="keyword">static</span> RAPIDJSON_FORCEINLINE <span class="keywordtype">void</span> SkipUnescapedString(InsituStringStream&amp; is) {</div>
<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(is.src_ == is.dst_);</div>
<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <span class="keywordtype">char</span>* p = is.src_;</div>
<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160;</div>
@@ -1764,7 +1764,7 @@ $(document).ready(function(){initNavTree('reader_8h_source.html','');});
<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160;}; <span class="comment">// class GenericReader</span></div>
<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;<span class="comment">//! Reader with UTF8 encoding and default allocator.</span></div>
-<div class="line"><a name="l01677"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a4eaef42a208413d1f2c8d4655ecec52d"> 1677</a></span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_reader.html">GenericReader&lt;UTF8&lt;&gt;</a>, <a class="code" href="structrapidjson_1_1_u_t_f8.html">UTF8&lt;&gt;</a> &gt; <a class="code" href="namespacerapidjson.html#a4eaef42a208413d1f2c8d4655ecec52d">Reader</a>;</div>
+<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;<span class="comment"></span><span class="keyword">typedef</span> GenericReader&lt;UTF8&lt;&gt;, UTF8&lt;&gt; &gt; <a class="code" href="namespacerapidjson.html#ad5310edd1226f5b3ea82dc0d4d3740c6">Reader</a>;</div>
<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;</div>
<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160;RAPIDJSON_NAMESPACE_END</div>
<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160;</div>
@@ -1782,7 +1782,7 @@ $(document).ready(function(){initNavTree('reader_8h_source.html','');});
<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160;</div>
<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_READER_H_</span></div>
-<div class="ttc" id="structrapidjson_1_1_generic_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_string_stream.html">rapidjson::GenericStringStream</a></div><div class="ttdoc">Read-only string stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:645</div></div>
+<div class="ttc" id="structrapidjson_1_1_generic_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_string_stream.html">rapidjson::GenericStringStream</a></div><div class="ttdoc">Read-only string stream. </div><div class="ttdef"><b>Definition:</b> fwd.h:47</div></div>
<div class="ttc" id="namespacerapidjson_html_a81379eb4e94a0386d71d15fda882ebc9a7923686c8bdb7614699f1fb1bb615bb2"><div class="ttname"><a href="namespacerapidjson.html#a81379eb4e94a0386d71d15fda882ebc9a7923686c8bdb7614699f1fb1bb615bb2">rapidjson::kParseIterativeFlag</a></div><div class="ttdoc">Iterative(constant complexity in terms of function call stack size) parsing. </div><div class="ttdef"><b>Definition:</b> reader.h:146</div></div>
<div class="ttc" id="classrapidjson_1_1_handler_html"><div class="ttname"><a href="classrapidjson_1_1_handler.html">rapidjson::Handler</a></div><div class="ttdoc">Concept for receiving events from GenericReader upon parsing. The functions return true if no error o...</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_reader_html_ac9c540b77de19661f6f45e04b9b0937b"><div class="ttname"><a href="classrapidjson_1_1_generic_reader.html#ac9c540b77de19661f6f45e04b9b0937b">rapidjson::GenericReader::Parse</a></div><div class="ttdeci">ParseResult Parse(InputStream &amp;is, Handler &amp;handler)</div><div class="ttdoc">Parse JSON text. </div><div class="ttdef"><b>Definition:</b> reader.h:398</div></div>
@@ -1791,7 +1791,6 @@ $(document).ready(function(){initNavTree('reader_8h_source.html','');});
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60a636209a2e516fbdb4db5ad0a83a6b386"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a636209a2e516fbdb4db5ad0a83a6b386">rapidjson::kParseErrorStringUnicodeSurrogateInvalid</a></div><div class="ttdoc">The surrogate pair in string is invalid. </div><div class="ttdef"><b>Definition:</b> error.h:79</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gae3689840fa6e89a241313f33b602f865"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gae3689840fa6e89a241313f33b602f865">RAPIDJSON_PARSE_ERROR</a></div><div class="ttdeci">#define RAPIDJSON_PARSE_ERROR(parseErrorCode, offset)</div><div class="ttdoc">(Internal) macro to indicate and handle a parse error. </div><div class="ttdef"><b>Definition:</b> reader.h:115</div></div>
<div class="ttc" id="rapidjson_8h_html_aaee1245f375a71be1ac9b8a07ba5fb8f"><div class="ttname"><a href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a></div><div class="ttdeci">#define RAPIDJSON_UINT64_C2(high32, low32)</div><div class="ttdoc">Construct a 64-bit literal by a pair of 32-bit integer. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:288</div></div>
-<div class="ttc" id="classrapidjson_1_1_generic_reader_html"><div class="ttname"><a href="classrapidjson_1_1_generic_reader.html">rapidjson::GenericReader</a></div><div class="ttdoc">SAX-style JSON parser. Use Reader for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> reader.h:379</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60a58e952084a0dfdbc5630f624252aef5c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a58e952084a0dfdbc5630f624252aef5c">rapidjson::kParseErrorObjectMissColon</a></div><div class="ttdoc">Missing a colon after a name of object member. </div><div class="ttdef"><b>Definition:</b> error.h:73</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60a23c38bf88b8448555c0eb41e1735bd92"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a23c38bf88b8448555c0eb41e1735bd92">rapidjson::kParseErrorStringUnicodeEscapeInvalidHex</a></div><div class="ttdoc">Incorrect hex digit after \u escape in string. </div><div class="ttdef"><b>Definition:</b> error.h:78</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_reader_html_a46ded2951b8fa395ed421989d66e71fe"><div class="ttname"><a href="classrapidjson_1_1_generic_reader.html#a46ded2951b8fa395ed421989d66e71fe">rapidjson::GenericReader::HasParseError</a></div><div class="ttdeci">bool HasParseError() const </div><div class="ttdoc">Whether a parse error has occured in the last parsing. </div><div class="ttdef"><b>Definition:</b> reader.h:444</div></div>
@@ -1802,45 +1801,39 @@ $(document).ready(function(){initNavTree('reader_8h_source.html','');});
<div class="ttc" id="classrapidjson_1_1_generic_reader_html_ab907a36c410e96154c99797a6a0ce16d"><div class="ttname"><a href="classrapidjson_1_1_generic_reader.html#ab907a36c410e96154c99797a6a0ce16d">rapidjson::GenericReader::GetErrorOffset</a></div><div class="ttdeci">size_t GetErrorOffset() const </div><div class="ttdoc">Get the position of last parsing error in input, 0 otherwise. </div><div class="ttdef"><b>Definition:</b> reader.h:450</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_a17c9f7f81675283393222658d613000f"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#a17c9f7f81675283393222658d613000f">rapidjson::ParseResult::Clear</a></div><div class="ttdeci">void Clear()</div><div class="ttdoc">Reset error code. </div><div class="ttdef"><b>Definition:</b> error.h:128</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60a1a4ac97731f997e9591b40f98ecd9f93"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a1a4ac97731f997e9591b40f98ecd9f93">rapidjson::kParseErrorArrayMissCommaOrSquareBracket</a></div><div class="ttdoc">Missing a comma or &#39;]&#39; after an array element. </div><div class="ttdef"><b>Definition:</b> error.h:76</div></div>
+<div class="ttc" id="namespacerapidjson_html_ad5310edd1226f5b3ea82dc0d4d3740c6"><div class="ttname"><a href="namespacerapidjson.html#ad5310edd1226f5b3ea82dc0d4d3740c6">rapidjson::Reader</a></div><div class="ttdeci">GenericReader&lt; UTF8&lt; char &gt;, UTF8&lt; char &gt;, CrtAllocator &gt; Reader</div><div class="ttdoc">Reader with UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> fwd.h:88</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_reader_html_a0781d19e8c6bc044d9cc5f5d3dde287e"><div class="ttname"><a href="classrapidjson_1_1_generic_reader.html#a0781d19e8c6bc044d9cc5f5d3dde287e">rapidjson::GenericReader::Ch</a></div><div class="ttdeci">SourceEncoding::Ch Ch</div><div class="ttdoc">SourceEncoding character type. </div><div class="ttdef"><b>Definition:</b> reader.h:381</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60a2022599bcd4f64d58885a026f95751d5"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a2022599bcd4f64d58885a026f95751d5">rapidjson::kParseErrorDocumentRootNotSingular</a></div><div class="ttdoc">The document root must not follow by other values. </div><div class="ttdef"><b>Definition:</b> error.h:68</div></div>
-<div class="ttc" id="structrapidjson_1_1_generic_string_stream_html_a9a38a9d5b1ce782cacd4ec1bdf87fc2d"><div class="ttname"><a href="structrapidjson_1_1_generic_string_stream.html#a9a38a9d5b1ce782cacd4ec1bdf87fc2d">rapidjson::GenericStringStream::src_</a></div><div class="ttdeci">const Ch * src_</div><div class="ttdoc">Current read position. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:659</div></div>
+<div class="ttc" id="structrapidjson_1_1_generic_string_stream_html_a9a38a9d5b1ce782cacd4ec1bdf87fc2d"><div class="ttname"><a href="structrapidjson_1_1_generic_string_stream.html#a9a38a9d5b1ce782cacd4ec1bdf87fc2d">rapidjson::GenericStringStream::src_</a></div><div class="ttdeci">const Ch * src_</div><div class="ttdoc">Current read position. </div><div class="ttdef"><b>Definition:</b> stream.h:124</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_ga7f8c4265b2edda78568ae3338aaf1461"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga7f8c4265b2edda78568ae3338aaf1461">RAPIDJSON_PARSE_ERROR_NORETURN</a></div><div class="ttdeci">#define RAPIDJSON_PARSE_ERROR_NORETURN(parseErrorCode, offset)</div><div class="ttdoc">Macro to indicate a parse error. </div><div class="ttdef"><b>Definition:</b> reader.h:96</div></div>
<div class="ttc" id="namespacerapidjson_html_a81379eb4e94a0386d71d15fda882ebc9af2c7fa21e9e7656e467bd71079ac8fb0"><div class="ttname"><a href="namespacerapidjson.html#a81379eb4e94a0386d71d15fda882ebc9af2c7fa21e9e7656e467bd71079ac8fb0">rapidjson::kParseNoFlags</a></div><div class="ttdoc">No flags are set. </div><div class="ttdef"><b>Definition:</b> reader.h:143</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_ga5dc14176a9e71ace282404b0bcda57a1"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga5dc14176a9e71ace282404b0bcda57a1">RAPIDJSON_LIKELY</a></div><div class="ttdeci">#define RAPIDJSON_LIKELY(x)</div><div class="ttdoc">Compiler branching hint for expression with high probability to be true. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:424</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60a7abf1a337294d984a3f4d18b5843fb24"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a7abf1a337294d984a3f4d18b5843fb24">rapidjson::kParseErrorUnspecificSyntaxError</a></div><div class="ttdoc">Unspecific syntax error. </div><div class="ttdef"><b>Definition:</b> error.h:89</div></div>
<div class="ttc" id="error_8h_html"><div class="ttname"><a href="error_8h.html">error.h</a></div></div>
-<div class="ttc" id="namespacerapidjson_html_a5660e8e601d2719796bc86c3168a1787"><div class="ttname"><a href="namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787">rapidjson::InsituStringStream</a></div><div class="ttdeci">GenericInsituStringStream&lt; UTF8&lt;&gt; &gt; InsituStringStream</div><div class="ttdoc">Insitu string stream with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:710</div></div>
<div class="ttc" id="namespacerapidjson_html_a81379eb4e94a0386d71d15fda882ebc9adf80892cdfa076b2d1a7dd9530e15cb0"><div class="ttname"><a href="namespacerapidjson.html#a81379eb4e94a0386d71d15fda882ebc9adf80892cdfa076b2d1a7dd9530e15cb0">rapidjson::kParseFullPrecisionFlag</a></div><div class="ttdoc">Parse number in full precision (but slower). </div><div class="ttdef"><b>Definition:</b> reader.h:148</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60af7daa91caa53abb881ea231a874a4f40"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60af7daa91caa53abb881ea231a874a4f40">rapidjson::kParseErrorStringMissQuotationMark</a></div><div class="ttdoc">Missing a closing quotation mark in string. </div><div class="ttdef"><b>Definition:</b> error.h:81</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60a8dd0af5e6103a6503c61c38cb2b0bab9"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a8dd0af5e6103a6503c61c38cb2b0bab9">rapidjson::kParseErrorStringEscapeInvalid</a></div><div class="ttdoc">Invalid escape character in string. </div><div class="ttdef"><b>Definition:</b> error.h:80</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_structrapidjson_1_1_parse_result"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#structrapidjson_1_1_parse_result">rapidjson::ParseResult</a></div><div class="ttdoc">Result of parsing (wraps ParseErrorCode) </div><div class="ttdef"><b>Definition:</b> error.h:106</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60ab707b848425668e765def25554735242"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60ab707b848425668e765def25554735242">rapidjson::kParseErrorObjectMissName</a></div><div class="ttdoc">Missing a name for object member. </div><div class="ttdef"><b>Definition:</b> error.h:72</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:716</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:557</div></div>
<div class="ttc" id="namespacerapidjson_html_a81379eb4e94a0386d71d15fda882ebc9af84c60868704433b80aa51a62e042bb1"><div class="ttname"><a href="namespacerapidjson.html#a81379eb4e94a0386d71d15fda882ebc9af84c60868704433b80aa51a62e042bb1">rapidjson::kParseStopWhenDoneFlag</a></div><div class="ttdoc">After parsing a complete JSON root from stream, stop further processing the rest of stream...</div><div class="ttdef"><b>Definition:</b> reader.h:147</div></div>
-<div class="ttc" id="namespacerapidjson_html_ada4cef9931d4a3a0017ee776c907807b"><div class="ttname"><a href="namespacerapidjson.html#ada4cef9931d4a3a0017ee776c907807b">rapidjson::StringStream</a></div><div class="ttdeci">GenericStringStream&lt; UTF8&lt;&gt; &gt; StringStream</div><div class="ttdoc">String stream with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:669</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_ga6a2b1695c13e77ae425e3cbac980ccb5"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga6a2b1695c13e77ae425e3cbac980ccb5">RAPIDJSON_UNLIKELY</a></div><div class="ttdeci">#define RAPIDJSON_UNLIKELY(x)</div><div class="ttdoc">Compiler branching hint for expression with low probability to be true. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:437</div></div>
<div class="ttc" id="namespacerapidjson_html_a81379eb4e94a0386d71d15fda882ebc9a5640cb00db7814b7f22be3683dda9835"><div class="ttname"><a href="namespacerapidjson.html#a81379eb4e94a0386d71d15fda882ebc9a5640cb00db7814b7f22be3683dda9835">rapidjson::kParseDefaultFlags</a></div><div class="ttdoc">Default parse flags. Can be customized by defining RAPIDJSON_PARSE_DEFAULT_FLAGS. ...</div><div class="ttdef"><b>Definition:</b> reader.h:150</div></div>
<div class="ttc" id="namespacerapidjson_html_a81379eb4e94a0386d71d15fda882ebc9"><div class="ttname"><a href="namespacerapidjson.html#a81379eb4e94a0386d71d15fda882ebc9">rapidjson::ParseFlag</a></div><div class="ttdeci">ParseFlag</div><div class="ttdoc">Combination of parseFlags. </div><div class="ttdef"><b>Definition:</b> reader.h:142</div></div>
-<div class="ttc" id="classrapidjson_1_1_stream_html"><div class="ttname"><a href="classrapidjson_1_1_stream.html">rapidjson::Stream</a></div><div class="ttdoc">Concept for reading and writing characters. </div></div>
<div class="ttc" id="namespacerapidjson_html_a81379eb4e94a0386d71d15fda882ebc9ab5d719b36aac626135d5d622d0d837c1"><div class="ttname"><a href="namespacerapidjson.html#a81379eb4e94a0386d71d15fda882ebc9ab5d719b36aac626135d5d622d0d837c1">rapidjson::kParseCommentsFlag</a></div><div class="ttdoc">Allow one-line (//) and multi-line (/**/) comments. </div><div class="ttdef"><b>Definition:</b> reader.h:149</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60ab250f87c3d8454c579364b5a0f697a50"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60ab250f87c3d8454c579364b5a0f697a50">rapidjson::kParseErrorTermination</a></div><div class="ttdoc">Parsing was terminated. </div><div class="ttdef"><b>Definition:</b> error.h:88</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60a240cebadea89f7282ab263b5a22c9805"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a240cebadea89f7282ab263b5a22c9805">rapidjson::kParseErrorNumberTooBig</a></div><div class="ttdoc">Number too big to be stored in double. </div><div class="ttdef"><b>Definition:</b> error.h:84</div></div>
-<div class="ttc" id="structrapidjson_1_1_base_reader_handler_html"><div class="ttname"><a href="structrapidjson_1_1_base_reader_handler.html">rapidjson::BaseReaderHandler</a></div><div class="ttdoc">Default implementation of Handler. </div><div class="ttdef"><b>Definition:</b> reader.h:188</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60a28a1c720ae63560780ccd992dc999ab7"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a28a1c720ae63560780ccd992dc999ab7">rapidjson::kParseErrorNumberMissExponent</a></div><div class="ttdoc">Miss exponent in number. </div><div class="ttdef"><b>Definition:</b> error.h:86</div></div>
-<div class="ttc" id="rapidjson_8h_html"><div class="ttname"><a href="rapidjson_8h.html">rapidjson.h</a></div><div class="ttdoc">common definitions and configuration </div></div>
<div class="ttc" id="namespacerapidjson_html_a81379eb4e94a0386d71d15fda882ebc9a02748971d6ea0c5e22c69b8aa7f344ea"><div class="ttname"><a href="namespacerapidjson.html#a81379eb4e94a0386d71d15fda882ebc9a02748971d6ea0c5e22c69b8aa7f344ea">rapidjson::kParseInsituFlag</a></div><div class="ttdoc">In-situ(destructive) parsing. </div><div class="ttdef"><b>Definition:</b> reader.h:144</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_reader_html_a2bac14d193873d661d79ad000473a908"><div class="ttname"><a href="classrapidjson_1_1_generic_reader.html#a2bac14d193873d661d79ad000473a908">rapidjson::GenericReader::Parse</a></div><div class="ttdeci">ParseResult Parse(InputStream &amp;is, Handler &amp;handler)</div><div class="ttdoc">Parse JSON text (with kParseDefaultFlags) </div><div class="ttdef"><b>Definition:</b> reader.h:439</div></div>
-<div class="ttc" id="structrapidjson_1_1_u_t_f8_html"><div class="ttname"><a href="structrapidjson_1_1_u_t_f8.html">rapidjson::UTF8</a></div><div class="ttdoc">UTF-8 encoding. </div><div class="ttdef"><b>Definition:</b> encodings.h:96</div></div>
<div class="ttc" id="namespacerapidjson_html_a791735c27e073a70d720c2775ddf9568"><div class="ttname"><a href="namespacerapidjson.html#a791735c27e073a70d720c2775ddf9568">rapidjson::SkipWhitespace</a></div><div class="ttdeci">void SkipWhitespace(StringStream &amp;is)</div><div class="ttdoc">Template function specialization for StringStream. </div><div class="ttdef"><b>Definition:</b> reader.h:354</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_reader_html_a40fd326bad7d7033f096b549cbf159db"><div class="ttname"><a href="classrapidjson_1_1_generic_reader.html#a40fd326bad7d7033f096b549cbf159db">rapidjson::GenericReader::GetParseErrorCode</a></div><div class="ttdeci">ParseErrorCode GetParseErrorCode() const </div><div class="ttdoc">Get the ParseErrorCode of last parsing. </div><div class="ttdef"><b>Definition:</b> reader.h:447</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60a06183076357ebd9eca228666f614c286"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a06183076357ebd9eca228666f614c286">rapidjson::kParseErrorDocumentEmpty</a></div><div class="ttdoc">The document is empty. </div><div class="ttdef"><b>Definition:</b> error.h:67</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60a2a81a684f39fc882ec99f07e86343f73"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a2a81a684f39fc882ec99f07e86343f73">rapidjson::kParseErrorObjectMissCommaOrCurlyBracket</a></div><div class="ttdoc">Missing a comma or &#39;}&#39; after an object member. </div><div class="ttdef"><b>Definition:</b> error.h:74</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s_html_gga7d3acf640886b1f2552dc8c4cd6dea60a62ce0f5c74e4ab34ac325d2adda8fa8f"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gga7d3acf640886b1f2552dc8c4cd6dea60a62ce0f5c74e4ab34ac325d2adda8fa8f">rapidjson::kParseErrorStringInvalidEncoding</a></div><div class="ttdoc">Invalid encoding in string. </div><div class="ttdef"><b>Definition:</b> error.h:82</div></div>
-<div class="ttc" id="namespacerapidjson_html_a4eaef42a208413d1f2c8d4655ecec52d"><div class="ttname"><a href="namespacerapidjson.html#a4eaef42a208413d1f2c8d4655ecec52d">rapidjson::Reader</a></div><div class="ttdeci">GenericReader&lt; UTF8&lt;&gt;, UTF8&lt;&gt; &gt; Reader</div><div class="ttdoc">Reader with UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> reader.h:1677</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_ga77005e892e6601599beaf421b0395c31"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga77005e892e6601599beaf421b0395c31">RAPIDJSON_PARSE_DEFAULT_FLAGS</a></div><div class="ttdeci">#define RAPIDJSON_PARSE_DEFAULT_FLAGS</div><div class="ttdoc">User-defined kParseDefaultFlags definition. </div><div class="ttdef"><b>Definition:</b> reader.h:136</div></div>
-<div class="ttc" id="structrapidjson_1_1_generic_insitu_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_insitu_string_stream.html">rapidjson::GenericInsituStringStream</a></div><div class="ttdoc">A read-write string stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:679</div></div>
+<div class="ttc" id="structrapidjson_1_1_generic_insitu_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_insitu_string_stream.html">rapidjson::GenericInsituStringStream</a></div><div class="ttdoc">A read-write string stream. </div><div class="ttdef"><b>Definition:</b> fwd.h:52</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.7-->
diff --git a/zh-cn/regex_8h_source.html b/zh-cn/regex_8h_source.html
index f6a57d25..93cbdf94 100644
--- a/zh-cn/regex_8h_source.html
+++ b/zh-cn/regex_8h_source.html
@@ -105,666 +105,667 @@ $(document).ready(function(){initNavTree('regex_8h_source.html','');});
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_INTERNAL_REGEX_H_</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define RAPIDJSON_INTERNAL_REGEX_H_</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../rapidjson.h&quot;</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;stack.h&quot;</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#ifdef __clang__</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;RAPIDJSON_DIAG_PUSH</div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;RAPIDJSON_DIAG_OFF(padded)</div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;RAPIDJSON_DIAG_OFF(switch-enum)</div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;RAPIDJSON_DIAG_OFF(implicit-fallthrough)</div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#ifdef __GNUC__</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;RAPIDJSON_DIAG_PUSH</div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;RAPIDJSON_DIAG_OFF(effc++)</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_REGEX_VERBOSE</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#define RAPIDJSON_REGEX_VERBOSE 0</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;RAPIDJSON_NAMESPACE_BEGIN</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span>internal {</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">///////////////////////////////////////////////////////////////////////////////</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"></span><span class="comment">// GenericRegex</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> kRegexInvalidState = ~<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a>(0); <span class="comment">//!&lt; Represents an invalid index in GenericRegex::State::out, out1</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"></span><span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> kRegexInvalidRange = ~<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a>(0);</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">//! Regular expression engine with subset of ECMAscript grammar.</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"></span><span class="comment">/*!</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> Supported regular expression syntax:</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> - \c ab Concatenation</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"> - \c a|b Alternation</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> - \c a? Zero or one</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> - \c a* Zero or more</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> - \c a+ One or more</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> - \c a{3} Exactly 3 times</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"> - \c a{3,} At least 3 times</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"> - \c a{3,5} 3 to 5 times</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment"> - \c (ab) Grouping</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"> - \c ^a At the beginning</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"> - \c a$ At the end</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment"> - \c . Any character</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"> - \c [abc] Character classes</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment"> - \c [a-c] Character class range</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment"> - \c [a-z0-9_] Character class combination</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment"> - \c [^abc] Negated character classes</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment"> - \c [^a-c] Negated character class range</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment"> - \c [\b] Backspace (U+0008)</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment"> - \c \\| \\\\ ... Escape characters</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment"> - \c \\f Form feed (U+000C)</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment"> - \c \\n Line feed (U+000A)</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment"> - \c \\r Carriage return (U+000D)</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment"> - \c \\t Tab (U+0009)</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment"> - \c \\v Vertical tab (U+000B)</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment"> \note This is a Thompson NFA engine, implemented with reference to </span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment"> Cox, Russ. &quot;Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby,...).&quot;, </span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment"> https://swtch.com/~rsc/regexp/regexp1.html </span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator = CrtAllocator&gt;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="keyword">class </span>GenericRegex {</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> Encoding::Ch Ch;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GenericRegex(<span class="keyword">const</span> Ch* source, Allocator* allocator = 0) : </div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; states_(allocator, 256), ranges_(allocator, 256), root_(kRegexInvalidState), stateCount_(), rangeCount_(), </div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; stateSet_(), state0_(allocator, 0), state1_(allocator, 0), anchorBegin_(), anchorEnd_()</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; {</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GenericStringStream&lt;Encoding&gt; ss(source);</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; DecodedStream&lt;GenericStringStream&lt;Encoding&gt; &gt; ds(ss);</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; Parse(ds);</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; ~GenericRegex() {</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; Allocator::Free(stateSet_);</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;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordtype">bool</span> IsValid()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> root_ != kRegexInvalidState;</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="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordtype">bool</span> Match(InputStream&amp; is)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">return</span> SearchWithAnchoring(is, <span class="keyword">true</span>, <span class="keyword">true</span>);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordtype">bool</span> Match(<span class="keyword">const</span> Ch* s)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GenericStringStream&lt;Encoding&gt; is(s);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">return</span> Match(is);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordtype">bool</span> Search(InputStream&amp; is)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">return</span> SearchWithAnchoring(is, anchorBegin_, anchorEnd_);</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordtype">bool</span> Search(<span class="keyword">const</span> Ch* s)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; GenericStringStream&lt;Encoding&gt; is(s);</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> Search(is);</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="keyword">private</span>:</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">enum</span> Operator {</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; kZeroOrOne,</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; kZeroOrMore,</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; kOneOrMore,</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; kConcatenation,</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; kAlternation,</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; kLeftParenthesis</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; };</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> kAnyCharacterClass = 0xFFFFFFFF; <span class="comment">//!&lt; For &#39;.&#39;</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment"></span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> kRangeCharacterClass = 0xFFFFFFFE;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> kRangeNegationFlag = 0x80000000;</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; <span class="keyword">struct </span>Range {</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordtype">unsigned</span> start; <span class="comment">// </span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordtype">unsigned</span> end;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> next;</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;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">struct </span>State {</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> out; <span class="comment">//!&lt; Equals to kInvalid for matching state</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> out1; <span class="comment">//!&lt; Equals to non-kInvalid for split</span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> rangeStart;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">unsigned</span> codepoint;</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; };</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">struct </span>Frag {</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; Frag(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> o, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> m) : start(s), out(o), minIndex(m) {}</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> start;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> out; <span class="comment">//!&lt; link-list of all output states</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> minIndex;</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;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> SourceStream&gt;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">class </span>DecodedStream {</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; DecodedStream(SourceStream&amp; ss) : ss_(ss), codepoint_() { Decode(); }</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordtype">unsigned</span> Peek() { <span class="keywordflow">return</span> codepoint_; }</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordtype">unsigned</span> Take() {</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordtype">unsigned</span> c = codepoint_;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">if</span> (c) <span class="comment">// No further decoding when &#39;\0&#39;</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; Decode();</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">return</span> c;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordtype">void</span> Decode() {</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">if</span> (!Encoding::Decode(ss_, &amp;codepoint_))</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; codepoint_ = 0;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</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; SourceStream&amp; ss_;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordtype">unsigned</span> codepoint_;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; };</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; State&amp; GetState(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> index) {</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(index &lt; stateCount_);</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> states_.template Bottom&lt;State&gt;()[index];</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">const</span> State&amp; GetState(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> index)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(index &lt; stateCount_);</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">return</span> states_.template Bottom&lt;State&gt;()[index];</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; }</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; Range&amp; GetRange(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> index) {</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(index &lt; rangeCount_);</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">return</span> ranges_.template Bottom&lt;Range&gt;()[index];</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">const</span> Range&amp; GetRange(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> index)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(index &lt; rangeCount_);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> ranges_.template Bottom&lt;Range&gt;()[index];</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordtype">void</span> Parse(DecodedStream&lt;InputStream&gt;&amp; ds) {</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; Allocator allocator;</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; Stack&lt;Allocator&gt; operandStack(&amp;allocator, 256); <span class="comment">// Frag</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; Stack&lt;Allocator&gt; operatorStack(&amp;allocator, 256); <span class="comment">// Operator</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; Stack&lt;Allocator&gt; atomCountStack(&amp;allocator, 256); <span class="comment">// unsigned (Atom per parenthesis)</span></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; *atomCountStack.template Push&lt;unsigned&gt;() = 0;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordtype">unsigned</span> codepoint;</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">while</span> (ds.Peek() != 0) {</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">switch</span> (codepoint = ds.Take()) {</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;^&#39;</span>:</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; anchorBegin_ = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;$&#39;</span>:</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; anchorEnd_ = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;|&#39;</span>:</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">while</span> (!operatorStack.Empty() &amp;&amp; *operatorStack.template Top&lt;Operator&gt;() &lt; kAlternation)</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">if</span> (!Eval(operandStack, *operatorStack.template Pop&lt;Operator&gt;(1)))</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; *operatorStack.template Push&lt;Operator&gt;() = kAlternation;</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; *atomCountStack.template Top&lt;unsigned&gt;() = 0;</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;(&#39;</span>:</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; *operatorStack.template Push&lt;Operator&gt;() = kLeftParenthesis;</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; *atomCountStack.template Push&lt;unsigned&gt;() = 0;</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;)&#39;</span>:</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">while</span> (!operatorStack.Empty() &amp;&amp; *operatorStack.template Top&lt;Operator&gt;() != kLeftParenthesis)</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span> (!Eval(operandStack, *operatorStack.template Pop&lt;Operator&gt;(1)))</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">if</span> (operatorStack.Empty())</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; operatorStack.template Pop&lt;Operator&gt;(1);</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; atomCountStack.template Pop&lt;unsigned&gt;(1);</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; ImplicitConcatenation(atomCountStack, operatorStack);</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">break</span>;</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; <span class="keywordflow">case</span> <span class="charliteral">&#39;?&#39;</span>:</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">if</span> (!Eval(operandStack, kZeroOrOne))</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">break</span>;</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="keywordflow">case</span> <span class="charliteral">&#39;*&#39;</span>:</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">if</span> (!Eval(operandStack, kZeroOrMore))</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">break</span>;</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; <span class="keywordflow">case</span> <span class="charliteral">&#39;+&#39;</span>:</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">if</span> (!Eval(operandStack, kOneOrMore))</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">break</span>;</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="keywordflow">case</span> <span class="charliteral">&#39;{&#39;</span>:</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; {</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordtype">unsigned</span> n, m;</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">if</span> (!ParseUnsigned(ds, &amp;n) || n == 0)</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">if</span> (ds.Peek() == <span class="charliteral">&#39;,&#39;</span>) {</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; ds.Take();</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">if</span> (ds.Peek() == <span class="charliteral">&#39;}&#39;</span>)</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; m = 0;</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!ParseUnsigned(ds, &amp;m) || m &lt; n)</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">return</span>;</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="keywordflow">else</span></div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; m = n;</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">if</span> (!EvalQuantifier(operandStack, n, m) || ds.Peek() != <span class="charliteral">&#39;}&#39;</span>)</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; ds.Take();</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; }</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;.&#39;</span>:</div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; PushOperand(operandStack, kAnyCharacterClass);</div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; ImplicitConcatenation(atomCountStack, operatorStack);</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;[&#39;</span>:</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; {</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> range;</div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">if</span> (!ParseRange(ds, &amp;range))</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s = NewState(kRegexInvalidState, kRegexInvalidState, kRangeCharacterClass);</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; GetState(s).rangeStart = range;</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(s, s, s);</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; }</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; ImplicitConcatenation(atomCountStack, operatorStack);</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;\\&#39;</span>: <span class="comment">// Escape character</span></div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">if</span> (!CharacterEscape(ds, &amp;codepoint))</div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">return</span>; <span class="comment">// Unsupported escape character</span></div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="comment">// fall through to default</span></div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">default</span>: <span class="comment">// Pattern character</span></div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; PushOperand(operandStack, codepoint);</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; ImplicitConcatenation(atomCountStack, operatorStack);</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; }</div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; }</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">while</span> (!operatorStack.Empty())</div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">if</span> (!Eval(operandStack, *operatorStack.template Pop&lt;Operator&gt;(1)))</div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="comment">// Link the operand to matching state.</span></div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() == <span class="keyword">sizeof</span>(Frag)) {</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; Frag* e = operandStack.template Pop&lt;Frag&gt;(1);</div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; Patch(e-&gt;out, NewState(kRegexInvalidState, kRegexInvalidState, 0));</div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; root_ = e-&gt;start;</div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;</div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="preprocessor">#if RAPIDJSON_REGEX_VERBOSE</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; printf(<span class="stringliteral">&quot;root: %d\n&quot;</span>, root_);</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> i = 0; i &lt; stateCount_ ; i++) {</div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; State&amp; s = GetState(i);</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; printf(<span class="stringliteral">&quot;[%2d] out: %2d out1: %2d c: &#39;%c&#39;\n&quot;</span>, i, s.out, s.out1, (<span class="keywordtype">char</span>)s.codepoint);</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; }</div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; printf(<span class="stringliteral">&quot;\n&quot;</span>);</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="preprocessor">#endif</span></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"> 325</span>&#160; <span class="comment">// Preallocate buffer for SearchWithAnchoring()</span></div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(stateSet_ == 0);</div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">if</span> (stateCount_ &gt; 0) {</div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; stateSet_ = <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span>*<span class="keyword">&gt;</span>(states_.GetAllocator().Malloc(GetStateSetSize()));</div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; state0_.template Reserve&lt;SizeType&gt;(stateCount_);</div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; state1_.template Reserve&lt;SizeType&gt;(stateCount_);</div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; }</div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; }</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; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> NewState(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> out, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> out1, <span class="keywordtype">unsigned</span> codepoint) {</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; State* s = states_.template Push&lt;State&gt;();</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; s-&gt;out = out;</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; s-&gt;out1 = out1;</div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; s-&gt;codepoint = codepoint;</div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; s-&gt;rangeStart = kRegexInvalidRange;</div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">return</span> stateCount_++;</div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; }</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="keywordtype">void</span> PushOperand(Stack&lt;Allocator&gt;&amp; operandStack, <span class="keywordtype">unsigned</span> codepoint) {</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s = NewState(kRegexInvalidState, kRegexInvalidState, codepoint);</div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(s, s, s);</div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; }</div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordtype">void</span> ImplicitConcatenation(Stack&lt;Allocator&gt;&amp; atomCountStack, Stack&lt;Allocator&gt;&amp; operatorStack) {</div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">if</span> (*atomCountStack.template Top&lt;unsigned&gt;())</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; *operatorStack.template Push&lt;Operator&gt;() = kConcatenation;</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; (*atomCountStack.template Top&lt;unsigned&gt;())++;</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; }</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; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> Append(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> l1, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> l2) {</div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> old = l1;</div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">while</span> (GetState(l1).out != kRegexInvalidState)</div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; l1 = GetState(l1).out;</div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; GetState(l1).out = l2;</div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">return</span> old;</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"> 361</span>&#160;</div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordtype">void</span> Patch(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> l, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s) {</div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> next; l != kRegexInvalidState; l = next) {</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; next = GetState(l).out;</div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; GetState(l).out = s;</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"> 367</span>&#160; }</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordtype">bool</span> Eval(Stack&lt;Allocator&gt;&amp; operandStack, Operator op) {</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">switch</span> (op) {</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">case</span> kConcatenation:</div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() &gt;= <span class="keyword">sizeof</span>(Frag) * 2) {</div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; Frag e2 = *operandStack.template Pop&lt;Frag&gt;(1);</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; Frag e1 = *operandStack.template Pop&lt;Frag&gt;(1);</div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; Patch(e1.out, e2.start);</div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(e1.start, e2.out, Min(e1.minIndex, e2.minIndex));</div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</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"> 379</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">case</span> kAlternation:</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() &gt;= <span class="keyword">sizeof</span>(Frag) * 2) {</div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; Frag e2 = *operandStack.template Pop&lt;Frag&gt;(1);</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; Frag e1 = *operandStack.template Pop&lt;Frag&gt;(1);</div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s = NewState(e1.start, e2.start, 0);</div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(s, Append(e1.out, e2.out), Min(e1.minIndex, e2.minIndex));</div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">case</span> kZeroOrOne:</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() &gt;= <span class="keyword">sizeof</span>(Frag)) {</div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; Frag e = *operandStack.template Pop&lt;Frag&gt;(1);</div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s = NewState(kRegexInvalidState, e.start, 0);</div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(s, Append(e.out, s), e.minIndex);</div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; }</div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">case</span> kZeroOrMore:</div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() &gt;= <span class="keyword">sizeof</span>(Frag)) {</div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; Frag e = *operandStack.template Pop&lt;Frag&gt;(1);</div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s = NewState(kRegexInvalidState, e.start, 0);</div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; Patch(e.out, s);</div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(s, s, e.minIndex);</div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; }</div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;</div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">case</span> kOneOrMore:</div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() &gt;= <span class="keyword">sizeof</span>(Frag)) {</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; Frag e = *operandStack.template Pop&lt;Frag&gt;(1);</div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s = NewState(kRegexInvalidState, e.start, 0);</div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; Patch(e.out, s);</div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(e.start, s, e.minIndex);</div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; }</div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;</div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">default</span>:</div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; }</div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; }</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; <span class="keywordtype">bool</span> EvalQuantifier(Stack&lt;Allocator&gt;&amp; operandStack, <span class="keywordtype">unsigned</span> n, <span class="keywordtype">unsigned</span> m) {</div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(n &gt; 0);</div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(m == 0 || n &lt;= m); <span class="comment">// m == 0 means infinity</span></div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() &lt; <span class="keyword">sizeof</span>(Frag))</div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;</div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i &lt; n - 1; i++) <span class="comment">// a{3} -&gt; a a a</span></div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; CloneTopOperand(operandStack);</div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;</div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">if</span> (m == 0)</div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; Eval(operandStack, kOneOrMore); <span class="comment">// a{3,} -&gt; a a a+</span></div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (m &gt; n) {</div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; CloneTopOperand(operandStack); <span class="comment">// a{3,5} -&gt; a a a a</span></div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; Eval(operandStack, kZeroOrOne); <span class="comment">// a{3,5} -&gt; a a a a?</span></div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = n; i &lt; m - 1; i++)</div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; CloneTopOperand(operandStack); <span class="comment">// a{3,5} -&gt; a a a a? a?</span></div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = n; i &lt; m; i++)</div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; Eval(operandStack, kConcatenation); <span class="comment">// a{3,5} -&gt; a a aa?a?</span></div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; }</div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;</div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i &lt; n - 1; i++)</div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; Eval(operandStack, kConcatenation); <span class="comment">// a{3} -&gt; aaa, a{3,} -&gt; aaa+, a{3.5} -&gt; aaaa?a?</span></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">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; }</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; <span class="keyword">static</span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> Min(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> a, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> b) { <span class="keywordflow">return</span> a &lt; b ? a : b; }</div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;</div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordtype">void</span> CloneTopOperand(Stack&lt;Allocator&gt;&amp; operandStack) {</div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keyword">const</span> Frag *src = operandStack.template Top&lt;Frag&gt;();</div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> count = stateCount_ - src-&gt;minIndex; <span class="comment">// Assumes top operand contains states in [src-&gt;minIndex, stateCount_)</span></div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; State* s = states_.template Push&lt;State&gt;(count);</div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; memcpy(s, &amp;GetState(src-&gt;minIndex), count * <span class="keyword">sizeof</span>(State));</div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> j = 0; j &lt; count; j++) {</div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">if</span> (s[j].out != kRegexInvalidState)</div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; s[j].out += count;</div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">if</span> (s[j].out1 != kRegexInvalidState)</div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; s[j].out1 += count;</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; }</div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(src-&gt;start + count, src-&gt;out + count, src-&gt;minIndex + count);</div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; stateCount_ += count;</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"> 467</span>&#160;</div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordtype">bool</span> ParseUnsigned(DecodedStream&lt;InputStream&gt;&amp; ds, <span class="keywordtype">unsigned</span>* u) {</div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordtype">unsigned</span> r = 0;</div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordflow">while</span> (ds.Peek() &gt;= <span class="charliteral">&#39;0&#39;</span> &amp;&amp; ds.Peek() &lt;= <span class="charliteral">&#39;9&#39;</span>) {</div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordflow">if</span> (r &gt;= 429496729 &amp;&amp; ds.Peek() &gt; <span class="charliteral">&#39;5&#39;</span>) <span class="comment">// 2^32 - 1 = 4294967295</span></div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// overflow</span></div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; r = r * 10 + (ds.Take() - <span class="charliteral">&#39;0&#39;</span>);</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"> 476</span>&#160; *u = r;</div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; }</div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;</div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordtype">bool</span> ParseRange(DecodedStream&lt;InputStream&gt;&amp; ds, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a>* range) {</div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordtype">bool</span> isBegin = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordtype">bool</span> negate = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordtype">int</span> step = 0;</div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> start = kRegexInvalidRange;</div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> current = kRegexInvalidRange;</div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordtype">unsigned</span> codepoint;</div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordflow">while</span> ((codepoint = ds.Take()) != 0) {</div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">if</span> (isBegin) {</div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; isBegin = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">if</span> (codepoint == <span class="charliteral">&#39;^&#39;</span>) {</div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; negate = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">continue</span>;</div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; }</div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; }</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordflow">switch</span> (codepoint) {</div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;]&#39;</span>:</div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordflow">if</span> (start == kRegexInvalidRange)</div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// Error: nothing inside []</span></div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">if</span> (step == 2) { <span class="comment">// Add trailing &#39;-&#39;</span></div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> r = NewRange(<span class="charliteral">&#39;-&#39;</span>);</div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(current != kRegexInvalidRange);</div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; GetRange(current).next = r;</div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; }</div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">if</span> (negate)</div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; GetRange(start).start |= kRangeNegationFlag;</div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; *range = start;</div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;\\&#39;</span>:</div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordflow">if</span> (ds.Peek() == <span class="charliteral">&#39;b&#39;</span>) {</div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; ds.Take();</div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; codepoint = 0x0008; <span class="comment">// Escape backspace character</span></div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; }</div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!CharacterEscape(ds, &amp;codepoint))</div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="comment">// fall through to default</span></div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;</div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keywordflow">default</span>:</div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordflow">switch</span> (step) {</div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="keywordflow">case</span> 1:</div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordflow">if</span> (codepoint == <span class="charliteral">&#39;-&#39;</span>) {</div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; step++;</div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keywordflow">break</span>;</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="comment">// fall through to step 0 for other characters</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; <span class="keywordflow">case</span> 0:</div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; {</div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> r = NewRange(codepoint);</div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordflow">if</span> (current != kRegexInvalidRange)</div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; GetRange(current).next = r;</div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keywordflow">if</span> (start == kRegexInvalidRange)</div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; start = r;</div>
-<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; current = r;</div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; }</div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; step = 1;</div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;</div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keywordflow">default</span>:</div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(step == 2);</div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; GetRange(current).end = codepoint;</div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; step = 0;</div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; }</div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; }</div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; }</div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; }</div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; </div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> NewRange(<span class="keywordtype">unsigned</span> codepoint) {</div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; Range* r = ranges_.template Push&lt;Range&gt;();</div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; r-&gt;start = r-&gt;end = codepoint;</div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; r-&gt;next = kRegexInvalidRange;</div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">return</span> rangeCount_++;</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;</div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordtype">bool</span> CharacterEscape(DecodedStream&lt;InputStream&gt;&amp; ds, <span class="keywordtype">unsigned</span>* escapedCodepoint) {</div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordtype">unsigned</span> codepoint;</div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordflow">switch</span> (codepoint = ds.Take()) {</div>
-<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;^&#39;</span>:</div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;$&#39;</span>:</div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;|&#39;</span>:</div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;(&#39;</span>:</div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;)&#39;</span>:</div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;?&#39;</span>:</div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;*&#39;</span>:</div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;+&#39;</span>:</div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;.&#39;</span>:</div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;[&#39;</span>:</div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;]&#39;</span>:</div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;{&#39;</span>:</div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;}&#39;</span>:</div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;\\&#39;</span>:</div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; *escapedCodepoint = codepoint; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;f&#39;</span>: *escapedCodepoint = 0x000C; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;n&#39;</span>: *escapedCodepoint = 0x000A; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;r&#39;</span>: *escapedCodepoint = 0x000D; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;t&#39;</span>: *escapedCodepoint = 0x0009; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;v&#39;</span>: *escapedCodepoint = 0x000B; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">default</span>:</div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// Unsupported escape character</span></div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; }</div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; }</div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;</div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="keywordtype">bool</span> SearchWithAnchoring(InputStream&amp; is, <span class="keywordtype">bool</span> anchorBegin, <span class="keywordtype">bool</span> anchorEnd)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(IsValid());</div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; DecodedStream&lt;InputStream&gt; ds(is);</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"> 592</span>&#160; state0_.Clear();</div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; Stack&lt;Allocator&gt; *current = &amp;state0_, *next = &amp;state1_;</div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> stateSetSize = GetStateSetSize();</div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; std::memset(stateSet_, 0, stateSetSize);</div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;</div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="keywordtype">bool</span> matched = AddState(*current, root_);</div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="keywordtype">unsigned</span> codepoint;</div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordflow">while</span> (!current-&gt;Empty() &amp;&amp; (codepoint = ds.Take()) != 0) {</div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; std::memset(stateSet_, 0, stateSetSize);</div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; next-&gt;Clear();</div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; matched = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a>* s = current-&gt;template Bottom&lt;SizeType&gt;(); s != current-&gt;template End&lt;SizeType&gt;(); ++s) {</div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="keyword">const</span> State&amp; sr = GetState(*s);</div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="keywordflow">if</span> (sr.codepoint == codepoint ||</div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; sr.codepoint == kAnyCharacterClass || </div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; (sr.codepoint == kRangeCharacterClass &amp;&amp; MatchRange(sr.rangeStart, codepoint)))</div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; {</div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; matched = AddState(*next, sr.out) || matched;</div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <span class="keywordflow">if</span> (!anchorEnd &amp;&amp; matched)</div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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">if</span> (!anchorBegin)</div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; AddState(*next, root_);</div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; }</div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; internal::Swap(current, next);</div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; }</div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;</div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="keywordflow">return</span> matched;</div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; }</div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;</div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="keywordtype">size_t</span> GetStateSetSize()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="keywordflow">return</span> (stateCount_ + 31) / 32 * 4;</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="comment">// Return whether the added states is a match state</span></div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="keywordtype">bool</span> AddState(Stack&lt;Allocator&gt;&amp; l, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> index)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keywordflow">if</span> (index == kRegexInvalidState)</div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;</div>
-<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="keyword">const</span> State&amp; s = GetState(index);</div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <span class="keywordflow">if</span> (s.out1 != kRegexInvalidState) { <span class="comment">// Split</span></div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="keywordtype">bool</span> matched = AddState(l, s.out);</div>
-<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <span class="keywordflow">return</span> AddState(l, s.out1) || matched;</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"> 636</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!(stateSet_[index &gt;&gt; 5] &amp; (1 &lt;&lt; (index &amp; 31)))) {</div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; stateSet_[index &gt;&gt; 5] |= (1 &lt;&lt; (index &amp; 31));</div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; *l.template PushUnsafe&lt;SizeType&gt;() = index;</div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; }</div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <span class="keywordflow">return</span> s.out == kRegexInvalidState; <span class="comment">// by using PushUnsafe() above, we can ensure s is not validated due to reallocation.</span></div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; }</div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;</div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="keywordtype">bool</span> MatchRange(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> rangeIndex, <span class="keywordtype">unsigned</span> codepoint)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="keywordtype">bool</span> yes = (GetRange(rangeIndex).start &amp; kRangeNegationFlag) == 0;</div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">while</span> (rangeIndex != kRegexInvalidRange) {</div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="keyword">const</span> Range&amp; r = GetRange(rangeIndex);</div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keywordflow">if</span> (codepoint &gt;= (r.start &amp; ~kRangeNegationFlag) &amp;&amp; codepoint &lt;= r.end)</div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="keywordflow">return</span> yes;</div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; rangeIndex = r.next;</div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; }</div>
-<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="keywordflow">return</span> !yes;</div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; }</div>
-<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;</div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; Stack&lt;Allocator&gt; states_;</div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; Stack&lt;Allocator&gt; ranges_;</div>
-<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> root_;</div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> stateCount_;</div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> rangeCount_;</div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;</div>
-<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="comment">// For SearchWithAnchoring()</span></div>
-<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; uint32_t* stateSet_; <span class="comment">// allocated by states_.GetAllocator()</span></div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <span class="keyword">mutable</span> Stack&lt;Allocator&gt; state0_;</div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keyword">mutable</span> Stack&lt;Allocator&gt; state1_;</div>
-<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="keywordtype">bool</span> anchorBegin_;</div>
-<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="keywordtype">bool</span> anchorEnd_;</div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;};</div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;</div>
-<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;<span class="keyword">typedef</span> GenericRegex&lt;UTF8&lt;&gt; &gt; Regex;</div>
-<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;</div>
-<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;} <span class="comment">// namespace internal</span></div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;RAPIDJSON_NAMESPACE_END</div>
-<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;</div>
-<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;<span class="preprocessor">#ifdef __clang__</span></div>
-<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;RAPIDJSON_DIAG_POP</div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;<span class="preprocessor">#endif</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;<span class="preprocessor">#endif // RAPIDJSON_INTERNAL_REGEX_H_</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../allocators.h&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../stream.h&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;stack.h&quot;</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"> 22</span>&#160;<span class="preprocessor">#ifdef __clang__</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;RAPIDJSON_DIAG_PUSH</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;RAPIDJSON_DIAG_OFF(padded)</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;RAPIDJSON_DIAG_OFF(switch-enum)</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;RAPIDJSON_DIAG_OFF(implicit-fallthrough)</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifdef __GNUC__</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;RAPIDJSON_DIAG_PUSH</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;RAPIDJSON_DIAG_OFF(effc++)</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_REGEX_VERBOSE</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#define RAPIDJSON_REGEX_VERBOSE 0</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;RAPIDJSON_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span>internal {</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">///////////////////////////////////////////////////////////////////////////////</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"></span><span class="comment">// GenericRegex</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> kRegexInvalidState = ~<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a>(0); <span class="comment">//!&lt; Represents an invalid index in GenericRegex::State::out, out1</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"></span><span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> kRegexInvalidRange = ~<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a>(0);</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">//! Regular expression engine with subset of ECMAscript grammar.</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"></span><span class="comment">/*!</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> Supported regular expression syntax:</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"> - \c ab Concatenation</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> - \c a|b Alternation</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> - \c a? Zero or one</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> - \c a* Zero or more</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> - \c a+ One or more</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"> - \c a{3} Exactly 3 times</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"> - \c a{3,} At least 3 times</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment"> - \c a{3,5} 3 to 5 times</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"> - \c (ab) Grouping</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"> - \c ^a At the beginning</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment"> - \c a$ At the end</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"> - \c . Any character</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment"> - \c [abc] Character classes</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment"> - \c [a-c] Character class range</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment"> - \c [a-z0-9_] Character class combination</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment"> - \c [^abc] Negated character classes</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment"> - \c [^a-c] Negated character class range</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment"> - \c [\b] Backspace (U+0008)</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment"> - \c \\| \\\\ ... Escape characters</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment"> - \c \\f Form feed (U+000C)</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment"> - \c \\n Line feed (U+000A)</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment"> - \c \\r Carriage return (U+000D)</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment"> - \c \\t Tab (U+0009)</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment"> - \c \\v Vertical tab (U+000B)</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment"> \note This is a Thompson NFA engine, implemented with reference to </span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment"> Cox, Russ. &quot;Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby,...).&quot;, </span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment"> https://swtch.com/~rsc/regexp/regexp1.html </span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator = CrtAllocator&gt;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="keyword">class </span>GenericRegex {</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> Encoding::Ch Ch;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; GenericRegex(<span class="keyword">const</span> Ch* source, Allocator* allocator = 0) : </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; states_(allocator, 256), ranges_(allocator, 256), root_(kRegexInvalidState), stateCount_(), rangeCount_(), </div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; stateSet_(), state0_(allocator, 0), state1_(allocator, 0), anchorBegin_(), anchorEnd_()</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GenericStringStream&lt;Encoding&gt; ss(source);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; DecodedStream&lt;GenericStringStream&lt;Encoding&gt; &gt; ds(ss);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; Parse(ds);</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; ~GenericRegex() {</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; Allocator::Free(stateSet_);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordtype">bool</span> IsValid()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> root_ != kRegexInvalidState;</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;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordtype">bool</span> Match(InputStream&amp; is)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> SearchWithAnchoring(is, <span class="keyword">true</span>, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</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="keywordtype">bool</span> Match(<span class="keyword">const</span> Ch* s)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; GenericStringStream&lt;Encoding&gt; is(s);</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> Match(is);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordtype">bool</span> Search(InputStream&amp; is)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> SearchWithAnchoring(is, anchorBegin_, anchorEnd_);</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordtype">bool</span> Search(<span class="keyword">const</span> Ch* s)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; GenericStringStream&lt;Encoding&gt; is(s);</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> Search(is);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">enum</span> Operator {</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; kZeroOrOne,</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; kZeroOrMore,</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; kOneOrMore,</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; kConcatenation,</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; kAlternation,</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; kLeftParenthesis</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; };</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> kAnyCharacterClass = 0xFFFFFFFF; <span class="comment">//!&lt; For &#39;.&#39;</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment"></span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> kRangeCharacterClass = 0xFFFFFFFE;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> kRangeNegationFlag = 0x80000000;</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">struct </span>Range {</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordtype">unsigned</span> start; <span class="comment">// </span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordtype">unsigned</span> end;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> next;</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; };</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="keyword">struct </span>State {</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> out; <span class="comment">//!&lt; Equals to kInvalid for matching state</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> out1; <span class="comment">//!&lt; Equals to non-kInvalid for split</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> rangeStart;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">unsigned</span> codepoint;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; };</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">struct </span>Frag {</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; Frag(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> o, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> m) : start(s), out(o), minIndex(m) {}</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> start;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> out; <span class="comment">//!&lt; link-list of all output states</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment"></span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> minIndex;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; };</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"> 155</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> SourceStream&gt;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">class </span>DecodedStream {</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; DecodedStream(SourceStream&amp; ss) : ss_(ss), codepoint_() { Decode(); }</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordtype">unsigned</span> Peek() { <span class="keywordflow">return</span> codepoint_; }</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordtype">unsigned</span> Take() {</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordtype">unsigned</span> c = codepoint_;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">if</span> (c) <span class="comment">// No further decoding when &#39;\0&#39;</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; Decode();</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> c;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</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"> 167</span>&#160; <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordtype">void</span> Decode() {</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">if</span> (!Encoding::Decode(ss_, &amp;codepoint_))</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; codepoint_ = 0;</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;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; SourceStream&amp; ss_;</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordtype">unsigned</span> codepoint_;</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;</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; State&amp; GetState(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> index) {</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(index &lt; stateCount_);</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">return</span> states_.template Bottom&lt;State&gt;()[index];</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">const</span> State&amp; GetState(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> index)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(index &lt; stateCount_);</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span> states_.template Bottom&lt;State&gt;()[index];</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</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; Range&amp; GetRange(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> index) {</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(index &lt; rangeCount_);</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">return</span> ranges_.template Bottom&lt;Range&gt;()[index];</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">const</span> Range&amp; GetRange(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> index)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(index &lt; rangeCount_);</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">return</span> ranges_.template Bottom&lt;Range&gt;()[index];</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; }</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordtype">void</span> Parse(DecodedStream&lt;InputStream&gt;&amp; ds) {</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; Allocator allocator;</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; Stack&lt;Allocator&gt; operandStack(&amp;allocator, 256); <span class="comment">// Frag</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; Stack&lt;Allocator&gt; operatorStack(&amp;allocator, 256); <span class="comment">// Operator</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; Stack&lt;Allocator&gt; atomCountStack(&amp;allocator, 256); <span class="comment">// unsigned (Atom per parenthesis)</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; *atomCountStack.template Push&lt;unsigned&gt;() = 0;</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; <span class="keywordtype">unsigned</span> codepoint;</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">while</span> (ds.Peek() != 0) {</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">switch</span> (codepoint = ds.Take()) {</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;^&#39;</span>:</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; anchorBegin_ = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;$&#39;</span>:</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; anchorEnd_ = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;|&#39;</span>:</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">while</span> (!operatorStack.Empty() &amp;&amp; *operatorStack.template Top&lt;Operator&gt;() &lt; kAlternation)</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">if</span> (!Eval(operandStack, *operatorStack.template Pop&lt;Operator&gt;(1)))</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; *operatorStack.template Push&lt;Operator&gt;() = kAlternation;</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; *atomCountStack.template Top&lt;unsigned&gt;() = 0;</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;(&#39;</span>:</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; *operatorStack.template Push&lt;Operator&gt;() = kLeftParenthesis;</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; *atomCountStack.template Push&lt;unsigned&gt;() = 0;</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;)&#39;</span>:</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">while</span> (!operatorStack.Empty() &amp;&amp; *operatorStack.template Top&lt;Operator&gt;() != kLeftParenthesis)</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">if</span> (!Eval(operandStack, *operatorStack.template Pop&lt;Operator&gt;(1)))</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">if</span> (operatorStack.Empty())</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; operatorStack.template Pop&lt;Operator&gt;(1);</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; atomCountStack.template Pop&lt;unsigned&gt;(1);</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; ImplicitConcatenation(atomCountStack, operatorStack);</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;?&#39;</span>:</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">if</span> (!Eval(operandStack, kZeroOrOne))</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;*&#39;</span>:</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">if</span> (!Eval(operandStack, kZeroOrMore))</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;+&#39;</span>:</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">if</span> (!Eval(operandStack, kOneOrMore))</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;{&#39;</span>:</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; {</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordtype">unsigned</span> n, m;</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">if</span> (!ParseUnsigned(ds, &amp;n) || n == 0)</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">if</span> (ds.Peek() == <span class="charliteral">&#39;,&#39;</span>) {</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; ds.Take();</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">if</span> (ds.Peek() == <span class="charliteral">&#39;}&#39;</span>)</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; m = 0;</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!ParseUnsigned(ds, &amp;m) || m &lt; n)</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; }</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; m = n;</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">if</span> (!EvalQuantifier(operandStack, n, m) || ds.Peek() != <span class="charliteral">&#39;}&#39;</span>)</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; ds.Take();</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">break</span>;</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; <span class="keywordflow">case</span> <span class="charliteral">&#39;.&#39;</span>:</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; PushOperand(operandStack, kAnyCharacterClass);</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; ImplicitConcatenation(atomCountStack, operatorStack);</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;[&#39;</span>:</div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; {</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> range;</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">if</span> (!ParseRange(ds, &amp;range))</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s = NewState(kRegexInvalidState, kRegexInvalidState, kRangeCharacterClass);</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; GetState(s).rangeStart = range;</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(s, s, s);</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; }</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; ImplicitConcatenation(atomCountStack, operatorStack);</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;\\&#39;</span>: <span class="comment">// Escape character</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">if</span> (!CharacterEscape(ds, &amp;codepoint))</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">return</span>; <span class="comment">// Unsupported escape character</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="comment">// fall through to default</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">default</span>: <span class="comment">// Pattern character</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; PushOperand(operandStack, codepoint);</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; ImplicitConcatenation(atomCountStack, operatorStack);</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; }</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">while</span> (!operatorStack.Empty())</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">if</span> (!Eval(operandStack, *operatorStack.template Pop&lt;Operator&gt;(1)))</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="comment">// Link the operand to matching state.</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() == <span class="keyword">sizeof</span>(Frag)) {</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; Frag* e = operandStack.template Pop&lt;Frag&gt;(1);</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; Patch(e-&gt;out, NewState(kRegexInvalidState, kRegexInvalidState, 0));</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; root_ = e-&gt;start;</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="preprocessor">#if RAPIDJSON_REGEX_VERBOSE</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; printf(<span class="stringliteral">&quot;root: %d\n&quot;</span>, root_);</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> i = 0; i &lt; stateCount_ ; i++) {</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; State&amp; s = GetState(i);</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; printf(<span class="stringliteral">&quot;[%2d] out: %2d out1: %2d c: &#39;%c&#39;\n&quot;</span>, i, s.out, s.out1, (<span class="keywordtype">char</span>)s.codepoint);</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; }</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; printf(<span class="stringliteral">&quot;\n&quot;</span>);</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="preprocessor">#endif</span></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"> 325</span>&#160;</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="comment">// Preallocate buffer for SearchWithAnchoring()</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(stateSet_ == 0);</div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">if</span> (stateCount_ &gt; 0) {</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; stateSet_ = <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span>*<span class="keyword">&gt;</span>(states_.GetAllocator().Malloc(GetStateSetSize()));</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; state0_.template Reserve&lt;SizeType&gt;(stateCount_);</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; state1_.template Reserve&lt;SizeType&gt;(stateCount_);</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; }</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;</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> NewState(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> out, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> out1, <span class="keywordtype">unsigned</span> codepoint) {</div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; State* s = states_.template Push&lt;State&gt;();</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; s-&gt;out = out;</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; s-&gt;out1 = out1;</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; s-&gt;codepoint = codepoint;</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; s-&gt;rangeStart = kRegexInvalidRange;</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">return</span> stateCount_++;</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;</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordtype">void</span> PushOperand(Stack&lt;Allocator&gt;&amp; operandStack, <span class="keywordtype">unsigned</span> codepoint) {</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s = NewState(kRegexInvalidState, kRegexInvalidState, codepoint);</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(s, s, s);</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; }</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; <span class="keywordtype">void</span> ImplicitConcatenation(Stack&lt;Allocator&gt;&amp; atomCountStack, Stack&lt;Allocator&gt;&amp; operatorStack) {</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">if</span> (*atomCountStack.template Top&lt;unsigned&gt;())</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; *operatorStack.template Push&lt;Operator&gt;() = kConcatenation;</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; (*atomCountStack.template Top&lt;unsigned&gt;())++;</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"> 355</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> Append(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> l1, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> l2) {</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> old = l1;</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">while</span> (GetState(l1).out != kRegexInvalidState)</div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; l1 = GetState(l1).out;</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; GetState(l1).out = l2;</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">return</span> old;</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; }</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordtype">void</span> Patch(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> l, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s) {</div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> next; l != kRegexInvalidState; l = next) {</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; next = GetState(l).out;</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; GetState(l).out = s;</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; }</div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; }</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordtype">bool</span> Eval(Stack&lt;Allocator&gt;&amp; operandStack, Operator op) {</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">switch</span> (op) {</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">case</span> kConcatenation:</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() &gt;= <span class="keyword">sizeof</span>(Frag) * 2) {</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; Frag e2 = *operandStack.template Pop&lt;Frag&gt;(1);</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; Frag e1 = *operandStack.template Pop&lt;Frag&gt;(1);</div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; Patch(e1.out, e2.start);</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(e1.start, e2.out, Min(e1.minIndex, e2.minIndex));</div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; }</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">case</span> kAlternation:</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() &gt;= <span class="keyword">sizeof</span>(Frag) * 2) {</div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; Frag e2 = *operandStack.template Pop&lt;Frag&gt;(1);</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; Frag e1 = *operandStack.template Pop&lt;Frag&gt;(1);</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s = NewState(e1.start, e2.start, 0);</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(s, Append(e1.out, e2.out), Min(e1.minIndex, e2.minIndex));</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; }</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">case</span> kZeroOrOne:</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() &gt;= <span class="keyword">sizeof</span>(Frag)) {</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; Frag e = *operandStack.template Pop&lt;Frag&gt;(1);</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s = NewState(kRegexInvalidState, e.start, 0);</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(s, Append(e.out, s), e.minIndex);</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; }</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">case</span> kZeroOrMore:</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() &gt;= <span class="keyword">sizeof</span>(Frag)) {</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; Frag e = *operandStack.template Pop&lt;Frag&gt;(1);</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s = NewState(kRegexInvalidState, e.start, 0);</div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; Patch(e.out, s);</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(s, s, e.minIndex);</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</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">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">case</span> kOneOrMore:</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() &gt;= <span class="keyword">sizeof</span>(Frag)) {</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; Frag e = *operandStack.template Pop&lt;Frag&gt;(1);</div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> s = NewState(kRegexInvalidState, e.start, 0);</div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; Patch(e.out, s);</div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(e.start, s, e.minIndex);</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; }</div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; }</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; <span class="keywordtype">bool</span> EvalQuantifier(Stack&lt;Allocator&gt;&amp; operandStack, <span class="keywordtype">unsigned</span> n, <span class="keywordtype">unsigned</span> m) {</div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(n &gt; 0);</div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(m == 0 || n &lt;= m); <span class="comment">// m == 0 means infinity</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">if</span> (operandStack.GetSize() &lt; <span class="keyword">sizeof</span>(Frag))</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;</div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i &lt; n - 1; i++) <span class="comment">// a{3} -&gt; a a a</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; CloneTopOperand(operandStack);</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">if</span> (m == 0)</div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; Eval(operandStack, kOneOrMore); <span class="comment">// a{3,} -&gt; a a a+</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (m &gt; n) {</div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; CloneTopOperand(operandStack); <span class="comment">// a{3,5} -&gt; a a a a</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; Eval(operandStack, kZeroOrOne); <span class="comment">// a{3,5} -&gt; a a a a?</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = n; i &lt; m - 1; i++)</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; CloneTopOperand(operandStack); <span class="comment">// a{3,5} -&gt; a a a a? a?</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = n; i &lt; m; i++)</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; Eval(operandStack, kConcatenation); <span class="comment">// a{3,5} -&gt; a a aa?a?</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; }</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i &lt; n - 1; i++)</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; Eval(operandStack, kConcatenation); <span class="comment">// a{3} -&gt; aaa, a{3,} -&gt; aaa+, a{3.5} -&gt; aaaa?a?</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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"> 452</span>&#160; <span class="keyword">static</span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> Min(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> a, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> b) { <span class="keywordflow">return</span> a &lt; b ? a : b; }</div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;</div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordtype">void</span> CloneTopOperand(Stack&lt;Allocator&gt;&amp; operandStack) {</div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keyword">const</span> Frag *src = operandStack.template Top&lt;Frag&gt;();</div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> count = stateCount_ - src-&gt;minIndex; <span class="comment">// Assumes top operand contains states in [src-&gt;minIndex, stateCount_)</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; State* s = states_.template Push&lt;State&gt;(count);</div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; memcpy(s, &amp;GetState(src-&gt;minIndex), count * <span class="keyword">sizeof</span>(State));</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> j = 0; j &lt; count; j++) {</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">if</span> (s[j].out != kRegexInvalidState)</div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; s[j].out += count;</div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">if</span> (s[j].out1 != kRegexInvalidState)</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; s[j].out1 += count;</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; }</div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; *operandStack.template Push&lt;Frag&gt;() = Frag(src-&gt;start + count, src-&gt;out + count, src-&gt;minIndex + count);</div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; stateCount_ += count;</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; }</div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;</div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordtype">bool</span> ParseUnsigned(DecodedStream&lt;InputStream&gt;&amp; ds, <span class="keywordtype">unsigned</span>* u) {</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordtype">unsigned</span> r = 0;</div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordflow">while</span> (ds.Peek() &gt;= <span class="charliteral">&#39;0&#39;</span> &amp;&amp; ds.Peek() &lt;= <span class="charliteral">&#39;9&#39;</span>) {</div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordflow">if</span> (r &gt;= 429496729 &amp;&amp; ds.Peek() &gt; <span class="charliteral">&#39;5&#39;</span>) <span class="comment">// 2^32 - 1 = 4294967295</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// overflow</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; r = r * 10 + (ds.Take() - <span class="charliteral">&#39;0&#39;</span>);</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; }</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; *u = r;</div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; }</div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordtype">bool</span> ParseRange(DecodedStream&lt;InputStream&gt;&amp; ds, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a>* range) {</div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordtype">bool</span> isBegin = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordtype">bool</span> negate = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keywordtype">int</span> step = 0;</div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> start = kRegexInvalidRange;</div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> current = kRegexInvalidRange;</div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordtype">unsigned</span> codepoint;</div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">while</span> ((codepoint = ds.Take()) != 0) {</div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keywordflow">if</span> (isBegin) {</div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; isBegin = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">if</span> (codepoint == <span class="charliteral">&#39;^&#39;</span>) {</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; negate = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; }</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; }</div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;</div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">switch</span> (codepoint) {</div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;]&#39;</span>:</div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">if</span> (start == kRegexInvalidRange)</div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// Error: nothing inside []</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordflow">if</span> (step == 2) { <span class="comment">// Add trailing &#39;-&#39;</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> r = NewRange(<span class="charliteral">&#39;-&#39;</span>);</div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(current != kRegexInvalidRange);</div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; GetRange(current).next = r;</div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; }</div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">if</span> (negate)</div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; GetRange(start).start |= kRangeNegationFlag;</div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; *range = start;</div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;</div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;\\&#39;</span>:</div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keywordflow">if</span> (ds.Peek() == <span class="charliteral">&#39;b&#39;</span>) {</div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; ds.Take();</div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; codepoint = 0x0008; <span class="comment">// Escape backspace character</span></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">else</span> <span class="keywordflow">if</span> (!CharacterEscape(ds, &amp;codepoint))</div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="comment">// fall through to default</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;</div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="keywordflow">switch</span> (step) {</div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordflow">case</span> 1:</div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="keywordflow">if</span> (codepoint == <span class="charliteral">&#39;-&#39;</span>) {</div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; step++;</div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; }</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="comment">// fall through to step 0 for other characters</span></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"> 530</span>&#160; <span class="keywordflow">case</span> 0:</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"> 532</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> r = NewRange(codepoint);</div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keywordflow">if</span> (current != kRegexInvalidRange)</div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; GetRange(current).next = r;</div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordflow">if</span> (start == kRegexInvalidRange)</div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; start = r;</div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; current = r;</div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; }</div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; step = 1;</div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;</div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(step == 2);</div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; GetRange(current).end = codepoint;</div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; step = 0;</div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; }</div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; }</div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; }</div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; }</div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; </div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> NewRange(<span class="keywordtype">unsigned</span> codepoint) {</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; Range* r = ranges_.template Push&lt;Range&gt;();</div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; r-&gt;start = r-&gt;end = codepoint;</div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; r-&gt;next = kRegexInvalidRange;</div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keywordflow">return</span> rangeCount_++;</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; }</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordtype">bool</span> CharacterEscape(DecodedStream&lt;InputStream&gt;&amp; ds, <span class="keywordtype">unsigned</span>* escapedCodepoint) {</div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordtype">unsigned</span> codepoint;</div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">switch</span> (codepoint = ds.Take()) {</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;^&#39;</span>:</div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;$&#39;</span>:</div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;|&#39;</span>:</div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;(&#39;</span>:</div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;)&#39;</span>:</div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;?&#39;</span>:</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;*&#39;</span>:</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;+&#39;</span>:</div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;.&#39;</span>:</div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;[&#39;</span>:</div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;]&#39;</span>:</div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;{&#39;</span>:</div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;}&#39;</span>:</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;\\&#39;</span>:</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; *escapedCodepoint = codepoint; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;f&#39;</span>: *escapedCodepoint = 0x000C; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;n&#39;</span>: *escapedCodepoint = 0x000A; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;r&#39;</span>: *escapedCodepoint = 0x000D; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;t&#39;</span>: *escapedCodepoint = 0x0009; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;v&#39;</span>: *escapedCodepoint = 0x000B; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// Unsupported escape character</span></div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; }</div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; }</div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;</div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InputStream&gt;</div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordtype">bool</span> SearchWithAnchoring(InputStream&amp; is, <span class="keywordtype">bool</span> anchorBegin, <span class="keywordtype">bool</span> anchorEnd)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(IsValid());</div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; DecodedStream&lt;InputStream&gt; ds(is);</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;</div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; state0_.Clear();</div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; Stack&lt;Allocator&gt; *current = &amp;state0_, *next = &amp;state1_;</div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="keyword">const</span> <span class="keywordtype">size_t</span> stateSetSize = GetStateSetSize();</div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; std::memset(stateSet_, 0, stateSetSize);</div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;</div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="keywordtype">bool</span> matched = AddState(*current, root_);</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordtype">unsigned</span> codepoint;</div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="keywordflow">while</span> (!current-&gt;Empty() &amp;&amp; (codepoint = ds.Take()) != 0) {</div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; std::memset(stateSet_, 0, stateSetSize);</div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; next-&gt;Clear();</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; matched = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a>* s = current-&gt;template Bottom&lt;SizeType&gt;(); s != current-&gt;template End&lt;SizeType&gt;(); ++s) {</div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="keyword">const</span> State&amp; sr = GetState(*s);</div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keywordflow">if</span> (sr.codepoint == codepoint ||</div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; sr.codepoint == kAnyCharacterClass || </div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; (sr.codepoint == kRangeCharacterClass &amp;&amp; MatchRange(sr.rangeStart, codepoint)))</div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; {</div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; matched = AddState(*next, sr.out) || matched;</div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordflow">if</span> (!anchorEnd &amp;&amp; matched)</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; }</div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="keywordflow">if</span> (!anchorBegin)</div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; AddState(*next, root_);</div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; }</div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; internal::Swap(current, next);</div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; }</div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;</div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="keywordflow">return</span> matched;</div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; }</div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;</div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="keywordtype">size_t</span> GetStateSetSize()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keywordflow">return</span> (stateCount_ + 31) / 32 * 4;</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;</div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="comment">// Return whether the added states is a match state</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keywordtype">bool</span> AddState(Stack&lt;Allocator&gt;&amp; l, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> index)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="keywordflow">if</span> (index == kRegexInvalidState)</div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;</div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <span class="keyword">const</span> State&amp; s = GetState(index);</div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="keywordflow">if</span> (s.out1 != kRegexInvalidState) { <span class="comment">// Split</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <span class="keywordtype">bool</span> matched = AddState(l, s.out);</div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="keywordflow">return</span> AddState(l, s.out1) || matched;</div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; }</div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!(stateSet_[index &gt;&gt; 5] &amp; (1 &lt;&lt; (index &amp; 31)))) {</div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; stateSet_[index &gt;&gt; 5] |= (1 &lt;&lt; (index &amp; 31));</div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; *l.template PushUnsafe&lt;SizeType&gt;() = index;</div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; }</div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keywordflow">return</span> s.out == kRegexInvalidState; <span class="comment">// by using PushUnsafe() above, we can ensure s is not validated due to reallocation.</span></div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; }</div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;</div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="keywordtype">bool</span> MatchRange(<a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> rangeIndex, <span class="keywordtype">unsigned</span> codepoint)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordtype">bool</span> yes = (GetRange(rangeIndex).start &amp; kRangeNegationFlag) == 0;</div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="keywordflow">while</span> (rangeIndex != kRegexInvalidRange) {</div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keyword">const</span> Range&amp; r = GetRange(rangeIndex);</div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="keywordflow">if</span> (codepoint &gt;= (r.start &amp; ~kRangeNegationFlag) &amp;&amp; codepoint &lt;= r.end)</div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="keywordflow">return</span> yes;</div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; rangeIndex = r.next;</div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; }</div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <span class="keywordflow">return</span> !yes;</div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; }</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; Stack&lt;Allocator&gt; states_;</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; Stack&lt;Allocator&gt; ranges_;</div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> root_;</div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> stateCount_;</div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> rangeCount_;</div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; <span class="comment">// For SearchWithAnchoring()</span></div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; uint32_t* stateSet_; <span class="comment">// allocated by states_.GetAllocator()</span></div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keyword">mutable</span> Stack&lt;Allocator&gt; state0_;</div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="keyword">mutable</span> Stack&lt;Allocator&gt; state1_;</div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="keywordtype">bool</span> anchorBegin_;</div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <span class="keywordtype">bool</span> anchorEnd_;</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;};</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;</div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;<span class="keyword">typedef</span> GenericRegex&lt;UTF8&lt;&gt; &gt; Regex;</div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;</div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;} <span class="comment">// namespace internal</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;RAPIDJSON_NAMESPACE_END</div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;</div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;<span class="preprocessor">#ifdef __clang__</span></div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;RAPIDJSON_DIAG_POP</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;</div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_INTERNAL_REGEX_H_</span></div>
<div class="ttc" id="namespacerapidjson_html_a44eb33eaa523e36d466b1ced64b85c84"><div class="ttname"><a href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">rapidjson::SizeType</a></div><div class="ttdeci">unsigned SizeType</div><div class="ttdoc">Size type (for string lengths, array sizes, etc.) </div><div class="ttdef"><b>Definition:</b> rapidjson.h:349</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
</div><!-- fragment --></div><!-- contents -->
diff --git a/zh-cn/schema_8h_source.html b/zh-cn/schema_8h_source.html
index 7aac32f7..364a9098 100644
--- a/zh-cn/schema_8h_source.html
+++ b/zh-cn/schema_8h_source.html
@@ -107,7 +107,7 @@ $(document).ready(function(){initNavTree('schema_8h_source.html','');});
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="document_8h.html">document.h</a>&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;pointer.h&quot;</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span> <span class="comment">// HUGE_VAL, abs, floor</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span> <span class="comment">// abs, floor</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"> 22</span>&#160;<span class="preprocessor">#ifdef __clang__</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;RAPIDJSON_DIAG_PUSH</div>
@@ -215,7 +215,7 @@ $(document).ready(function(){initNavTree('schema_8h_source.html','');});
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment"></span><span class="comment">// Forward declarations</span></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="keyword">template</span> &lt;<span class="keyword">typename</span> ValueType, <span class="keyword">typename</span> Allocator&gt;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_schema_document.html"> 128</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_schema_document.html">GenericSchemaDocument</a>;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="keyword">class </span>GenericSchemaDocument;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="keyword">namespace </span>internal {</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
@@ -1370,11 +1370,11 @@ $(document).ready(function(){initNavTree('schema_8h_source.html','');});
<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;<span class="comment"></span><span class="comment">// IGenericRemoteSchemaDocumentProvider</span></div>
<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;</div>
<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> SchemaDocumentType&gt;</div>
-<div class="line"><a name="l01283"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html"> 1283</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IGenericRemoteSchemaDocumentProvider</a> {</div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;<span class="keyword">class </span>IGenericRemoteSchemaDocumentProvider {</div>
<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> SchemaDocumentType::Ch Ch;</div>
<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160;</div>
-<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IGenericRemoteSchemaDocumentProvider</a>() {}</div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; <span class="keyword">virtual</span> ~IGenericRemoteSchemaDocumentProvider() {}</div>
<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> SchemaDocumentType* GetRemoteDocument(<span class="keyword">const</span> Ch* uri, <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> length) = 0;</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"> 1290</span>&#160;<span class="comment"></span></div>
@@ -1391,18 +1391,18 @@ $(document).ready(function(){initNavTree('schema_8h_source.html','');});
<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;<span class="comment"> \tparam Allocator Allocator type for allocating memory of this document.</span></div>
<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> ValueT, <span class="keyword">typename</span> Allocator = CrtAllocator&gt;</div>
-<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_schema_document.html">GenericSchemaDocument</a> {</div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;<span class="keyword">class </span>GenericSchemaDocument {</div>
<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160; <span class="keyword">typedef</span> ValueT ValueType;</div>
-<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160; <span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IGenericRemoteSchemaDocumentProvider&lt;GenericSchemaDocument&gt;</a> IRemoteSchemaDocumentProviderType;</div>
-<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160; <span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_allocator.html">Allocator</a> AllocatorType;</div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160; <span class="keyword">typedef</span> IGenericRemoteSchemaDocumentProvider&lt;GenericSchemaDocument&gt; IRemoteSchemaDocumentProviderType;</div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160; <span class="keyword">typedef</span> Allocator AllocatorType;</div>
<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> ValueType::EncodingType EncodingType;</div>
<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> EncodingType::Ch Ch;</div>
<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160; <span class="keyword">typedef</span> internal::Schema&lt;GenericSchemaDocument&gt; SchemaType;</div>
-<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160; <span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_pointer.html">GenericPointer&lt;ValueType, Allocator&gt;</a> PointerType;</div>
-<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span>internal::Schema&lt;<a class="code" href="classrapidjson_1_1_generic_schema_document.html">GenericSchemaDocument</a>&gt;;</div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160; <span class="keyword">typedef</span> GenericPointer&lt;ValueType, Allocator&gt; PointerType;</div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span>internal::Schema&lt;GenericSchemaDocument&gt;;</div>
<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, <span class="keyword">typename</span>, <span class="keyword">typename</span>&gt;</div>
-<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_schema_validator.html">GenericSchemaValidator</a>;</div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span>GenericSchemaValidator;</div>
<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;<span class="comment"> //! Constructor.</span></div>
<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;<span class="comment"></span><span class="comment"> /*!</span></div>
@@ -1412,7 +1412,7 @@ $(document).ready(function(){initNavTree('schema_8h_source.html','');});
<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;<span class="comment"> \param remoteProvider An optional remote schema document provider for resolving remote reference. Can be null.</span></div>
<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;<span class="comment"> \param allocator An optional allocator instance for allocating memory. Can be null.</span></div>
<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l01325"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_schema_document.html#a09c94a10d412ee188de575b82292a90e"> 1325</a></span>&#160; <a class="code" href="classrapidjson_1_1_generic_schema_document.html#a09c94a10d412ee188de575b82292a90e">GenericSchemaDocument</a>(<span class="keyword">const</span> ValueType&amp; document, <a class="code" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IRemoteSchemaDocumentProviderType</a>* remoteProvider = 0, <a class="code" href="classrapidjson_1_1_allocator.html">Allocator</a>* allocator = 0) : </div>
+<div class="line"><a name="l01325"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_schema_document.html#ad200cc7bcb193c8568cdbda7b7fd0496"> 1325</a></span>&#160; <a class="code" href="classrapidjson_1_1_generic_schema_document.html#ad200cc7bcb193c8568cdbda7b7fd0496">GenericSchemaDocument</a>(<span class="keyword">const</span> ValueType&amp; document, <a class="code" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IRemoteSchemaDocumentProviderType</a>* remoteProvider = 0, <a class="code" href="classrapidjson_1_1_allocator.html">Allocator</a>* allocator = 0) : </div>
<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160; remoteProvider_(remoteProvider),</div>
<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160; allocator_(allocator),</div>
<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160; ownAllocator_(),</div>
@@ -1448,7 +1448,7 @@ $(document).ready(function(){initNavTree('schema_8h_source.html','');});
<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160; }</div>
<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;<span class="comment"> //! Destructor</span></div>
-<div class="line"><a name="l01361"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_schema_document.html#ad05d77ee8910b43513acf48fadf99c28"> 1361</a></span>&#160;<span class="comment"></span> <a class="code" href="classrapidjson_1_1_generic_schema_document.html#ad05d77ee8910b43513acf48fadf99c28">~GenericSchemaDocument</a>() {</div>
+<div class="line"><a name="l01361"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_schema_document.html#adf6f3372013227873ed392dee1e752bf"> 1361</a></span>&#160;<span class="comment"></span> <a class="code" href="classrapidjson_1_1_generic_schema_document.html#adf6f3372013227873ed392dee1e752bf">~GenericSchemaDocument</a>() {</div>
<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160; <span class="keywordflow">while</span> (!schemaMap_.Empty())</div>
<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; schemaMap_.template Pop&lt;SchemaEntry&gt;(1)-&gt;~SchemaEntry();</div>
<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;</div>
@@ -1456,7 +1456,7 @@ $(document).ready(function(){initNavTree('schema_8h_source.html','');});
<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160; }</div>
<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;<span class="comment"> //! Get the root schema.</span></div>
-<div class="line"><a name="l01369"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_schema_document.html#a666d94105aa39c446327105339378320"> 1369</a></span>&#160;<span class="comment"></span> <span class="keyword">const</span> SchemaType&amp; <a class="code" href="classrapidjson_1_1_generic_schema_document.html#a666d94105aa39c446327105339378320">GetRoot</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *root_; }</div>
+<div class="line"><a name="l01369"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_schema_document.html#af64ea17654ab0f1a91e382d422f91daf"> 1369</a></span>&#160;<span class="comment"></span> <span class="keyword">const</span> SchemaType&amp; <a class="code" href="classrapidjson_1_1_generic_schema_document.html#af64ea17654ab0f1a91e382d422f91daf">GetRoot</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *root_; }</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="keyword">private</span>:</div>
<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160; <span class="keyword">struct </span>SchemaRefEntry {</div>
@@ -1582,9 +1582,9 @@ $(document).ready(function(){initNavTree('schema_8h_source.html','');});
<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;};</div>
<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160;<span class="comment">//! GenericSchemaDocument using Value type.</span></div>
-<div class="line"><a name="l01495"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a1039ee639733008423fd0dfb67122e54"> 1495</a></span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_schema_document.html">GenericSchemaDocument&lt;Value&gt;</a> <a class="code" href="classrapidjson_1_1_generic_schema_document.html">SchemaDocument</a>;<span class="comment"></span></div>
+<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;<span class="comment"></span><span class="keyword">typedef</span> GenericSchemaDocument&lt;Value&gt; <a class="code" href="namespacerapidjson.html#a52bbb5d64d1319495089e1713a0653cf">SchemaDocument</a>;<span class="comment"></span></div>
<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;<span class="comment">//! IGenericRemoteSchemaDocumentProvider using SchemaDocument.</span></div>
-<div class="line"><a name="l01497"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a735a06a6e822111798e302c2f3af3de9"> 1497</a></span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IGenericRemoteSchemaDocumentProvider&lt;SchemaDocument&gt;</a> <a class="code" href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">IRemoteSchemaDocumentProvider</a>;</div>
+<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;<span class="comment"></span><span class="keyword">typedef</span> IGenericRemoteSchemaDocumentProvider&lt;SchemaDocument&gt; <a class="code" href="namespacerapidjson.html#af91eb8eea47b79d75b23e29fa9c0abb5">IRemoteSchemaDocumentProvider</a>;</div>
<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160;<span class="comment">///////////////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;<span class="comment"></span><span class="comment">// GenericSchemaValidator</span></div>
@@ -1603,9 +1603,9 @@ $(document).ready(function(){initNavTree('schema_8h_source.html','');});
<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160;<span class="keyword">template</span> &lt;</div>
<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160; <span class="keyword">typename</span> SchemaDocumentType,</div>
-<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160; <span class="keyword">typename</span> OutputHandler = <a class="code" href="structrapidjson_1_1_base_reader_handler.html">BaseReaderHandler&lt;typename SchemaDocumentType::SchemaType::EncodingType&gt;</a>,</div>
-<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160; <span class="keyword">typename</span> StateAllocator = <a class="code" href="classrapidjson_1_1_crt_allocator.html">CrtAllocator</a>&gt;</div>
-<div class="line"><a name="l01518"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_schema_validator.html"> 1518</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_schema_validator.html">GenericSchemaValidator</a> :</div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160; <span class="keyword">typename</span> OutputHandler = BaseReaderHandler&lt;typename SchemaDocumentType::SchemaType::EncodingType&gt;,</div>
+<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160; <span class="keyword">typename</span> StateAllocator = CrtAllocator&gt;</div>
+<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160;<span class="keyword">class </span>GenericSchemaValidator :</div>
<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160; <span class="keyword">public</span> internal::ISchemaStateFactory&lt;typename SchemaDocumentType::SchemaType&gt;, </div>
<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160; <span class="keyword">public</span> internal::ISchemaValidator</div>
<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160;{</div>
@@ -2067,42 +2067,41 @@ $(document).ready(function(){initNavTree('schema_8h_source.html','');});
<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160;</div>
<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_SCHEMA_H_</span></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e">rapidjson::kTrueType</a></div><div class="ttdoc">true </div><div class="ttdef"><b>Definition:</b> rapidjson.h:719</div></div>
-<div class="ttc" id="classrapidjson_1_1_generic_schema_document_html_ad05d77ee8910b43513acf48fadf99c28"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_document.html#ad05d77ee8910b43513acf48fadf99c28">rapidjson::GenericSchemaDocument::~GenericSchemaDocument</a></div><div class="ttdeci">~GenericSchemaDocument()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> schema.h:1361</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e">rapidjson::kTrueType</a></div><div class="ttdoc">true </div><div class="ttdef"><b>Definition:</b> rapidjson.h:560</div></div>
+<div class="ttc" id="namespacerapidjson_html_af91eb8eea47b79d75b23e29fa9c0abb5"><div class="ttname"><a href="namespacerapidjson.html#af91eb8eea47b79d75b23e29fa9c0abb5">rapidjson::IRemoteSchemaDocumentProvider</a></div><div class="ttdeci">IGenericRemoteSchemaDocumentProvider&lt; SchemaDocument &gt; IRemoteSchemaDocumentProvider</div><div class="ttdoc">IGenericRemoteSchemaDocumentProvider using SchemaDocument. </div><div class="ttdef"><b>Definition:</b> fwd.h:134</div></div>
<div class="ttc" id="classrapidjson_1_1_handler_html"><div class="ttname"><a href="classrapidjson_1_1_handler.html">rapidjson::Handler</a></div><div class="ttdoc">Concept for receiving events from GenericReader upon parsing. The functions return true if no error o...</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_schema_validator_html_a8381f8d4dca195449f086ffbd25bb9b7"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_validator.html#a8381f8d4dca195449f086ffbd25bb9b7">rapidjson::GenericSchemaValidator::GetInvalidSchemaPointer</a></div><div class="ttdeci">PointerType GetInvalidSchemaPointer() const </div><div class="ttdoc">Gets the JSON pointer pointed to the invalid schema. </div><div class="ttdef"><b>Definition:</b> schema.h:1602</div></div>
<div class="ttc" id="rapidjson_8h_html_aaee1245f375a71be1ac9b8a07ba5fb8f"><div class="ttname"><a href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a></div><div class="ttdeci">#define RAPIDJSON_UINT64_C2(high32, low32)</div><div class="ttdoc">Construct a 64-bit literal by a pair of 32-bit integer. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:288</div></div>
-<div class="ttc" id="classrapidjson_1_1_generic_reader_html"><div class="ttname"><a href="classrapidjson_1_1_generic_reader.html">rapidjson::GenericReader</a></div><div class="ttdoc">SAX-style JSON parser. Use Reader for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> reader.h:379</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_reader_html"><div class="ttname"><a href="classrapidjson_1_1_generic_reader.html">rapidjson::GenericReader</a></div><div class="ttdoc">SAX-style JSON parser. Use Reader for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> fwd.h:88</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_schema_validator_html_a914628c4d69faea91ada1dee61d25d59"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_validator.html#a914628c4d69faea91ada1dee61d25d59">rapidjson::GenericSchemaValidator::GetInvalidSchemaKeyword</a></div><div class="ttdeci">const Ch * GetInvalidSchemaKeyword() const </div><div class="ttdoc">Gets the keyword of invalid schema. </div><div class="ttdef"><b>Definition:</b> schema.h:1607</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_schema_document_html_ad200cc7bcb193c8568cdbda7b7fd0496"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_document.html#ad200cc7bcb193c8568cdbda7b7fd0496">rapidjson::GenericSchemaDocument::GenericSchemaDocument</a></div><div class="ttdeci">GenericSchemaDocument(const ValueType &amp;document, IRemoteSchemaDocumentProviderType *remoteProvider=0, Allocator *allocator=0)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> schema.h:1325</div></div>
<div class="ttc" id="namespacerapidjson_html_a44eb33eaa523e36d466b1ced64b85c84"><div class="ttname"><a href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">rapidjson::SizeType</a></div><div class="ttdeci">unsigned SizeType</div><div class="ttdoc">Size type (for string lengths, array sizes, etc.) </div><div class="ttdef"><b>Definition:</b> rapidjson.h:349</div></div>
-<div class="ttc" id="classrapidjson_1_1_generic_schema_document_html_a666d94105aa39c446327105339378320"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_document.html#a666d94105aa39c446327105339378320">rapidjson::GenericSchemaDocument::GetRoot</a></div><div class="ttdeci">const SchemaType &amp; GetRoot() const </div><div class="ttdoc">Get the root schema. </div><div class="ttdef"><b>Definition:</b> schema.h:1369</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607">rapidjson::kFalseType</a></div><div class="ttdoc">false </div><div class="ttdef"><b>Definition:</b> rapidjson.h:718</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607">rapidjson::kFalseType</a></div><div class="ttdoc">false </div><div class="ttdef"><b>Definition:</b> rapidjson.h:559</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_schema_validator_html_ad9f00d71bf62b8983cf2514c43fb1572"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_validator.html#ad9f00d71bf62b8983cf2514c43fb1572">rapidjson::GenericSchemaValidator::~GenericSchemaValidator</a></div><div class="ttdeci">~GenericSchemaValidator()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> schema.h:1584</div></div>
-<div class="ttc" id="classrapidjson_1_1_crt_allocator_html"><div class="ttname"><a href="classrapidjson_1_1_crt_allocator.html">rapidjson::CrtAllocator</a></div><div class="ttdoc">C-runtime library allocator. </div><div class="ttdef"><b>Definition:</b> allocators.h:62</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_schema_validator_html_acc07bd08b00195d84bb5b83f59c593d3"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_validator.html#acc07bd08b00195d84bb5b83f59c593d3">rapidjson::GenericSchemaValidator::GenericSchemaValidator</a></div><div class="ttdeci">GenericSchemaValidator(const SchemaDocumentType &amp;schemaDocument, StateAllocator *allocator=0, size_t schemaStackCapacity=kDefaultSchemaStackCapacity, size_t documentStackCapacity=kDefaultDocumentStackCapacity)</div><div class="ttdoc">Constructor without output handler. </div><div class="ttdef"><b>Definition:</b> schema.h:1535</div></div>
-<div class="ttc" id="classrapidjson_1_1_generic_pointer_html"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer</a></div><div class="ttdoc">Represents a JSON Pointer. Use Pointer for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> pointer.h:76</div></div>
-<div class="ttc" id="classrapidjson_1_1_generic_schema_document_html"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_document.html">rapidjson::GenericSchemaDocument</a></div><div class="ttdoc">JSON schema document. </div><div class="ttdef"><b>Definition:</b> schema.h:128</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:716</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">rapidjson::kObjectType</a></div><div class="ttdoc">object </div><div class="ttdef"><b>Definition:</b> rapidjson.h:720</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_pointer_html"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer</a></div><div class="ttdoc">Represents a JSON Pointer. Use Pointer for UTF8 encoding and default allocator. </div><div class="ttdef"><b>Definition:</b> fwd.h:121</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:557</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">rapidjson::kObjectType</a></div><div class="ttdoc">object </div><div class="ttdef"><b>Definition:</b> rapidjson.h:561</div></div>
<div class="ttc" id="document_8h_html"><div class="ttname"><a href="document_8h.html">document.h</a></div></div>
<div class="ttc" id="classrapidjson_1_1_generic_schema_validator_html_afe6cd0d9088a1d4cf8100c0efc9f76fc"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_validator.html#afe6cd0d9088a1d4cf8100c0efc9f76fc">rapidjson::GenericSchemaValidator::Reset</a></div><div class="ttdeci">void Reset()</div><div class="ttdoc">Reset the internal states. </div><div class="ttdef"><b>Definition:</b> schema.h:1590</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_schema_validator_html_ab520a4ee6df3e23ffb948c8d5ae7bf38"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_validator.html#ab520a4ee6df3e23ffb948c8d5ae7bf38">rapidjson::GenericSchemaValidator::IsValid</a></div><div class="ttdeci">virtual bool IsValid() const </div><div class="ttdoc">Checks whether the current state is valid. </div><div class="ttdef"><b>Definition:</b> schema.h:1599</div></div>
-<div class="ttc" id="classrapidjson_1_1_i_generic_remote_schema_document_provider_html"><div class="ttname"><a href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">rapidjson::IGenericRemoteSchemaDocumentProvider</a></div><div class="ttdef"><b>Definition:</b> schema.h:1283</div></div>
+<div class="ttc" id="classrapidjson_1_1_i_generic_remote_schema_document_provider_html"><div class="ttname"><a href="classrapidjson_1_1_i_generic_remote_schema_document_provider.html">rapidjson::IGenericRemoteSchemaDocumentProvider</a></div><div class="ttdef"><b>Definition:</b> fwd.h:128</div></div>
<div class="ttc" id="rapidjson_8h_html_ab9e102fa2f1a0ae4914d4dac21f690a2"><div class="ttname"><a href="rapidjson_8h.html#ab9e102fa2f1a0ae4914d4dac21f690a2">RAPIDJSON_NEW</a></div><div class="ttdeci">#define RAPIDJSON_NEW(x)</div><div class="ttdoc">! customization point for global new </div><div class="ttdef"><b>Definition:</b> rapidjson.h:540</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">rapidjson::kArrayType</a></div><div class="ttdoc">array </div><div class="ttdef"><b>Definition:</b> rapidjson.h:721</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">rapidjson::kArrayType</a></div><div class="ttdoc">array </div><div class="ttdef"><b>Definition:</b> rapidjson.h:562</div></div>
<div class="ttc" id="rapidjson_8h_html_a52c941c3fdd646527cdcd42aa846a28a"><div class="ttname"><a href="rapidjson_8h.html#a52c941c3fdd646527cdcd42aa846a28a">RAPIDJSON_DELETE</a></div><div class="ttdeci">#define RAPIDJSON_DELETE(x)</div><div class="ttdoc">! customization point for global delete </div><div class="ttdef"><b>Definition:</b> rapidjson.h:544</div></div>
<div class="ttc" id="classrapidjson_1_1_schema_validating_reader_html_a1e2bcc66cad23376241cd91e8bf8c706"><div class="ttname"><a href="classrapidjson_1_1_schema_validating_reader.html#a1e2bcc66cad23376241cd91e8bf8c706">rapidjson::SchemaValidatingReader::SchemaValidatingReader</a></div><div class="ttdeci">SchemaValidatingReader(InputStream &amp;is, const SchemaDocumentType &amp;sd)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> schema.h:1930</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff">rapidjson::kNullType</a></div><div class="ttdoc">null </div><div class="ttdef"><b>Definition:</b> rapidjson.h:717</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7">rapidjson::kStringType</a></div><div class="ttdoc">string </div><div class="ttdef"><b>Definition:</b> rapidjson.h:722</div></div>
-<div class="ttc" id="structrapidjson_1_1_base_reader_handler_html"><div class="ttname"><a href="structrapidjson_1_1_base_reader_handler.html">rapidjson::BaseReaderHandler</a></div><div class="ttdoc">Default implementation of Handler. </div><div class="ttdef"><b>Definition:</b> reader.h:188</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_schema_document_html_adf6f3372013227873ed392dee1e752bf"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_document.html#adf6f3372013227873ed392dee1e752bf">rapidjson::GenericSchemaDocument::~GenericSchemaDocument</a></div><div class="ttdeci">~GenericSchemaDocument()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> schema.h:1361</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff">rapidjson::kNullType</a></div><div class="ttdoc">null </div><div class="ttdef"><b>Definition:</b> rapidjson.h:558</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7">rapidjson::kStringType</a></div><div class="ttdoc">string </div><div class="ttdef"><b>Definition:</b> rapidjson.h:563</div></div>
+<div class="ttc" id="namespacerapidjson_html_a52bbb5d64d1319495089e1713a0653cf"><div class="ttname"><a href="namespacerapidjson.html#a52bbb5d64d1319495089e1713a0653cf">rapidjson::SchemaDocument</a></div><div class="ttdeci">GenericSchemaDocument&lt; Value, CrtAllocator &gt; SchemaDocument</div><div class="ttdoc">GenericSchemaDocument using Value type. </div><div class="ttdef"><b>Definition:</b> fwd.h:131</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_schema_validator_html_af66e4a41d71c89edfabb176af7839f04"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_validator.html#af66e4a41d71c89edfabb176af7839f04">rapidjson::GenericSchemaValidator::GetInvalidDocumentPointer</a></div><div class="ttdeci">PointerType GetInvalidDocumentPointer() const </div><div class="ttdoc">Gets the JSON pointer pointed to the invalid value. </div><div class="ttdef"><b>Definition:</b> schema.h:1612</div></div>
-<div class="ttc" id="classrapidjson_1_1_generic_schema_validator_html"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_validator.html">rapidjson::GenericSchemaValidator</a></div><div class="ttdoc">JSON Schema Validator. </div><div class="ttdef"><b>Definition:</b> schema.h:1518</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_schema_validator_html"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_validator.html">rapidjson::GenericSchemaValidator</a></div><div class="ttdoc">JSON Schema Validator. </div><div class="ttdef"><b>Definition:</b> fwd.h:140</div></div>
<div class="ttc" id="classrapidjson_1_1_allocator_html"><div class="ttname"><a href="classrapidjson_1_1_allocator.html">rapidjson::Allocator</a></div><div class="ttdoc">Concept for allocating, resizing and freeing memory block. </div></div>
-<div class="ttc" id="classrapidjson_1_1_generic_schema_document_html_a09c94a10d412ee188de575b82292a90e"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_document.html#a09c94a10d412ee188de575b82292a90e">rapidjson::GenericSchemaDocument::GenericSchemaDocument</a></div><div class="ttdeci">GenericSchemaDocument(const ValueType &amp;document, IRemoteSchemaDocumentProviderType *remoteProvider=0, Allocator *allocator=0)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> schema.h:1325</div></div>
<div class="ttc" id="classrapidjson_1_1_schema_validating_reader_html"><div class="ttname"><a href="classrapidjson_1_1_schema_validating_reader.html">rapidjson::SchemaValidatingReader</a></div><div class="ttdoc">A helper class for parsing with validation. </div><div class="ttdef"><b>Definition:</b> schema.h:1920</div></div>
<div class="ttc" id="classrapidjson_1_1_generic_schema_validator_html_a0e1d8f19381bd53d77cc00a9a6dcd067"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_validator.html#a0e1d8f19381bd53d77cc00a9a6dcd067">rapidjson::GenericSchemaValidator::GenericSchemaValidator</a></div><div class="ttdeci">GenericSchemaValidator(const SchemaDocumentType &amp;schemaDocument, OutputHandler &amp;outputHandler, StateAllocator *allocator=0, size_t schemaStackCapacity=kDefaultSchemaStackCapacity, size_t documentStackCapacity=kDefaultDocumentStackCapacity)</div><div class="ttdoc">Constructor with output handler. </div><div class="ttdef"><b>Definition:</b> schema.h:1562</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a">rapidjson::kNumberType</a></div><div class="ttdoc">number </div><div class="ttdef"><b>Definition:</b> rapidjson.h:723</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_schema_document_html_af64ea17654ab0f1a91e382d422f91daf"><div class="ttname"><a href="classrapidjson_1_1_generic_schema_document.html#af64ea17654ab0f1a91e382d422f91daf">rapidjson::GenericSchemaDocument::GetRoot</a></div><div class="ttdeci">const SchemaType &amp; GetRoot() const </div><div class="ttdoc">Get the root schema. </div><div class="ttdef"><b>Definition:</b> schema.h:1369</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a">rapidjson::kNumberType</a></div><div class="ttdoc">number </div><div class="ttdef"><b>Definition:</b> rapidjson.h:564</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.7-->
diff --git a/zh-cn/search/all_10.js b/zh-cn/search/all_10.js
index cc04febe..c99a9663 100644
--- a/zh-cn/search/all_10.js
+++ b/zh-cn/search/all_10.js
@@ -3,7 +3,7 @@ var searchData=
['sax',['SAX',['../md_doc_sax_8zh-cn.html',1,'']]],
['schema',['Schema',['../md_doc_schema_8zh-cn.html',1,'']]],
['s',['s',['../structrapidjson_1_1_generic_string_ref.html#a001276ee57cbcbd3c14449045c71e994',1,'rapidjson::GenericStringRef']]],
- ['schemadocument',['SchemaDocument',['../namespacerapidjson.html#a1039ee639733008423fd0dfb67122e54',1,'rapidjson']]],
+ ['schemadocument',['SchemaDocument',['../namespacerapidjson.html#a52bbb5d64d1319495089e1713a0653cf',1,'rapidjson']]],
['schemavalidatingreader',['SchemaValidatingReader',['../classrapidjson_1_1_schema_validating_reader.html#a1e2bcc66cad23376241cd91e8bf8c706',1,'rapidjson::SchemaValidatingReader']]],
['schemavalidatingreader',['SchemaValidatingReader',['../classrapidjson_1_1_schema_validating_reader.html',1,'rapidjson']]],
['set',['Set',['../group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#a40c0bd4d6c535c57acbb5c2e656bea38',1,'rapidjson::ParseResult::Set()'],['../classrapidjson_1_1_generic_pointer.html#aecea7b5c4786f509e35c3917efa57fce',1,'rapidjson::GenericPointer::Set(ValueType &amp;root, ValueType &amp;value, typename ValueType::AllocatorType &amp;allocator) const '],['../classrapidjson_1_1_generic_pointer.html#ac19f479c656ddd6a8bd9888a9fb27f96',1,'rapidjson::GenericPointer::Set(ValueType &amp;root, const ValueType &amp;value, typename ValueType::AllocatorType &amp;allocator) const '],['../classrapidjson_1_1_generic_pointer.html#a98454081fb9557b3d2285c4e89bd34f6',1,'rapidjson::GenericPointer::Set(ValueType &amp;root, const Ch *value, typename ValueType::AllocatorType &amp;allocator) const '],['../classrapidjson_1_1_generic_pointer.html#a151f17dc1c655b9dc0a9a3cf06e6bdcb',1,'rapidjson::GenericPointer::Set(ValueType &amp;root, const std::basic_string&lt; Ch &gt; &amp;value, typename ValueType::AllocatorType &amp;allocator) const '],['../classrapidjson_1_1_generic_pointer.html#ae9037fa1a22498e2a8c0f96f866f6288',1,'rapidjson::GenericPointer::Set(ValueType &amp;root, T value, typename ValueType::AllocatorType &amp;allocator) const '],['../classrapidjson_1_1_generic_pointer.html#add58edd4f813645f8ffead6956967f96',1,'rapidjson::GenericPointer::Set(GenericDocument&lt; EncodingType, typename ValueType::AllocatorType, stackAllocator &gt; &amp;document, ValueType &amp;value) const '],['../classrapidjson_1_1_generic_pointer.html#a83ff802b8fcacd96e60ba1c2627a19f0',1,'rapidjson::GenericPointer::Set(GenericDocument&lt; EncodingType, typename ValueType::AllocatorType, stackAllocator &gt; &amp;document, const ValueType &amp;value) const '],['../classrapidjson_1_1_generic_pointer.html#a2ee50bcbfa76119094eef0284eeddfbe',1,'rapidjson::GenericPointer::Set(GenericDocument&lt; EncodingType, typename ValueType::AllocatorType, stackAllocator &gt; &amp;document, const Ch *value) const '],['../classrapidjson_1_1_generic_pointer.html#a9bd1c4076e732ffc1b4527ac5659264e',1,'rapidjson::GenericPointer::Set(GenericDocument&lt; EncodingType, typename ValueType::AllocatorType, stackAllocator &gt; &amp;document, const std::basic_string&lt; Ch &gt; &amp;value) const '],['../classrapidjson_1_1_generic_pointer.html#af547130d348ca1805d882955a377bbe4',1,'rapidjson::GenericPointer::Set(GenericDocument&lt; EncodingType, typename ValueType::AllocatorType, stackAllocator &gt; &amp;document, T value) const ']]],
@@ -16,17 +16,17 @@ var searchData=
['size_5f',['size_',['../structrapidjson_1_1_memory_stream.html#a8c8437d59c32168a74226312d9e96ace',1,'rapidjson::MemoryStream']]],
['sizetype',['SizeType',['../namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84',1,'rapidjson']]],
['skipwhitespace',['SkipWhitespace',['../namespacerapidjson.html#a6efb0f4d2a6f81477a59718d42e9464a',1,'rapidjson::SkipWhitespace(InputStream &amp;is)'],['../namespacerapidjson.html#a3caa6f393c9940e6525d5f1c21ed9ea2',1,'rapidjson::SkipWhitespace(InsituStringStream &amp;is)'],['../namespacerapidjson.html#a791735c27e073a70d720c2775ddf9568',1,'rapidjson::SkipWhitespace(StringStream &amp;is)']]],
- ['src_5f',['src_',['../structrapidjson_1_1_generic_string_stream.html#a9a38a9d5b1ce782cacd4ec1bdf87fc2d',1,'rapidjson::GenericStringStream::src_()'],['../structrapidjson_1_1_memory_stream.html#ac0b4da6016e5ba6241604fd4258fb722',1,'rapidjson::MemoryStream::src_()']]],
+ ['src_5f',['src_',['../structrapidjson_1_1_memory_stream.html#ac0b4da6016e5ba6241604fd4258fb722',1,'rapidjson::MemoryStream::src_()'],['../structrapidjson_1_1_generic_string_stream.html#a9a38a9d5b1ce782cacd4ec1bdf87fc2d',1,'rapidjson::GenericStringStream::src_()']]],
['stream',['Stream',['../classrapidjson_1_1_stream.html',1,'rapidjson']]],
['streamtraits',['StreamTraits',['../structrapidjson_1_1_stream_traits.html',1,'rapidjson']]],
['streamtraits_3c_20genericinsitustringstream_3c_20encoding_20_3e_20_3e',['StreamTraits&lt; GenericInsituStringStream&lt; Encoding &gt; &gt;',['../structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html',1,'rapidjson']]],
['streamtraits_3c_20genericstringstream_3c_20encoding_20_3e_20_3e',['StreamTraits&lt; GenericStringStream&lt; Encoding &gt; &gt;',['../structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html',1,'rapidjson']]],
['string',['String',['../classrapidjson_1_1_pretty_writer.html#aec337a69de964cdbb8eed17d44065f3d',1,'rapidjson::PrettyWriter::String()'],['../classrapidjson_1_1_writer.html#a2efd8a54a3cb86f8adedfd6bb692d0d9',1,'rapidjson::Writer::String()']]],
- ['stringbuffer',['StringBuffer',['../namespacerapidjson.html#a51a6c35028b76e354bbb9e25d7125641',1,'rapidjson']]],
+ ['stringbuffer',['StringBuffer',['../namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21',1,'rapidjson']]],
['stringify',['Stringify',['../classrapidjson_1_1_generic_pointer.html#ab9166f175517b1bff8c2219ea769e506',1,'rapidjson::GenericPointer']]],
['stringifyurifragment',['StringifyUriFragment',['../classrapidjson_1_1_generic_pointer.html#a40413907ac94e218f93625d3a5c8c454',1,'rapidjson::GenericPointer']]],
['stringref',['StringRef',['../structrapidjson_1_1_generic_string_ref.html#aa6b9fd9f6aa49405a574c362ba9af6b5',1,'rapidjson::GenericStringRef::StringRef(const CharType *str)'],['../structrapidjson_1_1_generic_string_ref.html#a578c51ab574a50a9c760b9da7c7562f2',1,'rapidjson::GenericStringRef::StringRef(const CharType *str, size_t length)'],['../structrapidjson_1_1_generic_string_ref.html#af94951529a5d51e8c4e6e770bb707c1f',1,'rapidjson::GenericStringRef::StringRef(const std::basic_string&lt; CharType &gt; &amp;str)'],['../namespacerapidjson.html#aa6b9fd9f6aa49405a574c362ba9af6b5',1,'rapidjson::StringRef(const CharType *str)'],['../namespacerapidjson.html#a578c51ab574a50a9c760b9da7c7562f2',1,'rapidjson::StringRef(const CharType *str, size_t length)'],['../namespacerapidjson.html#af94951529a5d51e8c4e6e770bb707c1f',1,'rapidjson::StringRef(const std::basic_string&lt; CharType &gt; &amp;str)']]],
['stringreftype',['StringRefType',['../classrapidjson_1_1_generic_value.html#a559eb9cea54364a35518b02f6d74f379',1,'rapidjson::GenericValue']]],
- ['stringstream',['StringStream',['../namespacerapidjson.html#ada4cef9931d4a3a0017ee776c907807b',1,'rapidjson']]],
+ ['stringstream',['StringStream',['../namespacerapidjson.html#a021f77051e9f85188fc2f71ff5a15ebc',1,'rapidjson']]],
['swap',['Swap',['../classrapidjson_1_1_generic_value.html#a06f10ef54f5692ce08206c26624a21db',1,'rapidjson::GenericValue::Swap()'],['../classrapidjson_1_1_generic_document.html#abf1cbab989b856f9d260787b2575750b',1,'rapidjson::GenericDocument::Swap()'],['../classrapidjson_1_1_generic_pointer.html#aaaa5b0ecdfa6af45e7dabc1987c87cac',1,'rapidjson::GenericPointer::Swap(ValueType &amp;root, ValueType &amp;value, typename ValueType::AllocatorType &amp;allocator) const '],['../classrapidjson_1_1_generic_pointer.html#ad9f28da15453d91c3669618a6f48bfcc',1,'rapidjson::GenericPointer::Swap(GenericDocument&lt; EncodingType, typename ValueType::AllocatorType, stackAllocator &gt; &amp;document, ValueType &amp;value) const '],['../classrapidjson_1_1_generic_value.html#a58ecce8a34fc029039b8079de246bdaa',1,'rapidjson::GenericValue::swap()'],['../classrapidjson_1_1_generic_document.html#a0d63efcc43758ac3aed77e868233369d',1,'rapidjson::GenericDocument::swap()']]]
];
diff --git a/zh-cn/search/all_13.js b/zh-cn/search/all_13.js
index f1a32f9f..efa17410 100644
--- a/zh-cn/search/all_13.js
+++ b/zh-cn/search/all_13.js
@@ -1,7 +1,7 @@
var searchData=
[
['validate',['Validate',['../structrapidjson_1_1_transcoder.html#ae9178e512e99394a38785e73927140da',1,'rapidjson::Transcoder']]],
- ['value',['value',['../structrapidjson_1_1_generic_member.html#a8ffff2076e62d988a070a136da6ffca6',1,'rapidjson::GenericMember::value()'],['../namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d',1,'rapidjson::Value()']]],
+ ['value',['value',['../structrapidjson_1_1_generic_member.html#a8ffff2076e62d988a070a136da6ffca6',1,'rapidjson::GenericMember::value()'],['../namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505',1,'rapidjson::Value()']]],
['valuecount',['valueCount',['../structrapidjson_1_1_writer_1_1_level.html#a8e478a154f4230449e441ce986c49970',1,'rapidjson::Writer::Level']]],
['valueiterator',['ValueIterator',['../classrapidjson_1_1_generic_value.html#a06ce0e14ec83b53c83e1b1699b53a25e',1,'rapidjson::GenericValue']]],
['valuetype',['ValueType',['../classrapidjson_1_1_generic_value.html#ad2935191ab28c2c2e472b739a9d58202',1,'rapidjson::GenericValue::ValueType()'],['../classrapidjson_1_1_generic_document.html#a41bbec044c421e870a9d355075d741bc',1,'rapidjson::GenericDocument::ValueType()']]]
diff --git a/zh-cn/search/all_15.js b/zh-cn/search/all_15.js
index e89a14f8..2696f5f1 100644
--- a/zh-cn/search/all_15.js
+++ b/zh-cn/search/all_15.js
@@ -1,7 +1,7 @@
var searchData=
[
['_7egenericpointer',['~GenericPointer',['../classrapidjson_1_1_generic_pointer.html#a0e144b9956a5272c13ceff3b9306e748',1,'rapidjson::GenericPointer']]],
- ['_7egenericschemadocument',['~GenericSchemaDocument',['../classrapidjson_1_1_generic_schema_document.html#ad05d77ee8910b43513acf48fadf99c28',1,'rapidjson::GenericSchemaDocument']]],
+ ['_7egenericschemadocument',['~GenericSchemaDocument',['../classrapidjson_1_1_generic_schema_document.html#adf6f3372013227873ed392dee1e752bf',1,'rapidjson::GenericSchemaDocument']]],
['_7egenericschemavalidator',['~GenericSchemaValidator',['../classrapidjson_1_1_generic_schema_validator.html#ad9f00d71bf62b8983cf2514c43fb1572',1,'rapidjson::GenericSchemaValidator']]],
['_7egenericvalue',['~GenericValue',['../classrapidjson_1_1_generic_value.html#a433a64b466c80cadf7d1acaa6f065437',1,'rapidjson::GenericValue']]],
['_7ememorypoolallocator',['~MemoryPoolAllocator',['../classrapidjson_1_1_memory_pool_allocator.html#aa1d5b36c67611937e8ad6b2be53a483e',1,'rapidjson::MemoryPoolAllocator']]]
diff --git a/zh-cn/search/all_3.js b/zh-cn/search/all_3.js
index 6ab68359..6a1dec8b 100644
--- a/zh-cn/search/all_3.js
+++ b/zh-cn/search/all_3.js
@@ -1,7 +1,7 @@
var searchData=
[
['differencetype',['DifferenceType',['../classrapidjson_1_1_generic_member_iterator.html#a41b953d6523fdc09f4f21c7b345e5833',1,'rapidjson::GenericMemberIterator']]],
- ['document',['Document',['../namespacerapidjson.html#a660c934c2959121babf799b6cb206659',1,'rapidjson']]],
+ ['document',['Document',['../namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8',1,'rapidjson']]],
['document_2eh',['document.h',['../document_8h.html',1,'']]],
['double',['Double',['../classrapidjson_1_1_writer.html#ad5f042d9c1a8ce5be2d52e18255b4390',1,'rapidjson::Writer']]],
['dom',['DOM',['../md_doc_dom_8zh-cn.html',1,'']]]
diff --git a/zh-cn/search/all_6.js b/zh-cn/search/all_6.js
index 67f85888..c50e207b 100644
--- a/zh-cn/search/all_6.js
+++ b/zh-cn/search/all_6.js
@@ -12,7 +12,7 @@ var searchData=
['genericreader',['GenericReader',['../classrapidjson_1_1_generic_reader.html#a56ab1065ea75167aeacb4802425bf57f',1,'rapidjson::GenericReader']]],
['genericreader',['GenericReader',['../classrapidjson_1_1_generic_reader.html',1,'rapidjson']]],
['genericschemadocument',['GenericSchemaDocument',['../classrapidjson_1_1_generic_schema_document.html',1,'rapidjson']]],
- ['genericschemadocument',['GenericSchemaDocument',['../classrapidjson_1_1_generic_schema_document.html#a09c94a10d412ee188de575b82292a90e',1,'rapidjson::GenericSchemaDocument']]],
+ ['genericschemadocument',['GenericSchemaDocument',['../classrapidjson_1_1_generic_schema_document.html#ad200cc7bcb193c8568cdbda7b7fd0496',1,'rapidjson::GenericSchemaDocument']]],
['genericschemavalidator',['GenericSchemaValidator',['../classrapidjson_1_1_generic_schema_validator.html',1,'rapidjson']]],
['genericschemavalidator',['GenericSchemaValidator',['../classrapidjson_1_1_generic_schema_validator.html#acc07bd08b00195d84bb5b83f59c593d3',1,'rapidjson::GenericSchemaValidator::GenericSchemaValidator(const SchemaDocumentType &amp;schemaDocument, StateAllocator *allocator=0, size_t schemaStackCapacity=kDefaultSchemaStackCapacity, size_t documentStackCapacity=kDefaultDocumentStackCapacity)'],['../classrapidjson_1_1_generic_schema_validator.html#a0e1d8f19381bd53d77cc00a9a6dcd067',1,'rapidjson::GenericSchemaValidator::GenericSchemaValidator(const SchemaDocumentType &amp;schemaDocument, OutputHandler &amp;outputHandler, StateAllocator *allocator=0, size_t schemaStackCapacity=kDefaultSchemaStackCapacity, size_t documentStackCapacity=kDefaultDocumentStackCapacity)']]],
['genericstringbuffer',['GenericStringBuffer',['../classrapidjson_1_1_generic_string_buffer.html',1,'rapidjson']]],
@@ -34,7 +34,7 @@ var searchData=
['getparseerrorcode',['GetParseErrorCode',['../classrapidjson_1_1_generic_pointer.html#ac817b123619422f03c44a46978d9fbd0',1,'rapidjson::GenericPointer::GetParseErrorCode()'],['../classrapidjson_1_1_generic_reader.html#a40fd326bad7d7033f096b549cbf159db',1,'rapidjson::GenericReader::GetParseErrorCode()']]],
['getparseerrorfunc',['GetParseErrorFunc',['../group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ga4e77e464ec8abe1111ee581fc2cb00de',1,'rapidjson']]],
['getparseerroroffset',['GetParseErrorOffset',['../classrapidjson_1_1_generic_pointer.html#adc01f1be5f05127f849a2bf10a97e89b',1,'rapidjson::GenericPointer']]],
- ['getroot',['GetRoot',['../classrapidjson_1_1_generic_schema_document.html#a666d94105aa39c446327105339378320',1,'rapidjson::GenericSchemaDocument']]],
+ ['getroot',['GetRoot',['../classrapidjson_1_1_generic_schema_document.html#af64ea17654ab0f1a91e382d422f91daf',1,'rapidjson::GenericSchemaDocument']]],
['getstackcapacity',['GetStackCapacity',['../classrapidjson_1_1_generic_document.html#ac785c064649dea6cfa67207b6bda748e',1,'rapidjson::GenericDocument']]],
['getstringlength',['GetStringLength',['../classrapidjson_1_1_generic_value.html#a979c4ba6dd2a311be837ae083423aca8',1,'rapidjson::GenericValue']]],
['gettokencount',['GetTokenCount',['../classrapidjson_1_1_generic_pointer.html#a2949cb104effdf323781ae70ce469ed9',1,'rapidjson::GenericPointer']]],
diff --git a/zh-cn/search/all_8.js b/zh-cn/search/all_8.js
index 7348e0f9..653e5e0f 100644
--- a/zh-cn/search/all_8.js
+++ b/zh-cn/search/all_8.js
@@ -4,8 +4,8 @@ var searchData=
['igenericremoteschemadocumentprovider',['IGenericRemoteSchemaDocumentProvider',['../classrapidjson_1_1_i_generic_remote_schema_document_provider.html',1,'rapidjson']]],
['inarray',['inArray',['../structrapidjson_1_1_writer_1_1_level.html#a5920547a092cb88db486d75064ffe50e',1,'rapidjson::Writer::Level']]],
['index',['index',['../structrapidjson_1_1_generic_pointer_1_1_token.html#a50331c9e3dedc34d2c79745b2e58fb2d',1,'rapidjson::GenericPointer::Token']]],
- ['insitustringstream',['InsituStringStream',['../namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787',1,'rapidjson']]],
- ['iremoteschemadocumentprovider',['IRemoteSchemaDocumentProvider',['../namespacerapidjson.html#a735a06a6e822111798e302c2f3af3de9',1,'rapidjson']]],
+ ['insitustringstream',['InsituStringStream',['../namespacerapidjson.html#a64e957c8d9d7cd15b193ffc31410038e',1,'rapidjson']]],
+ ['iremoteschemadocumentprovider',['IRemoteSchemaDocumentProvider',['../namespacerapidjson.html#af91eb8eea47b79d75b23e29fa9c0abb5',1,'rapidjson']]],
['iscomplete',['IsComplete',['../classrapidjson_1_1_writer.html#ad70218827efbda426bbc8620a9339c3e',1,'rapidjson::Writer']]],
['iserror',['IsError',['../group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#a5ab5548c7a7776f4da20eac09fe57c1b',1,'rapidjson::ParseResult']]],
['isvalid',['IsValid',['../classrapidjson_1_1_generic_pointer.html#a112f364fe9aeabba2a72e83bcbeb8fda',1,'rapidjson::GenericPointer::IsValid()'],['../classrapidjson_1_1_generic_schema_validator.html#ab520a4ee6df3e23ffb948c8d5ae7bf38',1,'rapidjson::GenericSchemaValidator::IsValid()']]],
diff --git a/zh-cn/search/all_e.js b/zh-cn/search/all_e.js
index ebb508ab..610045ba 100644
--- a/zh-cn/search/all_e.js
+++ b/zh-cn/search/all_e.js
@@ -8,14 +8,14 @@ var searchData=
['parseresult',['ParseResult',['../group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#a0f03679d5fa2736d9e351541e767fac1',1,'rapidjson::ParseResult::ParseResult()'],['../group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#ad15710045513f13ba526753c4a2cb59b',1,'rapidjson::ParseResult::ParseResult(ParseErrorCode code, size_t offset)']]],
['parseresult',['ParseResult',['../group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#structrapidjson_1_1_parse_result',1,'rapidjson']]],
['parsestream',['ParseStream',['../classrapidjson_1_1_generic_document.html#a3ae97682cf04685c7db9d89ebc399b85',1,'rapidjson::GenericDocument::ParseStream(InputStream &amp;is)'],['../classrapidjson_1_1_generic_document.html#ae4ee7d86b8c906c83dbe15e57eb6ac6a',1,'rapidjson::GenericDocument::ParseStream(InputStream &amp;is)'],['../classrapidjson_1_1_generic_document.html#acf96a3c7fd61486d049c701b1fe5d414',1,'rapidjson::GenericDocument::ParseStream(InputStream &amp;is)']]],
- ['pointer',['Pointer',['../classrapidjson_1_1_generic_member_iterator.html#a17955e32a06f667c672b270e6a4d2195',1,'rapidjson::GenericMemberIterator::Pointer()'],['../namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3',1,'rapidjson::Pointer()']]],
+ ['pointer',['Pointer',['../classrapidjson_1_1_generic_member_iterator.html#a17955e32a06f667c672b270e6a4d2195',1,'rapidjson::GenericMemberIterator::Pointer()'],['../namespacerapidjson.html#a080910f74d2f5046e6724280159cf374',1,'rapidjson::Pointer()']]],
['pointerparseerrorcode',['PointerParseErrorCode',['../group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gade540ee4cc2a416c23b8ee2c12393c7b',1,'rapidjson']]],
['popback',['PopBack',['../classrapidjson_1_1_generic_value.html#ae475f31fb851138ced40e2ff6cb43ca6',1,'rapidjson::GenericValue']]],
['populate',['Populate',['../classrapidjson_1_1_generic_document.html#a63e18887979da500ece6f0bd10d29b64',1,'rapidjson::GenericDocument']]],
['prettywriter',['PrettyWriter',['../classrapidjson_1_1_pretty_writer.html',1,'rapidjson']]],
['prettywriter',['PrettyWriter',['../classrapidjson_1_1_pretty_writer.html#a96edf06d5bbb010d3e8c95b22b6f4750',1,'rapidjson::PrettyWriter']]],
['pushback',['PushBack',['../classrapidjson_1_1_generic_value.html#a0ec9f34bef5890241d4bc882b73b1db4',1,'rapidjson::GenericValue::PushBack(GenericValue &amp;value, Allocator &amp;allocator)'],['../classrapidjson_1_1_generic_value.html#a41946915cb219a684f6ffc9341efee22',1,'rapidjson::GenericValue::PushBack(StringRefType value, Allocator &amp;allocator)'],['../classrapidjson_1_1_generic_value.html#aa59273e0adfe2a9d0e6ac29d2537d9ed',1,'rapidjson::GenericValue::PushBack(T value, Allocator &amp;allocator)']]],
- ['putn',['PutN',['../namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43',1,'rapidjson::PutN(Stream &amp;stream, Ch c, size_t n)'],['../namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a',1,'rapidjson::PutN(FileWriteStream &amp;stream, char c, size_t n)'],['../namespacerapidjson.html#aba27b0c8dcf724aa2b288a24fda0811b',1,'rapidjson::PutN(MemoryBuffer &amp;memoryBuffer, char c, size_t n)'],['../namespacerapidjson.html#a9d43be9c033dc49738b713fe6fbafecf',1,'rapidjson::PutN(GenericStringBuffer&lt; UTF8&lt;&gt; &gt; &amp;stream, char c, size_t n)']]],
+ ['putn',['PutN',['../namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a',1,'rapidjson::PutN(FileWriteStream &amp;stream, char c, size_t n)'],['../namespacerapidjson.html#aba27b0c8dcf724aa2b288a24fda0811b',1,'rapidjson::PutN(MemoryBuffer &amp;memoryBuffer, char c, size_t n)'],['../namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43',1,'rapidjson::PutN(Stream &amp;stream, Ch c, size_t n)'],['../namespacerapidjson.html#a9d43be9c033dc49738b713fe6fbafecf',1,'rapidjson::PutN(GenericStringBuffer&lt; UTF8&lt;&gt; &gt; &amp;stream, char c, size_t n)']]],
['putreserve',['PutReserve',['../namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740',1,'rapidjson']]],
['putunsafe',['PutUnsafe',['../namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20',1,'rapidjson']]]
];
diff --git a/zh-cn/search/all_f.js b/zh-cn/search/all_f.js
index 8901ebbe..06b68ccc 100644
--- a/zh-cn/search/all_f.js
+++ b/zh-cn/search/all_f.js
@@ -30,7 +30,7 @@ var searchData=
['rapidjson_5fuint64_5fc2',['RAPIDJSON_UINT64_C2',['../rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f',1,'rapidjson.h']]],
['rapidjson_5funlikely',['RAPIDJSON_UNLIKELY',['../group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga6a2b1695c13e77ae425e3cbac980ccb5',1,'rapidjson.h']]],
['rapidjson_5fversion_5fstring',['RAPIDJSON_VERSION_STRING',['../group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gad283cfde97d9a32b7d8e8107b11f70a6',1,'rapidjson.h']]],
- ['reader',['Reader',['../namespacerapidjson.html#a4eaef42a208413d1f2c8d4655ecec52d',1,'rapidjson']]],
+ ['reader',['Reader',['../namespacerapidjson.html#ad5310edd1226f5b3ea82dc0d4d3740c6',1,'rapidjson']]],
['reader_2eh',['reader.h',['../reader_8h.html',1,'']]],
['realloc',['Realloc',['../classrapidjson_1_1_memory_pool_allocator.html#a880524b17bbecb5d2691b8075050d55d',1,'rapidjson::MemoryPoolAllocator']]],
['reference',['Reference',['../classrapidjson_1_1_generic_member_iterator.html#a915a1b6f0a0bbe6a1df69571a789e348',1,'rapidjson::GenericMemberIterator']]],
diff --git a/zh-cn/search/functions_11.js b/zh-cn/search/functions_11.js
index e89a14f8..2696f5f1 100644
--- a/zh-cn/search/functions_11.js
+++ b/zh-cn/search/functions_11.js
@@ -1,7 +1,7 @@
var searchData=
[
['_7egenericpointer',['~GenericPointer',['../classrapidjson_1_1_generic_pointer.html#a0e144b9956a5272c13ceff3b9306e748',1,'rapidjson::GenericPointer']]],
- ['_7egenericschemadocument',['~GenericSchemaDocument',['../classrapidjson_1_1_generic_schema_document.html#ad05d77ee8910b43513acf48fadf99c28',1,'rapidjson::GenericSchemaDocument']]],
+ ['_7egenericschemadocument',['~GenericSchemaDocument',['../classrapidjson_1_1_generic_schema_document.html#adf6f3372013227873ed392dee1e752bf',1,'rapidjson::GenericSchemaDocument']]],
['_7egenericschemavalidator',['~GenericSchemaValidator',['../classrapidjson_1_1_generic_schema_validator.html#ad9f00d71bf62b8983cf2514c43fb1572',1,'rapidjson::GenericSchemaValidator']]],
['_7egenericvalue',['~GenericValue',['../classrapidjson_1_1_generic_value.html#a433a64b466c80cadf7d1acaa6f065437',1,'rapidjson::GenericValue']]],
['_7ememorypoolallocator',['~MemoryPoolAllocator',['../classrapidjson_1_1_memory_pool_allocator.html#aa1d5b36c67611937e8ad6b2be53a483e',1,'rapidjson::MemoryPoolAllocator']]]
diff --git a/zh-cn/search/functions_6.js b/zh-cn/search/functions_6.js
index 89bd9ba8..e866c9b2 100644
--- a/zh-cn/search/functions_6.js
+++ b/zh-cn/search/functions_6.js
@@ -4,7 +4,7 @@ var searchData=
['genericmemberiterator',['GenericMemberIterator',['../classrapidjson_1_1_generic_member_iterator.html#ac920af483c9e31a6746c22acf0dffc50',1,'rapidjson::GenericMemberIterator::GenericMemberIterator()'],['../classrapidjson_1_1_generic_member_iterator.html#aa30ffef74b3f4978b403024d81b484e4',1,'rapidjson::GenericMemberIterator::GenericMemberIterator(const NonConstIterator &amp;it)']]],
['genericpointer',['GenericPointer',['../classrapidjson_1_1_generic_pointer.html#aa077ce171ea25cf501c12f2d5df7f248',1,'rapidjson::GenericPointer::GenericPointer(Allocator *allocator=0)'],['../classrapidjson_1_1_generic_pointer.html#a8f831aae14afc493a82b5fb6aa9c3c43',1,'rapidjson::GenericPointer::GenericPointer(const Ch *source, Allocator *allocator=0)'],['../classrapidjson_1_1_generic_pointer.html#aeefcd60e5ad37d80ec43f5315ae84809',1,'rapidjson::GenericPointer::GenericPointer(const std::basic_string&lt; Ch &gt; &amp;source, Allocator *allocator=0)'],['../classrapidjson_1_1_generic_pointer.html#a00ad17ea227d2556404df7cc64c6aeb5',1,'rapidjson::GenericPointer::GenericPointer(const Ch *source, size_t length, Allocator *allocator=0)'],['../classrapidjson_1_1_generic_pointer.html#a6df9f6a01d1b5945811055e1cf8aead6',1,'rapidjson::GenericPointer::GenericPointer(const Token *tokens, size_t tokenCount)'],['../classrapidjson_1_1_generic_pointer.html#a9f8119f2c714f78794854828789b832e',1,'rapidjson::GenericPointer::GenericPointer(const GenericPointer &amp;rhs, Allocator *allocator=0)']]],
['genericreader',['GenericReader',['../classrapidjson_1_1_generic_reader.html#a56ab1065ea75167aeacb4802425bf57f',1,'rapidjson::GenericReader']]],
- ['genericschemadocument',['GenericSchemaDocument',['../classrapidjson_1_1_generic_schema_document.html#a09c94a10d412ee188de575b82292a90e',1,'rapidjson::GenericSchemaDocument']]],
+ ['genericschemadocument',['GenericSchemaDocument',['../classrapidjson_1_1_generic_schema_document.html#ad200cc7bcb193c8568cdbda7b7fd0496',1,'rapidjson::GenericSchemaDocument']]],
['genericschemavalidator',['GenericSchemaValidator',['../classrapidjson_1_1_generic_schema_validator.html#acc07bd08b00195d84bb5b83f59c593d3',1,'rapidjson::GenericSchemaValidator::GenericSchemaValidator(const SchemaDocumentType &amp;schemaDocument, StateAllocator *allocator=0, size_t schemaStackCapacity=kDefaultSchemaStackCapacity, size_t documentStackCapacity=kDefaultDocumentStackCapacity)'],['../classrapidjson_1_1_generic_schema_validator.html#a0e1d8f19381bd53d77cc00a9a6dcd067',1,'rapidjson::GenericSchemaValidator::GenericSchemaValidator(const SchemaDocumentType &amp;schemaDocument, OutputHandler &amp;outputHandler, StateAllocator *allocator=0, size_t schemaStackCapacity=kDefaultSchemaStackCapacity, size_t documentStackCapacity=kDefaultDocumentStackCapacity)']]],
['genericstringref',['GenericStringRef',['../structrapidjson_1_1_generic_string_ref.html#acd4d5ebac2b610ce647356aa52998002',1,'rapidjson::GenericStringRef::GenericStringRef(const CharType(&amp;str)[N]) RAPIDJSON_NOEXCEPT'],['../structrapidjson_1_1_generic_string_ref.html#a29cf407c6aa2313f13dff78d6ce02687',1,'rapidjson::GenericStringRef::GenericStringRef(const CharType *str)'],['../structrapidjson_1_1_generic_string_ref.html#ad9eb120a58cee500ff3bd5706779c4e4',1,'rapidjson::GenericStringRef::GenericStringRef(const CharType *str, SizeType len)']]],
['genericvalue',['GenericValue',['../classrapidjson_1_1_generic_value.html#ad1f8199e65662e0d52a13a1577d4e4a5',1,'rapidjson::GenericValue::GenericValue() RAPIDJSON_NOEXCEPT'],['../classrapidjson_1_1_generic_value.html#a646b6d4d3d98799a0926d96ffa127a58',1,'rapidjson::GenericValue::GenericValue(Type type) RAPIDJSON_NOEXCEPT'],['../classrapidjson_1_1_generic_value.html#a62a9fac23db014e88c508c2020573679',1,'rapidjson::GenericValue::GenericValue(const GenericValue&lt; Encoding, SourceAllocator &gt; &amp;rhs, Allocator &amp;allocator)'],['../classrapidjson_1_1_generic_value.html#ab933ad7ff8c9d08f73cebaecb700dbe9',1,'rapidjson::GenericValue::GenericValue(bool b) RAPIDJSON_NOEXCEPT'],['../classrapidjson_1_1_generic_value.html#abba0c9ccfd90726f916c36013a2e9e19',1,'rapidjson::GenericValue::GenericValue(int i) RAPIDJSON_NOEXCEPT'],['../classrapidjson_1_1_generic_value.html#a4a8060a42b7953a2981ad892180ca5a6',1,'rapidjson::GenericValue::GenericValue(unsigned u) RAPIDJSON_NOEXCEPT'],['../classrapidjson_1_1_generic_value.html#acd4ae9a8dba4498d1d7cce6667529bb8',1,'rapidjson::GenericValue::GenericValue(int64_t i64) RAPIDJSON_NOEXCEPT'],['../classrapidjson_1_1_generic_value.html#a1f125e735577aae64c0306345de45563',1,'rapidjson::GenericValue::GenericValue(uint64_t u64) RAPIDJSON_NOEXCEPT'],['../classrapidjson_1_1_generic_value.html#a71b9e2ec1f7bf9e2f034126ca7b4945a',1,'rapidjson::GenericValue::GenericValue(double d) RAPIDJSON_NOEXCEPT'],['../classrapidjson_1_1_generic_value.html#a51e93a4fb57f77a39767acb076bf43c1',1,'rapidjson::GenericValue::GenericValue(const Ch *s, SizeType length) RAPIDJSON_NOEXCEPT'],['../classrapidjson_1_1_generic_value.html#a65bfc3073fa80ee5eba8e985abe2f941',1,'rapidjson::GenericValue::GenericValue(StringRefType s) RAPIDJSON_NOEXCEPT'],['../classrapidjson_1_1_generic_value.html#ad9553bb9ccbfd19547c473a95405a8b2',1,'rapidjson::GenericValue::GenericValue(const Ch *s, SizeType length, Allocator &amp;allocator)'],['../classrapidjson_1_1_generic_value.html#a83ba61e8a5170c2e172fd60ebc11016f',1,'rapidjson::GenericValue::GenericValue(const Ch *s, Allocator &amp;allocator)'],['../classrapidjson_1_1_generic_value.html#a852788b35257762cd8d6c4bf5c5d77bc',1,'rapidjson::GenericValue::GenericValue(const std::basic_string&lt; Ch &gt; &amp;s, Allocator &amp;allocator)']]],
@@ -19,7 +19,7 @@ var searchData=
['getparseerror_5fen',['GetParseError_En',['../group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gabdaf1a7a4db30fb0e3d927fdf0fabe79',1,'rapidjson']]],
['getparseerrorcode',['GetParseErrorCode',['../classrapidjson_1_1_generic_pointer.html#ac817b123619422f03c44a46978d9fbd0',1,'rapidjson::GenericPointer::GetParseErrorCode()'],['../classrapidjson_1_1_generic_reader.html#a40fd326bad7d7033f096b549cbf159db',1,'rapidjson::GenericReader::GetParseErrorCode()']]],
['getparseerroroffset',['GetParseErrorOffset',['../classrapidjson_1_1_generic_pointer.html#adc01f1be5f05127f849a2bf10a97e89b',1,'rapidjson::GenericPointer']]],
- ['getroot',['GetRoot',['../classrapidjson_1_1_generic_schema_document.html#a666d94105aa39c446327105339378320',1,'rapidjson::GenericSchemaDocument']]],
+ ['getroot',['GetRoot',['../classrapidjson_1_1_generic_schema_document.html#af64ea17654ab0f1a91e382d422f91daf',1,'rapidjson::GenericSchemaDocument']]],
['getstackcapacity',['GetStackCapacity',['../classrapidjson_1_1_generic_document.html#ac785c064649dea6cfa67207b6bda748e',1,'rapidjson::GenericDocument']]],
['getstringlength',['GetStringLength',['../classrapidjson_1_1_generic_value.html#a979c4ba6dd2a311be837ae083423aca8',1,'rapidjson::GenericValue']]],
['gettokencount',['GetTokenCount',['../classrapidjson_1_1_generic_pointer.html#a2949cb104effdf323781ae70ce469ed9',1,'rapidjson::GenericPointer']]],
diff --git a/zh-cn/search/functions_b.js b/zh-cn/search/functions_b.js
index 7bf3f26c..74b3c9ee 100644
--- a/zh-cn/search/functions_b.js
+++ b/zh-cn/search/functions_b.js
@@ -8,7 +8,7 @@ var searchData=
['populate',['Populate',['../classrapidjson_1_1_generic_document.html#a63e18887979da500ece6f0bd10d29b64',1,'rapidjson::GenericDocument']]],
['prettywriter',['PrettyWriter',['../classrapidjson_1_1_pretty_writer.html#a96edf06d5bbb010d3e8c95b22b6f4750',1,'rapidjson::PrettyWriter']]],
['pushback',['PushBack',['../classrapidjson_1_1_generic_value.html#a0ec9f34bef5890241d4bc882b73b1db4',1,'rapidjson::GenericValue::PushBack(GenericValue &amp;value, Allocator &amp;allocator)'],['../classrapidjson_1_1_generic_value.html#a41946915cb219a684f6ffc9341efee22',1,'rapidjson::GenericValue::PushBack(StringRefType value, Allocator &amp;allocator)'],['../classrapidjson_1_1_generic_value.html#aa59273e0adfe2a9d0e6ac29d2537d9ed',1,'rapidjson::GenericValue::PushBack(T value, Allocator &amp;allocator)']]],
- ['putn',['PutN',['../namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43',1,'rapidjson::PutN(Stream &amp;stream, Ch c, size_t n)'],['../namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a',1,'rapidjson::PutN(FileWriteStream &amp;stream, char c, size_t n)'],['../namespacerapidjson.html#aba27b0c8dcf724aa2b288a24fda0811b',1,'rapidjson::PutN(MemoryBuffer &amp;memoryBuffer, char c, size_t n)'],['../namespacerapidjson.html#a9d43be9c033dc49738b713fe6fbafecf',1,'rapidjson::PutN(GenericStringBuffer&lt; UTF8&lt;&gt; &gt; &amp;stream, char c, size_t n)']]],
+ ['putn',['PutN',['../namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a',1,'rapidjson::PutN(FileWriteStream &amp;stream, char c, size_t n)'],['../namespacerapidjson.html#aba27b0c8dcf724aa2b288a24fda0811b',1,'rapidjson::PutN(MemoryBuffer &amp;memoryBuffer, char c, size_t n)'],['../namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43',1,'rapidjson::PutN(Stream &amp;stream, Ch c, size_t n)'],['../namespacerapidjson.html#a9d43be9c033dc49738b713fe6fbafecf',1,'rapidjson::PutN(GenericStringBuffer&lt; UTF8&lt;&gt; &gt; &amp;stream, char c, size_t n)']]],
['putreserve',['PutReserve',['../namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740',1,'rapidjson']]],
['putunsafe',['PutUnsafe',['../namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20',1,'rapidjson']]]
];
diff --git a/zh-cn/search/typedefs_2.js b/zh-cn/search/typedefs_2.js
index 9cae5457..40d8b34d 100644
--- a/zh-cn/search/typedefs_2.js
+++ b/zh-cn/search/typedefs_2.js
@@ -1,5 +1,5 @@
var searchData=
[
['differencetype',['DifferenceType',['../classrapidjson_1_1_generic_member_iterator.html#a41b953d6523fdc09f4f21c7b345e5833',1,'rapidjson::GenericMemberIterator']]],
- ['document',['Document',['../namespacerapidjson.html#a660c934c2959121babf799b6cb206659',1,'rapidjson']]]
+ ['document',['Document',['../namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8',1,'rapidjson']]]
];
diff --git a/zh-cn/search/typedefs_5.js b/zh-cn/search/typedefs_5.js
index 0fee58b0..4f84db6a 100644
--- a/zh-cn/search/typedefs_5.js
+++ b/zh-cn/search/typedefs_5.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['insitustringstream',['InsituStringStream',['../namespacerapidjson.html#a5660e8e601d2719796bc86c3168a1787',1,'rapidjson']]],
- ['iremoteschemadocumentprovider',['IRemoteSchemaDocumentProvider',['../namespacerapidjson.html#a735a06a6e822111798e302c2f3af3de9',1,'rapidjson']]],
+ ['insitustringstream',['InsituStringStream',['../namespacerapidjson.html#a64e957c8d9d7cd15b193ffc31410038e',1,'rapidjson']]],
+ ['iremoteschemadocumentprovider',['IRemoteSchemaDocumentProvider',['../namespacerapidjson.html#af91eb8eea47b79d75b23e29fa9c0abb5',1,'rapidjson']]],
['iterator',['Iterator',['../classrapidjson_1_1_generic_member_iterator.html#a37091c3dd8470486ef5188f3c1108653',1,'rapidjson::GenericMemberIterator']]]
];
diff --git a/zh-cn/search/typedefs_8.js b/zh-cn/search/typedefs_8.js
index e880a4dd..2797f7f5 100644
--- a/zh-cn/search/typedefs_8.js
+++ b/zh-cn/search/typedefs_8.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['pointer',['Pointer',['../classrapidjson_1_1_generic_member_iterator.html#a17955e32a06f667c672b270e6a4d2195',1,'rapidjson::GenericMemberIterator::Pointer()'],['../namespacerapidjson.html#a9c225e4848c5facd20e43084ba2a51a3',1,'rapidjson::Pointer()']]]
+ ['pointer',['Pointer',['../classrapidjson_1_1_generic_member_iterator.html#a17955e32a06f667c672b270e6a4d2195',1,'rapidjson::GenericMemberIterator::Pointer()'],['../namespacerapidjson.html#a080910f74d2f5046e6724280159cf374',1,'rapidjson::Pointer()']]]
];
diff --git a/zh-cn/search/typedefs_9.js b/zh-cn/search/typedefs_9.js
index 52ea7bef..ffc81de0 100644
--- a/zh-cn/search/typedefs_9.js
+++ b/zh-cn/search/typedefs_9.js
@@ -1,5 +1,5 @@
var searchData=
[
- ['reader',['Reader',['../namespacerapidjson.html#a4eaef42a208413d1f2c8d4655ecec52d',1,'rapidjson']]],
+ ['reader',['Reader',['../namespacerapidjson.html#ad5310edd1226f5b3ea82dc0d4d3740c6',1,'rapidjson']]],
['reference',['Reference',['../classrapidjson_1_1_generic_member_iterator.html#a915a1b6f0a0bbe6a1df69571a789e348',1,'rapidjson::GenericMemberIterator']]]
];
diff --git a/zh-cn/search/typedefs_a.js b/zh-cn/search/typedefs_a.js
index 21165883..7a966a45 100644
--- a/zh-cn/search/typedefs_a.js
+++ b/zh-cn/search/typedefs_a.js
@@ -1,8 +1,8 @@
var searchData=
[
- ['schemadocument',['SchemaDocument',['../namespacerapidjson.html#a1039ee639733008423fd0dfb67122e54',1,'rapidjson']]],
+ ['schemadocument',['SchemaDocument',['../namespacerapidjson.html#a52bbb5d64d1319495089e1713a0653cf',1,'rapidjson']]],
['sizetype',['SizeType',['../namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84',1,'rapidjson']]],
- ['stringbuffer',['StringBuffer',['../namespacerapidjson.html#a51a6c35028b76e354bbb9e25d7125641',1,'rapidjson']]],
+ ['stringbuffer',['StringBuffer',['../namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21',1,'rapidjson']]],
['stringreftype',['StringRefType',['../classrapidjson_1_1_generic_value.html#a559eb9cea54364a35518b02f6d74f379',1,'rapidjson::GenericValue']]],
- ['stringstream',['StringStream',['../namespacerapidjson.html#ada4cef9931d4a3a0017ee776c907807b',1,'rapidjson']]]
+ ['stringstream',['StringStream',['../namespacerapidjson.html#a021f77051e9f85188fc2f71ff5a15ebc',1,'rapidjson']]]
];
diff --git a/zh-cn/search/typedefs_b.js b/zh-cn/search/typedefs_b.js
index db8707a2..ca066b22 100644
--- a/zh-cn/search/typedefs_b.js
+++ b/zh-cn/search/typedefs_b.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['value',['Value',['../namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d',1,'rapidjson']]],
+ ['value',['Value',['../namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505',1,'rapidjson']]],
['valueiterator',['ValueIterator',['../classrapidjson_1_1_generic_value.html#a06ce0e14ec83b53c83e1b1699b53a25e',1,'rapidjson::GenericValue']]],
['valuetype',['ValueType',['../classrapidjson_1_1_generic_value.html#ad2935191ab28c2c2e472b739a9d58202',1,'rapidjson::GenericValue::ValueType()'],['../classrapidjson_1_1_generic_document.html#a41bbec044c421e870a9d355075d741bc',1,'rapidjson::GenericDocument::ValueType()']]]
];
diff --git a/zh-cn/search/variables_7.js b/zh-cn/search/variables_7.js
index 12390e3c..f3628c93 100644
--- a/zh-cn/search/variables_7.js
+++ b/zh-cn/search/variables_7.js
@@ -2,5 +2,5 @@ var searchData=
[
['s',['s',['../structrapidjson_1_1_generic_string_ref.html#a001276ee57cbcbd3c14449045c71e994',1,'rapidjson::GenericStringRef']]],
['size_5f',['size_',['../structrapidjson_1_1_memory_stream.html#a8c8437d59c32168a74226312d9e96ace',1,'rapidjson::MemoryStream']]],
- ['src_5f',['src_',['../structrapidjson_1_1_generic_string_stream.html#a9a38a9d5b1ce782cacd4ec1bdf87fc2d',1,'rapidjson::GenericStringStream::src_()'],['../structrapidjson_1_1_memory_stream.html#ac0b4da6016e5ba6241604fd4258fb722',1,'rapidjson::MemoryStream::src_()']]]
+ ['src_5f',['src_',['../structrapidjson_1_1_memory_stream.html#ac0b4da6016e5ba6241604fd4258fb722',1,'rapidjson::MemoryStream::src_()'],['../structrapidjson_1_1_generic_string_stream.html#a9a38a9d5b1ce782cacd4ec1bdf87fc2d',1,'rapidjson::GenericStringStream::src_()']]]
];
diff --git a/zh-cn/stack_8h_source.html b/zh-cn/stack_8h_source.html
index 17428469..c26304fb 100644
--- a/zh-cn/stack_8h_source.html
+++ b/zh-cn/stack_8h_source.html
@@ -105,7 +105,7 @@ $(document).ready(function(){initNavTree('stack_8h_source.html','');});
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_INTERNAL_STACK_H_</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define RAPIDJSON_INTERNAL_STACK_H_</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../rapidjson.h&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../allocators.h&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;swap.h&quot;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#if defined(__clang__)</span></div>
diff --git a/zh-cn/stream_8h_source.html b/zh-cn/stream_8h_source.html
new file mode 100644
index 00000000..3d52d917
--- /dev/null
+++ b/zh-cn/stream_8h_source.html
@@ -0,0 +1,305 @@
+<!-- HTML header for doxygen 1.8.7-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>RapidJSON: include/rapidjson/stream.h 源文件</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+<link href="doxygenextra.css" rel="stylesheet" type="text/css"/>
+</head>
+<script>
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ ga('create', 'UA-63929386-1', 'auto');
+ ga('send', 'pageview');
+</script>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="topbanner"><a href="https://github.com/miloyip/rapidjson" title="RapidJSON GitHub"><i class="githublogo"></i></a></div>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="搜索" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+<!-- end header part -->
+<!-- 制作者 Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'搜索');
+</script>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('stream_8h_source.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>全部</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>类</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>命名空间</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>文件</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>函数</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>变量</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>类型定义</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>枚举</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>枚举值</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>友元</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>宏定义</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>组</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark">&#160;</span>页</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">stream.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// Tencent is pleased to support the open source community by making RapidJSON available.</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Licensed under the MIT License (the &quot;License&quot;); you may not use this file except</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// in compliance with the License. You may obtain a copy of the License at</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// http://opensource.org/licenses/MIT</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// Unless required by applicable law or agreed to in writing, software distributed </span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR </span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// CONDITIONS OF ANY KIND, either express or implied. See the License for the </span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// specific language governing permissions and limitations under the License.</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rapidjson_8h.html">rapidjson.h</a>&quot;</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_STREAM_H_</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#define RAPIDJSON_STREAM_H_</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;encodings.h&quot;</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"> 22</span>&#160;RAPIDJSON_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">///////////////////////////////////////////////////////////////////////////////</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"></span><span class="comment">// Stream</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">/*! \class rapidjson::Stream</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> \brief Concept for reading and writing characters.</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> For read-only stream, no need to implement PutBegin(), Put(), Flush() and PutEnd().</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> For write-only stream, only need to implement Put() and Flush().</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment">\code</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">concept Stream {</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> typename Ch; //!&lt; Character type of the stream.</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"></span><span class="comment"></span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment"> //! Read the current character from stream without moving the read cursor.</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"></span> Ch Peek() const;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> //! Read the current character from stream and moving the read cursor to next character.</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"></span> Ch Take();</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> //! Get the current read cursor.</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> //! \return Number of characters read from start.</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"></span> size_t Tell();</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> //! Begin writing operation at the current read pointer.</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> //! \return The begin writer pointer.</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"></span> Ch* PutBegin();</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> //! Write a character.</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"></span> void Put(Ch c);</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"> //! Flush the buffer.</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"></span> void Flush();</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"> //! End the writing operation.</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"> //! \param begin The begin write pointer returned by PutBegin().</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment"> //! \return Number of characters written.</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"></span> size_t PutEnd(Ch* begin);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;}</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;\endcode</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="comment"></span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment">//! Provides additional information for stream.</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment"></span><span class="comment">/*!</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment"> By using traits pattern, this type provides a default configuration for stream.</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment"> For custom stream, this type can be specialized for other configuration.</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment"> See TEST(Reader, CustomStringStream) in readertest.cpp for example.</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Stream&gt;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_stream_traits.html"> 73</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_stream_traits.html">StreamTraits</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment"> //! Whether to make local copy of stream for optimization during parsing.</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment"></span><span class="comment"> /*!</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment"> By default, for safety, streams do not use local copy optimization.</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment"> Stream that can be copied fast should specialize this, like StreamTraits&lt;StringStream&gt;.</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">enum</span> { copyOptimization = 0 };</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;};</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment">//! Reserve n characters for writing to a stream.</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Stream&gt;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740"> 84</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">PutReserve</a>(<a class="code" href="classrapidjson_1_1_stream.html">Stream</a>&amp; stream, <span class="keywordtype">size_t</span> count) {</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; (void)stream;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; (void)count;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;}</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment">//! Write character to a stream, presuming buffer is reserved.</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Stream&gt;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20"> 91</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(<a class="code" href="classrapidjson_1_1_stream.html">Stream</a>&amp; stream, <span class="keyword">typename</span> Stream::Ch c) {</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; stream.Put(c);</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;}</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="comment">//! Put N copies of a character to a stream.</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Stream, <span class="keyword">typename</span> Ch&gt;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43"> 97</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a">PutN</a>(<a class="code" href="classrapidjson_1_1_stream.html">Stream</a>&amp; stream, Ch c, <span class="keywordtype">size_t</span> n) {</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; PutReserve&lt;Stream&gt;(stream, n);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; n; i++)</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(stream, c);</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;}</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment">///////////////////////////////////////////////////////////////////////////////</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment"></span><span class="comment">// StringStream</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment">//! Read-only string stream.</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="comment"></span><span class="comment">/*! \note implements Stream concept</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding&gt;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="keyword">struct </span>GenericStringStream {</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> Encoding::Ch Ch;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GenericStringStream(<span class="keyword">const</span> Ch *src) : src_(src), head_(src) {}</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; Ch Peek()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *src_; }</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; Ch Take() { <span class="keywordflow">return</span> *src_++; }</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordtype">size_t</span> Tell()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">size_t</span><span class="keyword">&gt;</span>(src_ - head_); }</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; Ch* PutBegin() { <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(<span class="keyword">false</span>); <span class="keywordflow">return</span> 0; }</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordtype">void</span> Put(Ch) { <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(<span class="keyword">false</span>); }</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordtype">void</span> Flush() { <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(<span class="keyword">false</span>); }</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordtype">size_t</span> PutEnd(Ch*) { <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(<span class="keyword">false</span>); <span class="keywordflow">return</span> 0; }</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_generic_string_stream.html#a9a38a9d5b1ce782cacd4ec1bdf87fc2d"> 124</a></span>&#160; <span class="keyword">const</span> Ch* <a class="code" href="structrapidjson_1_1_generic_string_stream.html#a9a38a9d5b1ce782cacd4ec1bdf87fc2d">src_</a>; <span class="comment">//!&lt; Current read position.</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_generic_string_stream.html#a2556705b0a0fd6393862efe6db025b32"> 125</a></span>&#160;<span class="comment"></span> <span class="keyword">const</span> Ch* <a class="code" href="structrapidjson_1_1_generic_string_stream.html#a2556705b0a0fd6393862efe6db025b32">head_</a>; <span class="comment">//!&lt; Original head of the string.</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment"></span>};</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding&gt;</div>
+<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html"> 129</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_stream_traits.html">StreamTraits</a>&lt;<a class="code" href="structrapidjson_1_1_generic_string_stream.html">GenericStringStream</a>&lt;<a class="code" href="classrapidjson_1_1_encoding.html">Encoding</a>&gt; &gt; {</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">enum</span> { copyOptimization = 1 };</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;};</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment">//! String stream with UTF8 encoding.</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="structrapidjson_1_1_generic_string_stream.html">GenericStringStream&lt;UTF8&lt;&gt;</a> &gt; <a class="code" href="structrapidjson_1_1_generic_string_stream.html">StringStream</a>;</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment">///////////////////////////////////////////////////////////////////////////////</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="comment"></span><span class="comment">// InsituStringStream</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment">//! A read-write string stream.</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment"></span><span class="comment">/*! This string stream is particularly designed for in-situ parsing.</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment"> \note implements Stream concept</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="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding&gt;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_generic_insitu_string_stream.html">GenericInsituStringStream</a> {</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> Encoding::Ch Ch;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="structrapidjson_1_1_generic_insitu_string_stream.html">GenericInsituStringStream</a>(Ch *src) : src_(src), dst_(0), head_(src) {}</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="comment">// Read</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; Ch Peek() { <span class="keywordflow">return</span> *src_; }</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; Ch Take() { <span class="keywordflow">return</span> *src_++; }</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordtype">size_t</span> Tell() { <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">size_t</span><span class="keyword">&gt;</span>(src_ - head_); }</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="comment">// Write</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordtype">void</span> Put(Ch c) { <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(dst_ != 0); *dst_++ = c; }</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; Ch* PutBegin() { <span class="keywordflow">return</span> dst_ = src_; }</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordtype">size_t</span> PutEnd(Ch* begin) { <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">size_t</span><span class="keyword">&gt;</span>(dst_ - begin); }</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordtype">void</span> Flush() {}</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; Ch* Push(<span class="keywordtype">size_t</span> count) { Ch* begin = dst_; dst_ += count; <span class="keywordflow">return</span> begin; }</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordtype">void</span> Pop(<span class="keywordtype">size_t</span> count) { dst_ -= count; }</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"> 164</span>&#160; Ch* src_;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; Ch* dst_;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; Ch* head_;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;};</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding&gt;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html"> 170</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrapidjson_1_1_stream_traits.html">StreamTraits</a>&lt;<a class="code" href="structrapidjson_1_1_generic_insitu_string_stream.html">GenericInsituStringStream</a>&lt;<a class="code" href="classrapidjson_1_1_encoding.html">Encoding</a>&gt; &gt; {</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">enum</span> { copyOptimization = 1 };</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;};</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="comment">//! Insitu string stream with UTF8 encoding.</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="structrapidjson_1_1_generic_insitu_string_stream.html">GenericInsituStringStream&lt;UTF8&lt;&gt;</a> &gt; <a class="code" href="structrapidjson_1_1_generic_insitu_string_stream.html">InsituStringStream</a>;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;RAPIDJSON_NAMESPACE_END</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="preprocessor">#endif // RAPIDJSON_STREAM_H_</span></div>
+<div class="ttc" id="structrapidjson_1_1_generic_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_string_stream.html">rapidjson::GenericStringStream</a></div><div class="ttdoc">Read-only string stream. </div><div class="ttdef"><b>Definition:</b> fwd.h:47</div></div>
+<div class="ttc" id="namespacerapidjson_html_a820f77efccfbb749bd15fe4822d2c740"><div class="ttname"><a href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">rapidjson::PutReserve</a></div><div class="ttdeci">void PutReserve(Stream &amp;stream, size_t count)</div><div class="ttdoc">Reserve n characters for writing to a stream. </div><div class="ttdef"><b>Definition:</b> stream.h:84</div></div>
+<div class="ttc" id="structrapidjson_1_1_generic_string_stream_html_a2556705b0a0fd6393862efe6db025b32"><div class="ttname"><a href="structrapidjson_1_1_generic_string_stream.html#a2556705b0a0fd6393862efe6db025b32">rapidjson::GenericStringStream::head_</a></div><div class="ttdeci">const Ch * head_</div><div class="ttdoc">Original head of the string. </div><div class="ttdef"><b>Definition:</b> stream.h:125</div></div>
+<div class="ttc" id="structrapidjson_1_1_generic_string_stream_html_a9a38a9d5b1ce782cacd4ec1bdf87fc2d"><div class="ttname"><a href="structrapidjson_1_1_generic_string_stream.html#a9a38a9d5b1ce782cacd4ec1bdf87fc2d">rapidjson::GenericStringStream::src_</a></div><div class="ttdeci">const Ch * src_</div><div class="ttdoc">Current read position. </div><div class="ttdef"><b>Definition:</b> stream.h:124</div></div>
+<div class="ttc" id="classrapidjson_1_1_encoding_html"><div class="ttname"><a href="classrapidjson_1_1_encoding.html">rapidjson::Encoding</a></div><div class="ttdoc">Concept for encoding of Unicode characters. </div></div>
+<div class="ttc" id="namespacerapidjson_html_a1ac13bac5976fc06587e00fc0bcfb32a"><div class="ttname"><a href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a">rapidjson::PutN</a></div><div class="ttdeci">void PutN(FileWriteStream &amp;stream, char c, size_t n)</div><div class="ttdoc">Implement specialized version of PutN() with memset() for better performance. </div><div class="ttdef"><b>Definition:</b> filewritestream.h:94</div></div>
+<div class="ttc" id="classrapidjson_1_1_stream_html"><div class="ttname"><a href="classrapidjson_1_1_stream.html">rapidjson::Stream</a></div><div class="ttdoc">Concept for reading and writing characters. </div></div>
+<div class="ttc" id="rapidjson_8h_html"><div class="ttname"><a href="rapidjson_8h.html">rapidjson.h</a></div><div class="ttdoc">common definitions and configuration </div></div>
+<div class="ttc" id="namespacerapidjson_html_a0a774dcffe8ae07686f459ae017d2f20"><div class="ttname"><a href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">rapidjson::PutUnsafe</a></div><div class="ttdeci">void PutUnsafe(Stream &amp;stream, typename Stream::Ch c)</div><div class="ttdoc">Write character to a stream, presuming buffer is reserved. </div><div class="ttdef"><b>Definition:</b> stream.h:91</div></div>
+<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
+<div class="ttc" id="structrapidjson_1_1_stream_traits_html"><div class="ttname"><a href="structrapidjson_1_1_stream_traits.html">rapidjson::StreamTraits</a></div><div class="ttdoc">Provides additional information for stream. </div><div class="ttdef"><b>Definition:</b> stream.h:73</div></div>
+<div class="ttc" id="structrapidjson_1_1_generic_insitu_string_stream_html"><div class="ttname"><a href="structrapidjson_1_1_generic_insitu_string_stream.html">rapidjson::GenericInsituStringStream</a></div><div class="ttdoc">A read-write string stream. </div><div class="ttdef"><b>Definition:</b> fwd.h:52</div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- HTML footer for doxygen 1.8.7-->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_2e777bb85672ca91d8484c1593fb1d89.html">include</a></li><li class="navelem"><a class="el" href="dir_0b07344794a20f8375311f92e90cd9a3.html">rapidjson</a></li><li class="navelem"><b>stream.h</b></li>
+ </ul>
+</div>
+<script type="text/javascript">
+ /* * * CONFIGURATION VARIABLES * * */
+ var disqus_shortname = 'rapidjson-doc';
+ /* * * DON'T EDIT BELOW THIS LINE * * */
+ (function() {
+ var dt = document.createElement('div');
+ dt.id = "disqus_thread";
+ (document.getElementsByClassName('contents')[0]).appendChild(dt);
+ var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
+ dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
+ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
+ })();
+</script>
+</body>
+</html>
diff --git a/zh-cn/strfunc_8h_source.html b/zh-cn/strfunc_8h_source.html
index 54015973..a233c482 100644
--- a/zh-cn/strfunc_8h_source.html
+++ b/zh-cn/strfunc_8h_source.html
@@ -105,7 +105,7 @@ $(document).ready(function(){initNavTree('strfunc_8h_source.html','');});
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_INTERNAL_STRFUNC_H_</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define RAPIDJSON_INTERNAL_STRFUNC_H_</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../rapidjson.h&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../stream.h&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;RAPIDJSON_NAMESPACE_BEGIN</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="keyword">namespace </span>internal {</div>
diff --git a/zh-cn/stringbuffer_8h_source.html b/zh-cn/stringbuffer_8h_source.html
index 67da3806..4508c8ba 100644
--- a/zh-cn/stringbuffer_8h_source.html
+++ b/zh-cn/stringbuffer_8h_source.html
@@ -105,111 +105,111 @@ $(document).ready(function(){initNavTree('stringbuffer_8h_source.html','');});
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_STRINGBUFFER_H_</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define RAPIDJSON_STRINGBUFFER_H_</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rapidjson_8h.html">rapidjson.h</a>&quot;</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#if RAPIDJSON_HAS_CXX11_RVALUE_REFS</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span> <span class="comment">// std::move</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#endif</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="preprocessor">#include &quot;internal/stack.h&quot;</span></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="preprocessor">#if defined(__clang__)</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;RAPIDJSON_DIAG_PUSH</div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;RAPIDJSON_DIAG_OFF(c++98-compat)</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;RAPIDJSON_NAMESPACE_BEGIN</div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment">//! Represents an in-memory output stream.</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"></span><span class="comment">/*!</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> \tparam Encoding Encoding of the stream.</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> \tparam Allocator type for allocating memory buffer.</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"> \note implements Stream concept</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator = CrtAllocator&gt;</div>
-<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_generic_string_buffer.html"> 40</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a> {</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> Encoding::Ch Ch;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>(<a class="code" href="classrapidjson_1_1_allocator.html">Allocator</a>* allocator = 0, <span class="keywordtype">size_t</span> capacity = kDefaultCapacity) : stack_(allocator, capacity) {}</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#if RAPIDJSON_HAS_CXX11_RVALUE_REFS</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>(<a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>&amp;&amp; rhs) : stack_(std::move(rhs.stack_)) {}</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>&amp; operator=(<a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>&amp;&amp; rhs) {</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span> (&amp;rhs != <span class="keyword">this</span>)</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; stack_ = std::move(rhs.stack_);</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; }</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#endif</span></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="keywordtype">void</span> Put(Ch c) { *stack_.template Push&lt;Ch&gt;() = c; }</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(Ch c) { *stack_.template PushUnsafe&lt;Ch&gt;() = c; }</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">void</span> Flush() {}</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordtype">void</span> Clear() { stack_.Clear(); }</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordtype">void</span> ShrinkToFit() {</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="comment">// Push and pop a null terminator. This is safe.</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; *stack_.template Push&lt;Ch&gt;() = <span class="charliteral">&#39;\0&#39;</span>;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; stack_.ShrinkToFit();</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; stack_.template Pop&lt;Ch&gt;(1);</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordtype">void</span> Reserve(<span class="keywordtype">size_t</span> count) { stack_.template Reserve&lt;Ch&gt;(count); }</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; Ch* Push(<span class="keywordtype">size_t</span> count) { <span class="keywordflow">return</span> stack_.template Push&lt;Ch&gt;(count); }</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordtype">void</span> Pop(<span class="keywordtype">size_t</span> count) { stack_.template Pop&lt;Ch&gt;(count); }</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">const</span> Ch* GetString()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="comment">// Push and pop a null terminator. This is safe.</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; *stack_.template Push&lt;Ch&gt;() = <span class="charliteral">&#39;\0&#39;</span>;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; stack_.template Pop&lt;Ch&gt;(1);</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> stack_.template Bottom&lt;Ch&gt;();</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordtype">size_t</span> GetSize()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> stack_.GetSize(); }</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> kDefaultCapacity = 256;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">mutable</span> internal::Stack&lt;Allocator&gt; stack_;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="keyword">private</span>:</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="comment">// Prohibit copy constructor &amp; assignment operator.</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>(<span class="keyword">const</span> <a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>&amp;);</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>&amp;);</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="comment"></span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment">//! String buffer with UTF8 encoding</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a51a6c35028b76e354bbb9e25d7125641"> 91</a></span>&#160;<span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer&lt;UTF8&lt;&gt;</a> &gt; <a class="code" href="classrapidjson_1_1_generic_string_buffer.html">StringBuffer</a>;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator&gt;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">PutReserve</a>(<a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer&lt;Encoding, Allocator&gt;</a>&amp; stream, <span class="keywordtype">size_t</span> count) {</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; stream.Reserve(count);</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;}</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator&gt;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(GenericStringBuffer&lt;Encoding, Allocator&gt;&amp; stream, <span class="keyword">typename</span> Encoding::Ch c) {</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; stream.PutUnsafe(c);</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;}</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment">//! Implement specialized version of PutN() with memset() for better performance.</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;&gt;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a9d43be9c033dc49738b713fe6fbafecf"> 105</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">PutN</a>(<a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>&lt;<a class="code" href="structrapidjson_1_1_u_t_f8.html">UTF8&lt;&gt;</a> &gt;&amp; stream, <span class="keywordtype">char</span> c, <span class="keywordtype">size_t</span> n) {</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; std::memset(stream.stack_.Push&lt;<span class="keywordtype">char</span>&gt;(n), c, n * <span class="keyword">sizeof</span>(c));</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;}</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;RAPIDJSON_NAMESPACE_END</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor">#if defined(__clang__)</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;RAPIDJSON_DIAG_POP</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_STRINGBUFFER_H_</span></div>
-<div class="ttc" id="namespacerapidjson_html_a820f77efccfbb749bd15fe4822d2c740"><div class="ttname"><a href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">rapidjson::PutReserve</a></div><div class="ttdeci">void PutReserve(Stream &amp;stream, size_t count)</div><div class="ttdoc">Reserve n characters for writing to a stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:619</div></div>
-<div class="ttc" id="classrapidjson_1_1_generic_string_buffer_html"><div class="ttname"><a href="classrapidjson_1_1_generic_string_buffer.html">rapidjson::GenericStringBuffer</a></div><div class="ttdoc">Represents an in-memory output stream. </div><div class="ttdef"><b>Definition:</b> stringbuffer.h:40</div></div>
-<div class="ttc" id="rapidjson_8h_html"><div class="ttname"><a href="rapidjson_8h.html">rapidjson.h</a></div><div class="ttdoc">common definitions and configuration </div></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;stream.h&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;internal/stack.h&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#if RAPIDJSON_HAS_CXX11_RVALUE_REFS</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span> <span class="comment">// std::move</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;internal/stack.h&quot;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#if defined(__clang__)</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;RAPIDJSON_DIAG_PUSH</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;RAPIDJSON_DIAG_OFF(c++98-compat)</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;RAPIDJSON_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment">//! Represents an in-memory output stream.</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"></span><span class="comment">/*!</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> \tparam Encoding Encoding of the stream.</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"> \tparam Allocator type for allocating memory buffer.</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment"> \note implements Stream concept</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator = CrtAllocator&gt;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>GenericStringBuffer {</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> Encoding::Ch Ch;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; GenericStringBuffer(Allocator* allocator = 0, <span class="keywordtype">size_t</span> capacity = kDefaultCapacity) : stack_(allocator, capacity) {}</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#if RAPIDJSON_HAS_CXX11_RVALUE_REFS</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; GenericStringBuffer(GenericStringBuffer&amp;&amp; rhs) : stack_(std::move(rhs.stack_)) {}</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; GenericStringBuffer&amp; operator=(GenericStringBuffer&amp;&amp; rhs) {</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">if</span> (&amp;rhs != <span class="keyword">this</span>)</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; stack_ = std::move(rhs.stack_);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">void</span> Put(Ch c) { *stack_.template Push&lt;Ch&gt;() = c; }</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(Ch c) { *stack_.template PushUnsafe&lt;Ch&gt;() = c; }</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">void</span> Flush() {}</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="keywordtype">void</span> Clear() { stack_.Clear(); }</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordtype">void</span> ShrinkToFit() {</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="comment">// Push and pop a null terminator. This is safe.</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; *stack_.template Push&lt;Ch&gt;() = <span class="charliteral">&#39;\0&#39;</span>;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; stack_.ShrinkToFit();</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; stack_.template Pop&lt;Ch&gt;(1);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</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; <span class="keywordtype">void</span> Reserve(<span class="keywordtype">size_t</span> count) { stack_.template Reserve&lt;Ch&gt;(count); }</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; Ch* Push(<span class="keywordtype">size_t</span> count) { <span class="keywordflow">return</span> stack_.template Push&lt;Ch&gt;(count); }</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordtype">void</span> Pop(<span class="keywordtype">size_t</span> count) { stack_.template Pop&lt;Ch&gt;(count); }</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">const</span> Ch* GetString()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="comment">// Push and pop a null terminator. This is safe.</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; *stack_.template Push&lt;Ch&gt;() = <span class="charliteral">&#39;\0&#39;</span>;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; stack_.template Pop&lt;Ch&gt;(1);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">return</span> stack_.template Bottom&lt;Ch&gt;();</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordtype">size_t</span> GetSize()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> stack_.GetSize(); }</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> kDefaultCapacity = 256;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">mutable</span> internal::Stack&lt;Allocator&gt; stack_;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// Prohibit copy constructor &amp; assignment operator.</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GenericStringBuffer(<span class="keyword">const</span> GenericStringBuffer&amp;);</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GenericStringBuffer&amp; operator=(<span class="keyword">const</span> GenericStringBuffer&amp;);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;};</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment">//! String buffer with UTF8 encoding</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment"></span><span class="keyword">typedef</span> GenericStringBuffer&lt;UTF8&lt;&gt; &gt; <a class="code" href="namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21">StringBuffer</a>;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator&gt;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">PutReserve</a>(GenericStringBuffer&lt;Encoding, Allocator&gt;&amp; stream, <span class="keywordtype">size_t</span> count) {</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; stream.Reserve(count);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;}</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;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Encoding, <span class="keyword">typename</span> Allocator&gt;</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(GenericStringBuffer&lt;Encoding, Allocator&gt;&amp; stream, <span class="keyword">typename</span> Encoding::Ch c) {</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; stream.PutUnsafe(c);</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;}</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment">//! Implement specialized version of PutN() with memset() for better performance.</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;&gt;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="namespacerapidjson.html#a9d43be9c033dc49738b713fe6fbafecf"> 106</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a">PutN</a>(<a class="code" href="classrapidjson_1_1_generic_string_buffer.html">GenericStringBuffer</a>&lt;<a class="code" href="structrapidjson_1_1_u_t_f8.html">UTF8&lt;&gt;</a> &gt;&amp; stream, <span class="keywordtype">char</span> c, <span class="keywordtype">size_t</span> n) {</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; std::memset(stream.stack_.Push&lt;<span class="keywordtype">char</span>&gt;(n), c, n * <span class="keyword">sizeof</span>(c));</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;}</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;RAPIDJSON_NAMESPACE_END</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor">#if defined(__clang__)</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;RAPIDJSON_DIAG_POP</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_STRINGBUFFER_H_</span></div>
+<div class="ttc" id="namespacerapidjson_html_a820f77efccfbb749bd15fe4822d2c740"><div class="ttname"><a href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">rapidjson::PutReserve</a></div><div class="ttdeci">void PutReserve(Stream &amp;stream, size_t count)</div><div class="ttdoc">Reserve n characters for writing to a stream. </div><div class="ttdef"><b>Definition:</b> stream.h:84</div></div>
+<div class="ttc" id="classrapidjson_1_1_generic_string_buffer_html"><div class="ttname"><a href="classrapidjson_1_1_generic_string_buffer.html">rapidjson::GenericStringBuffer</a></div><div class="ttdoc">Represents an in-memory output stream. </div><div class="ttdef"><b>Definition:</b> fwd.h:59</div></div>
+<div class="ttc" id="namespacerapidjson_html_ac0765ea91f41539645c4b78689d03f21"><div class="ttname"><a href="namespacerapidjson.html#ac0765ea91f41539645c4b78689d03f21">rapidjson::StringBuffer</a></div><div class="ttdeci">GenericStringBuffer&lt; UTF8&lt; char &gt;, CrtAllocator &gt; StringBuffer</div><div class="ttdoc">String buffer with UTF8 encoding. </div><div class="ttdef"><b>Definition:</b> fwd.h:59</div></div>
+<div class="ttc" id="namespacerapidjson_html_a1ac13bac5976fc06587e00fc0bcfb32a"><div class="ttname"><a href="namespacerapidjson.html#a1ac13bac5976fc06587e00fc0bcfb32a">rapidjson::PutN</a></div><div class="ttdeci">void PutN(FileWriteStream &amp;stream, char c, size_t n)</div><div class="ttdoc">Implement specialized version of PutN() with memset() for better performance. </div><div class="ttdef"><b>Definition:</b> filewritestream.h:94</div></div>
<div class="ttc" id="structrapidjson_1_1_u_t_f8_html"><div class="ttname"><a href="structrapidjson_1_1_u_t_f8.html">rapidjson::UTF8</a></div><div class="ttdoc">UTF-8 encoding. </div><div class="ttdef"><b>Definition:</b> encodings.h:96</div></div>
-<div class="ttc" id="classrapidjson_1_1_allocator_html"><div class="ttname"><a href="classrapidjson_1_1_allocator.html">rapidjson::Allocator</a></div><div class="ttdoc">Concept for allocating, resizing and freeing memory block. </div></div>
-<div class="ttc" id="namespacerapidjson_html_a0a774dcffe8ae07686f459ae017d2f20"><div class="ttname"><a href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">rapidjson::PutUnsafe</a></div><div class="ttdeci">void PutUnsafe(Stream &amp;stream, typename Stream::Ch c)</div><div class="ttdoc">Write character to a stream, presuming buffer is reserved. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:626</div></div>
-<div class="ttc" id="namespacerapidjson_html_a1d49d2cab617858b53a1db23b1759f43"><div class="ttname"><a href="namespacerapidjson.html#a1d49d2cab617858b53a1db23b1759f43">rapidjson::PutN</a></div><div class="ttdeci">void PutN(Stream &amp;stream, Ch c, size_t n)</div><div class="ttdoc">Put N copies of a character to a stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:632</div></div>
+<div class="ttc" id="namespacerapidjson_html_a0a774dcffe8ae07686f459ae017d2f20"><div class="ttname"><a href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">rapidjson::PutUnsafe</a></div><div class="ttdeci">void PutUnsafe(Stream &amp;stream, typename Stream::Ch c)</div><div class="ttdoc">Write character to a stream, presuming buffer is reserved. </div><div class="ttdef"><b>Definition:</b> stream.h:91</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.7-->
diff --git a/zh-cn/strtod_8h_source.html b/zh-cn/strtod_8h_source.html
index 3359f97c..0c8f489b 100644
--- a/zh-cn/strtod_8h_source.html
+++ b/zh-cn/strtod_8h_source.html
@@ -105,259 +105,258 @@ $(document).ready(function(){initNavTree('strtod_8h_source.html','');});
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_STRTOD_</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define RAPIDJSON_STRTOD_</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../rapidjson.h&quot;</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;ieee754.h&quot;</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;biginteger.h&quot;</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;diyfp.h&quot;</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;pow10.h&quot;</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;RAPIDJSON_NAMESPACE_BEGIN</div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">namespace </span>internal {</div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">double</span> FastPath(<span class="keywordtype">double</span> significand, <span class="keywordtype">int</span> exp) {</div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">if</span> (exp &lt; -308)</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">return</span> 0.0;</div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (exp &gt;= 0)</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">return</span> significand * internal::Pow10(exp);</div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">return</span> significand / internal::Pow10(-exp);</div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;}</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">double</span> StrtodNormalPrecision(<span class="keywordtype">double</span> d, <span class="keywordtype">int</span> p) {</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">if</span> (p &lt; -308) {</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="comment">// Prevent expSum &lt; -308, making Pow10(p) = 0</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; d = FastPath(d, -308);</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; d = FastPath(d, p + 308);</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; }</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; d = FastPath(d, p);</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">return</span> d;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;}</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">inline</span> T Min3(T a, T b, T c) {</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; T m = a;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">if</span> (m &gt; b) m = b;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">if</span> (m &gt; c) m = c;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> m;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;}</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="keyword">inline</span> <span class="keywordtype">int</span> CheckWithinHalfULP(<span class="keywordtype">double</span> b, <span class="keyword">const</span> BigInteger&amp; d, <span class="keywordtype">int</span> dExp) {</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">const</span> Double db(b);</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">const</span> uint64_t bInt = db.IntegerSignificand();</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> bExp = db.IntegerExponent();</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> hExp = bExp - 1;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordtype">int</span> dS_Exp2 = 0, dS_Exp5 = 0, bS_Exp2 = 0, bS_Exp5 = 0, hS_Exp2 = 0, hS_Exp5 = 0;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="comment">// Adjust for decimal exponent</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">if</span> (dExp &gt;= 0) {</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; dS_Exp2 += dExp;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; dS_Exp5 += dExp;</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; <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; bS_Exp2 -= dExp;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; bS_Exp5 -= dExp;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; hS_Exp2 -= dExp;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; hS_Exp5 -= dExp;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="comment">// Adjust for binary exponent</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">if</span> (bExp &gt;= 0)</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; bS_Exp2 += bExp;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; dS_Exp2 -= bExp;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; hS_Exp2 -= bExp;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="comment">// Adjust for half ulp exponent</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">if</span> (hExp &gt;= 0)</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; hS_Exp2 += hExp;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; dS_Exp2 -= hExp;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; bS_Exp2 -= hExp;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// Remove common power of two factor from all three scaled values</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordtype">int</span> common_Exp2 = Min3(dS_Exp2, bS_Exp2, hS_Exp2);</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; dS_Exp2 -= common_Exp2;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; bS_Exp2 -= common_Exp2;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; hS_Exp2 -= common_Exp2;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; BigInteger dS = d;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; dS.MultiplyPow5(static_cast&lt;unsigned&gt;(dS_Exp5)) &lt;&lt;= <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(dS_Exp2);</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; BigInteger bS(bInt);</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; bS.MultiplyPow5(static_cast&lt;unsigned&gt;(bS_Exp5)) &lt;&lt;= <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(bS_Exp2);</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; BigInteger hS(1);</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; hS.MultiplyPow5(static_cast&lt;unsigned&gt;(hS_Exp5)) &lt;&lt;= <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(hS_Exp2);</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; BigInteger delta(0);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; dS.Difference(bS, &amp;delta);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> delta.Compare(hS);</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;}</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> StrtodFast(<span class="keywordtype">double</span> d, <span class="keywordtype">int</span> p, <span class="keywordtype">double</span>* result) {</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">// Use fast path for string-to-double conversion if possible</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="comment">// see http://www.exploringbinary.com/fast-path-decimal-to-floating-point-conversion/</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span> (p &gt; 22 &amp;&amp; p &lt; 22 + 16) {</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="comment">// Fast Path Cases In Disguise</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; d *= internal::Pow10(p - 22);</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; p = 22;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span> (p &gt;= -22 &amp;&amp; p &lt;= 22 &amp;&amp; d &lt;= 9007199254740991.0) { <span class="comment">// 2^53 - 1</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; *result = FastPath(d, p);</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;}</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment">// Compute an approximation and see if it is within 1/2 ULP</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> StrtodDiyFp(<span class="keyword">const</span> <span class="keywordtype">char</span>* decimals, <span class="keywordtype">size_t</span> length, <span class="keywordtype">size_t</span> decimalPosition, <span class="keywordtype">int</span> exp, <span class="keywordtype">double</span>* result) {</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; uint64_t significand = 0;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">size_t</span> i = 0; <span class="comment">// 2^64 - 1 = 18446744073709551615, 1844674407370955161 = 0x1999999999999999 </span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">for</span> (; i &lt; length; i++) {</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">if</span> (significand &gt; <a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0x19999999, 0x99999999) ||</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; (significand == <a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0x19999999, 0x99999999) &amp;&amp; decimals[i] &gt; <span class="charliteral">&#39;5&#39;</span>))</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; significand = significand * 10u + <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(decimals[i] - <span class="charliteral">&#39;0&#39;</span>);</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; </div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">if</span> (i &lt; length &amp;&amp; decimals[i] &gt;= <span class="charliteral">&#39;5&#39;</span>) <span class="comment">// Rounding</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; significand++;</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordtype">size_t</span> remaining = length - i;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">const</span> <span class="keywordtype">unsigned</span> kUlpShift = 3;</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">const</span> <span class="keywordtype">unsigned</span> kUlp = 1 &lt;&lt; kUlpShift;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordtype">int</span> error = (remaining == 0) ? 0 : kUlp / 2;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; DiyFp v(significand, 0);</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; v = v.Normalize();</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; error &lt;&lt;= -v.e;</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> dExp = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(decimalPosition) - static_cast&lt;int&gt;(i) + exp;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordtype">int</span> actualExp;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; DiyFp cachedPower = GetCachedPower10(dExp, &amp;actualExp);</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">if</span> (actualExp != dExp) {</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> DiyFp kPow10[] = {</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0xa0000000, 00000000), -60), <span class="comment">// 10^1</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0xc8000000, 00000000), -57), <span class="comment">// 10^2</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0xfa000000, 00000000), -54), <span class="comment">// 10^3</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0x9c400000, 00000000), -50), <span class="comment">// 10^4</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0xc3500000, 00000000), -47), <span class="comment">// 10^5</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0xf4240000, 00000000), -44), <span class="comment">// 10^6</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0x98968000, 00000000), -40) <span class="comment">// 10^7</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; };</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordtype">int</span> adjustment = dExp - actualExp - 1;</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(adjustment &gt;= 0 &amp;&amp; adjustment &lt; 7);</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; v = v * kPow10[adjustment];</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">if</span> (length + static_cast&lt;unsigned&gt;(adjustment)&gt; 19u) <span class="comment">// has more digits than decimal digits in 64-bit</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; error += kUlp / 2;</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;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; v = v * cachedPower;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; error += kUlp + (error == 0 ? 0 : 1);</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> oldExp = v.e;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; v = v.Normalize();</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; error &lt;&lt;= oldExp - v.e;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">const</span> <span class="keywordtype">unsigned</span> effectiveSignificandSize = Double::EffectiveSignificandSize(64 + v.e);</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordtype">unsigned</span> precisionSize = 64 - effectiveSignificandSize;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">if</span> (precisionSize + kUlpShift &gt;= 64) {</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordtype">unsigned</span> scaleExp = (precisionSize + kUlpShift) - 63;</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; v.f &gt;&gt;= scaleExp;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; v.e += scaleExp; </div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; error = (error &gt;&gt; scaleExp) + 1 + static_cast&lt;int&gt;(kUlp);</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; precisionSize -= scaleExp;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; DiyFp rounded(v.f &gt;&gt; precisionSize, v.e + static_cast&lt;int&gt;(precisionSize));</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">const</span> uint64_t precisionBits = (v.f &amp; ((uint64_t(1) &lt;&lt; precisionSize) - 1)) * kUlp;</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">const</span> uint64_t halfWay = (uint64_t(1) &lt;&lt; (precisionSize - 1)) * kUlp;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">if</span> (precisionBits &gt;= halfWay + static_cast&lt;unsigned&gt;(error)) {</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; rounded.f++;</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">if</span> (rounded.f &amp; (DiyFp::kDpHiddenBit &lt;&lt; 1)) { <span class="comment">// rounding overflows mantissa (issue #340)</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; rounded.f &gt;&gt;= 1;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; rounded.e++;</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; *result = rounded.ToDouble();</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">return</span> halfWay - <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(error) &gt;= precisionBits || precisionBits &gt;= halfWay + static_cast&lt;unsigned&gt;(error);</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="keyword">inline</span> <span class="keywordtype">double</span> StrtodBigInteger(<span class="keywordtype">double</span> approx, <span class="keyword">const</span> <span class="keywordtype">char</span>* decimals, <span class="keywordtype">size_t</span> length, <span class="keywordtype">size_t</span> decimalPosition, <span class="keywordtype">int</span> exp) {</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">const</span> BigInteger dInt(decimals, length);</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> dExp = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(decimalPosition) - static_cast&lt;int&gt;(length) + exp;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; Double a(approx);</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordtype">int</span> cmp = CheckWithinHalfULP(a.Value(), dInt, dExp);</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">if</span> (cmp &lt; 0)</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">return</span> a.Value(); <span class="comment">// within half ULP</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cmp == 0) {</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="comment">// Round towards even</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">if</span> (a.Significand() &amp; 1)</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">return</span> a.NextPositiveDouble();</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">return</span> a.Value();</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">else</span> <span class="comment">// adjustment</span></div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">return</span> a.NextPositiveDouble();</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;}</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">double</span> StrtodFullPrecision(<span class="keywordtype">double</span> d, <span class="keywordtype">int</span> p, <span class="keyword">const</span> <span class="keywordtype">char</span>* decimals, <span class="keywordtype">size_t</span> length, <span class="keywordtype">size_t</span> decimalPosition, <span class="keywordtype">int</span> exp) {</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(d &gt;= 0.0);</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(length &gt;= 1);</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordtype">double</span> result;</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">if</span> (StrtodFast(d, p, &amp;result))</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">return</span> result;</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; <span class="comment">// Trim leading zeros</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">while</span> (*decimals == <span class="charliteral">&#39;0&#39;</span> &amp;&amp; length &gt; 1) {</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; length--;</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; decimals++;</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; decimalPosition--;</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; <span class="comment">// Trim trailing zeros</span></div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">while</span> (decimals[length - 1] == <span class="charliteral">&#39;0&#39;</span> &amp;&amp; length &gt; 1) {</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; length--;</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; decimalPosition--;</div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; exp++;</div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="comment">// Trim right-most digits</span></div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> kMaxDecimalDigit = 780;</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">if</span> (static_cast&lt;int&gt;(length) &gt; kMaxDecimalDigit) {</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordtype">int</span> delta = (<span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(length) - kMaxDecimalDigit);</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; exp += delta;</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; decimalPosition -= <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(delta);</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; length = kMaxDecimalDigit;</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;</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="comment">// If too small, underflow to zero</span></div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">if</span> (<span class="keywordtype">int</span>(length) + exp &lt; -324)</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">return</span> 0.0;</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">if</span> (StrtodDiyFp(decimals, length, decimalPosition, exp, &amp;result))</div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="comment">// Use approximation from StrtodDiyFp and make adjustment with BigInteger comparison</span></div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">return</span> StrtodBigInteger(result, decimals, length, decimalPosition, exp);</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;}</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;} <span class="comment">// namespace internal</span></div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;RAPIDJSON_NAMESPACE_END</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_STRTOD_</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;ieee754.h&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;biginteger.h&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;diyfp.h&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;pow10.h&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;RAPIDJSON_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">namespace </span>internal {</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="keyword">inline</span> <span class="keywordtype">double</span> FastPath(<span class="keywordtype">double</span> significand, <span class="keywordtype">int</span> exp) {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">if</span> (exp &lt; -308)</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">return</span> 0.0;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (exp &gt;= 0)</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">return</span> significand * internal::Pow10(exp);</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">return</span> significand / internal::Pow10(-exp);</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;}</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">double</span> StrtodNormalPrecision(<span class="keywordtype">double</span> d, <span class="keywordtype">int</span> p) {</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">if</span> (p &lt; -308) {</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="comment">// Prevent expSum &lt; -308, making Pow10(p) = 0</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; d = FastPath(d, -308);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; d = FastPath(d, p + 308);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; }</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; d = FastPath(d, p);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">return</span> d;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;}</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">inline</span> T Min3(T a, T b, T c) {</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; T m = a;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span> (m &gt; b) m = b;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">if</span> (m &gt; c) m = c;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">return</span> m;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;}</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> CheckWithinHalfULP(<span class="keywordtype">double</span> b, <span class="keyword">const</span> BigInteger&amp; d, <span class="keywordtype">int</span> dExp) {</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">const</span> Double db(b);</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">const</span> uint64_t bInt = db.IntegerSignificand();</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> bExp = db.IntegerExponent();</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> hExp = bExp - 1;</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="keywordtype">int</span> dS_Exp2 = 0, dS_Exp5 = 0, bS_Exp2 = 0, bS_Exp5 = 0, hS_Exp2 = 0, hS_Exp5 = 0;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="comment">// Adjust for decimal exponent</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">if</span> (dExp &gt;= 0) {</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; dS_Exp2 += dExp;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; dS_Exp5 += dExp;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; bS_Exp2 -= dExp;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; bS_Exp5 -= dExp;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; hS_Exp2 -= dExp;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; hS_Exp5 -= dExp;</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;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="comment">// Adjust for binary exponent</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">if</span> (bExp &gt;= 0)</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; bS_Exp2 += bExp;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; dS_Exp2 -= bExp;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; hS_Exp2 -= bExp;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="comment">// Adjust for half ulp exponent</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">if</span> (hExp &gt;= 0)</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; hS_Exp2 += hExp;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; dS_Exp2 -= hExp;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; bS_Exp2 -= hExp;</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;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// Remove common power of two factor from all three scaled values</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">int</span> common_Exp2 = Min3(dS_Exp2, bS_Exp2, hS_Exp2);</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; dS_Exp2 -= common_Exp2;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; bS_Exp2 -= common_Exp2;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; hS_Exp2 -= common_Exp2;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; BigInteger dS = d;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; dS.MultiplyPow5(static_cast&lt;unsigned&gt;(dS_Exp5)) &lt;&lt;= <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(dS_Exp2);</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; BigInteger bS(bInt);</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; bS.MultiplyPow5(static_cast&lt;unsigned&gt;(bS_Exp5)) &lt;&lt;= <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(bS_Exp2);</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; BigInteger hS(1);</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; hS.MultiplyPow5(static_cast&lt;unsigned&gt;(hS_Exp5)) &lt;&lt;= <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(hS_Exp2);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; BigInteger delta(0);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; dS.Difference(bS, &amp;delta);</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> delta.Compare(hS);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;}</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> StrtodFast(<span class="keywordtype">double</span> d, <span class="keywordtype">int</span> p, <span class="keywordtype">double</span>* result) {</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// Use fast path for string-to-double conversion if possible</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">// see http://www.exploringbinary.com/fast-path-decimal-to-floating-point-conversion/</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">if</span> (p &gt; 22 &amp;&amp; p &lt; 22 + 16) {</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="comment">// Fast Path Cases In Disguise</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; d *= internal::Pow10(p - 22);</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; p = 22;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">if</span> (p &gt;= -22 &amp;&amp; p &lt;= 22 &amp;&amp; d &lt;= 9007199254740991.0) { <span class="comment">// 2^53 - 1</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; *result = FastPath(d, p);</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</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;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment">// Compute an approximation and see if it is within 1/2 ULP</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> StrtodDiyFp(<span class="keyword">const</span> <span class="keywordtype">char</span>* decimals, <span class="keywordtype">size_t</span> length, <span class="keywordtype">size_t</span> decimalPosition, <span class="keywordtype">int</span> exp, <span class="keywordtype">double</span>* result) {</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; uint64_t significand = 0;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordtype">size_t</span> i = 0; <span class="comment">// 2^64 - 1 = 18446744073709551615, 1844674407370955161 = 0x1999999999999999 </span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">for</span> (; i &lt; length; i++) {</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span> (significand &gt; <a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0x19999999, 0x99999999) ||</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; (significand == <a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0x19999999, 0x99999999) &amp;&amp; decimals[i] &gt; <span class="charliteral">&#39;5&#39;</span>))</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; significand = significand * 10u + <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(decimals[i] - <span class="charliteral">&#39;0&#39;</span>);</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</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="keywordflow">if</span> (i &lt; length &amp;&amp; decimals[i] &gt;= <span class="charliteral">&#39;5&#39;</span>) <span class="comment">// Rounding</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; significand++;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordtype">size_t</span> remaining = length - i;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">const</span> <span class="keywordtype">unsigned</span> kUlpShift = 3;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">const</span> <span class="keywordtype">unsigned</span> kUlp = 1 &lt;&lt; kUlpShift;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">int</span> error = (remaining == 0) ? 0 : kUlp / 2;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; DiyFp v(significand, 0);</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; v = v.Normalize();</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; error &lt;&lt;= -v.e;</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> dExp = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(decimalPosition) - static_cast&lt;int&gt;(i) + exp;</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="keywordtype">int</span> actualExp;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; DiyFp cachedPower = GetCachedPower10(dExp, &amp;actualExp);</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">if</span> (actualExp != dExp) {</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> DiyFp kPow10[] = {</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0xa0000000, 00000000), -60), <span class="comment">// 10^1</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0xc8000000, 00000000), -57), <span class="comment">// 10^2</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0xfa000000, 00000000), -54), <span class="comment">// 10^3</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0x9c400000, 00000000), -50), <span class="comment">// 10^4</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0xc3500000, 00000000), -47), <span class="comment">// 10^5</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0xf4240000, 00000000), -44), <span class="comment">// 10^6</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; DiyFp(<a class="code" href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a>(0x98968000, 00000000), -40) <span class="comment">// 10^7</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; };</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordtype">int</span> adjustment = dExp - actualExp - 1;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(adjustment &gt;= 0 &amp;&amp; adjustment &lt; 7);</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; v = v * kPow10[adjustment];</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">if</span> (length + static_cast&lt;unsigned&gt;(adjustment)&gt; 19u) <span class="comment">// has more digits than decimal digits in 64-bit</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; error += kUlp / 2;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</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; v = v * cachedPower;</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"> 174</span>&#160; error += kUlp + (error == 0 ? 0 : 1);</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="keyword">const</span> <span class="keywordtype">int</span> oldExp = v.e;</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; v = v.Normalize();</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; error &lt;&lt;= oldExp - v.e;</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">const</span> <span class="keywordtype">unsigned</span> effectiveSignificandSize = Double::EffectiveSignificandSize(64 + v.e);</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordtype">unsigned</span> precisionSize = 64 - effectiveSignificandSize;</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">if</span> (precisionSize + kUlpShift &gt;= 64) {</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordtype">unsigned</span> scaleExp = (precisionSize + kUlpShift) - 63;</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; v.f &gt;&gt;= scaleExp;</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; v.e += scaleExp; </div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; error = (error &gt;&gt; scaleExp) + 1 + static_cast&lt;int&gt;(kUlp);</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; precisionSize -= scaleExp;</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;</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; DiyFp rounded(v.f &gt;&gt; precisionSize, v.e + static_cast&lt;int&gt;(precisionSize));</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">const</span> uint64_t precisionBits = (v.f &amp; ((uint64_t(1) &lt;&lt; precisionSize) - 1)) * kUlp;</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">const</span> uint64_t halfWay = (uint64_t(1) &lt;&lt; (precisionSize - 1)) * kUlp;</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">if</span> (precisionBits &gt;= halfWay + static_cast&lt;unsigned&gt;(error)) {</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; rounded.f++;</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">if</span> (rounded.f &amp; (DiyFp::kDpHiddenBit &lt;&lt; 1)) { <span class="comment">// rounding overflows mantissa (issue #340)</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; rounded.f &gt;&gt;= 1;</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; rounded.e++;</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; }</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; *result = rounded.ToDouble();</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">return</span> halfWay - <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(error) &gt;= precisionBits || precisionBits &gt;= halfWay + static_cast&lt;unsigned&gt;(error);</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;}</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;<span class="keyword">inline</span> <span class="keywordtype">double</span> StrtodBigInteger(<span class="keywordtype">double</span> approx, <span class="keyword">const</span> <span class="keywordtype">char</span>* decimals, <span class="keywordtype">size_t</span> length, <span class="keywordtype">size_t</span> decimalPosition, <span class="keywordtype">int</span> exp) {</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">const</span> BigInteger dInt(decimals, length);</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> dExp = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(decimalPosition) - static_cast&lt;int&gt;(length) + exp;</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; Double a(approx);</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordtype">int</span> cmp = CheckWithinHalfULP(a.Value(), dInt, dExp);</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">if</span> (cmp &lt; 0)</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> a.Value(); <span class="comment">// within half ULP</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cmp == 0) {</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="comment">// Round towards even</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">if</span> (a.Significand() &amp; 1)</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">return</span> a.NextPositiveDouble();</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">return</span> a.Value();</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; <span class="keywordflow">else</span> <span class="comment">// adjustment</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">return</span> a.NextPositiveDouble();</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;</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">double</span> StrtodFullPrecision(<span class="keywordtype">double</span> d, <span class="keywordtype">int</span> p, <span class="keyword">const</span> <span class="keywordtype">char</span>* decimals, <span class="keywordtype">size_t</span> length, <span class="keywordtype">size_t</span> decimalPosition, <span class="keywordtype">int</span> exp) {</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(d &gt;= 0.0);</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(length &gt;= 1);</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; <span class="keywordtype">double</span> result;</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">if</span> (StrtodFast(d, p, &amp;result))</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="comment">// Trim leading zeros</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">while</span> (*decimals == <span class="charliteral">&#39;0&#39;</span> &amp;&amp; length &gt; 1) {</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; length--;</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; decimals++;</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; decimalPosition--;</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; }</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; <span class="comment">// Trim trailing zeros</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">while</span> (decimals[length - 1] == <span class="charliteral">&#39;0&#39;</span> &amp;&amp; length &gt; 1) {</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; length--;</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; decimalPosition--;</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; exp++;</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;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="comment">// Trim right-most digits</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> kMaxDecimalDigit = 780;</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">if</span> (static_cast&lt;int&gt;(length) &gt; kMaxDecimalDigit) {</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordtype">int</span> delta = (<span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(length) - kMaxDecimalDigit);</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; exp += delta;</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; decimalPosition -= <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span>(delta);</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; length = kMaxDecimalDigit;</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="comment">// If too small, underflow to zero</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">if</span> (<span class="keywordtype">int</span>(length) + exp &lt; -324)</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">return</span> 0.0;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">if</span> (StrtodDiyFp(decimals, length, decimalPosition, exp, &amp;result))</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="comment">// Use approximation from StrtodDiyFp and make adjustment with BigInteger comparison</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">return</span> StrtodBigInteger(result, decimals, length, decimalPosition, exp);</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;}</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;} <span class="comment">// namespace internal</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;RAPIDJSON_NAMESPACE_END</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_STRTOD_</span></div>
<div class="ttc" id="rapidjson_8h_html_aaee1245f375a71be1ac9b8a07ba5fb8f"><div class="ttname"><a href="rapidjson_8h.html#aaee1245f375a71be1ac9b8a07ba5fb8f">RAPIDJSON_UINT64_C2</a></div><div class="ttdeci">#define RAPIDJSON_UINT64_C2(high32, low32)</div><div class="ttdoc">Construct a 64-bit literal by a pair of 32-bit integer. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:288</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
</div><!-- fragment --></div><!-- contents -->
diff --git a/zh-cn/structrapidjson_1_1_a_s_c_i_i.html b/zh-cn/structrapidjson_1_1_a_s_c_i_i.html
index 67eb4c53..797d5515 100644
--- a/zh-cn/structrapidjson_1_1_a_s_c_i_i.html
+++ b/zh-cn/structrapidjson_1_1_a_s_c_i_i.html
@@ -100,9 +100,9 @@ $(document).ready(function(){initNavTree('structrapidjson_1_1_a_s_c_i_i.html',''
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
-<tr class="memitem:a9949bd6ba4dabd9945412bb96fcc4240"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9949bd6ba4dabd9945412bb96fcc4240"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 0
+<tr class="memitem:a598bb5f32c9f0c851529a9ded73db5eb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a598bb5f32c9f0c851529a9ded73db5eb"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 0
}</td></tr>
-<tr class="separator:a9949bd6ba4dabd9945412bb96fcc4240"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:a598bb5f32c9f0c851529a9ded73db5eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c1e49f42921027d58f1125a627cc5e5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2c1e49f42921027d58f1125a627cc5e5"></a>
typedef CharType&#160;</td><td class="memItemRight" valign="bottom"><b>Ch</b></td></tr>
<tr class="separator:a2c1e49f42921027d58f1125a627cc5e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/zh-cn/structrapidjson_1_1_a_s_c_i_i.js b/zh-cn/structrapidjson_1_1_a_s_c_i_i.js
index 9deb9de5..cc01e358 100644
--- a/zh-cn/structrapidjson_1_1_a_s_c_i_i.js
+++ b/zh-cn/structrapidjson_1_1_a_s_c_i_i.js
@@ -1,5 +1,5 @@
var structrapidjson_1_1_a_s_c_i_i =
[
[ "Ch", "structrapidjson_1_1_a_s_c_i_i.html#a2c1e49f42921027d58f1125a627cc5e5", null ],
- [ "supportUnicode", "structrapidjson_1_1_a_s_c_i_i.html#a9949bd6ba4dabd9945412bb96fcc4240a7c8190ea4c25af669f952bfe200afeee", null ]
+ [ "supportUnicode", "structrapidjson_1_1_a_s_c_i_i.html#a598bb5f32c9f0c851529a9ded73db5eba7c8190ea4c25af669f952bfe200afeee", null ]
]; \ No newline at end of file
diff --git a/zh-cn/structrapidjson_1_1_auto_u_t_f.html b/zh-cn/structrapidjson_1_1_auto_u_t_f.html
index fdd401b0..bfb95ec9 100644
--- a/zh-cn/structrapidjson_1_1_auto_u_t_f.html
+++ b/zh-cn/structrapidjson_1_1_auto_u_t_f.html
@@ -100,9 +100,9 @@ $(document).ready(function(){initNavTree('structrapidjson_1_1_auto_u_t_f.html','
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
-<tr class="memitem:a97917924016223755d1f2f70812ea6ed"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a97917924016223755d1f2f70812ea6ed"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
+<tr class="memitem:aa9095b9e85767361f9a0ae5527dba101"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa9095b9e85767361f9a0ae5527dba101"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
}</td></tr>
-<tr class="separator:a97917924016223755d1f2f70812ea6ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:aa9095b9e85767361f9a0ae5527dba101"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ba58f529fad9b33dc419b12ee13844d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8ba58f529fad9b33dc419b12ee13844d"></a>
typedef CharType&#160;</td><td class="memItemRight" valign="bottom"><b>Ch</b></td></tr>
<tr class="separator:a8ba58f529fad9b33dc419b12ee13844d"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/zh-cn/structrapidjson_1_1_auto_u_t_f.js b/zh-cn/structrapidjson_1_1_auto_u_t_f.js
index 85cd1393..14cf7342 100644
--- a/zh-cn/structrapidjson_1_1_auto_u_t_f.js
+++ b/zh-cn/structrapidjson_1_1_auto_u_t_f.js
@@ -1,5 +1,5 @@
var structrapidjson_1_1_auto_u_t_f =
[
[ "Ch", "structrapidjson_1_1_auto_u_t_f.html#a8ba58f529fad9b33dc419b12ee13844d", null ],
- [ "supportUnicode", "structrapidjson_1_1_auto_u_t_f.html#a97917924016223755d1f2f70812ea6eda15b55b712f9e34d146fb236e5a89e06e", null ]
+ [ "supportUnicode", "structrapidjson_1_1_auto_u_t_f.html#aa9095b9e85767361f9a0ae5527dba101a15b55b712f9e34d146fb236e5a89e06e", null ]
]; \ No newline at end of file
diff --git a/zh-cn/structrapidjson_1_1_base_reader_handler.html b/zh-cn/structrapidjson_1_1_base_reader_handler.html
index 44f5182d..7299f28c 100644
--- a/zh-cn/structrapidjson_1_1_base_reader_handler.html
+++ b/zh-cn/structrapidjson_1_1_base_reader_handler.html
@@ -156,12 +156,13 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>EndArray</b> (<a clas
<tr class="separator:a8fc75176ec793217d40d5a8de049cdb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
-<div class="textblock"><h3>template&lt;typename Encoding = UTF8&lt;&gt;, typename Derived = void&gt;<br />
+<div class="textblock"><h3>template&lt;typename Encoding, typename Derived&gt;<br />
struct rapidjson::BaseReaderHandler&lt; Encoding, Derived &gt;</h3>
<p>Default implementation of <a class="el" href="classrapidjson_1_1_handler.html" title="Concept for receiving events from GenericReader upon parsing. The functions return true if no error o...">Handler</a>. </p>
<p>This can be used as base class of any reader handler. </p><dl class="section note"><dt>注解</dt><dd>implements <a class="el" href="classrapidjson_1_1_handler.html" title="Concept for receiving events from GenericReader upon parsing. The functions return true if no error o...">Handler</a> concept </dd></dl>
</div><hr/>该结构体的文档由以下文件生成:<ul>
+<li>include/rapidjson/<a class="el" href="fwd_8h_source.html">fwd.h</a></li>
<li>include/rapidjson/<a class="el" href="reader_8h_source.html">reader.h</a></li>
</ul>
</div><!-- contents -->
diff --git a/zh-cn/structrapidjson_1_1_generic_insitu_string_stream.html b/zh-cn/structrapidjson_1_1_generic_insitu_string_stream.html
index 7d9a339f..a6f743b7 100644
--- a/zh-cn/structrapidjson_1_1_generic_insitu_string_stream.html
+++ b/zh-cn/structrapidjson_1_1_generic_insitu_string_stream.html
@@ -97,7 +97,7 @@ $(document).ready(function(){initNavTree('structrapidjson_1_1_generic_insitu_str
<p>A read-write string stream.
<a href="structrapidjson_1_1_generic_insitu_string_stream.html#details">更多...</a></p>
-<p><code>#include &lt;<a class="el" href="rapidjson_8h_source.html">rapidjson.h</a>&gt;</code></p>
+<p><code>#include &lt;<a class="el" href="stream_8h_source.html">stream.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
@@ -157,7 +157,8 @@ struct rapidjson::GenericInsituStringStream&lt; Encoding &gt;</h3>
<p>A read-write string stream. </p>
<p>This string stream is particularly designed for in-situ parsing. </p><dl class="section note"><dt>注解</dt><dd>implements <a class="el" href="classrapidjson_1_1_stream.html" title="Concept for reading and writing characters. ">Stream</a> concept </dd></dl>
</div><hr/>该结构体的文档由以下文件生成:<ul>
-<li>include/rapidjson/<a class="el" href="rapidjson_8h_source.html">rapidjson.h</a></li>
+<li>include/rapidjson/<a class="el" href="fwd_8h_source.html">fwd.h</a></li>
+<li>include/rapidjson/<a class="el" href="stream_8h_source.html">stream.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/zh-cn/structrapidjson_1_1_generic_memory_buffer.html b/zh-cn/structrapidjson_1_1_generic_memory_buffer.html
index 2aac250b..49f886fd 100644
--- a/zh-cn/structrapidjson_1_1_generic_memory_buffer.html
+++ b/zh-cn/structrapidjson_1_1_generic_memory_buffer.html
@@ -149,7 +149,7 @@ static const size_t&#160;</td><td class="memItemRight" valign="bottom"><b>kDefau
<tr class="separator:abaa207fb3f94da48b0c91755828f98b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
-<div class="textblock"><h3>template&lt;typename Allocator = CrtAllocator&gt;<br />
+<div class="textblock"><h3>template&lt;typename Allocator&gt;<br />
struct rapidjson::GenericMemoryBuffer&lt; Allocator &gt;</h3>
<p>Represents an in-memory output byte stream. </p>
@@ -167,6 +167,7 @@ struct rapidjson::GenericMemoryBuffer&lt; Allocator &gt;</h3>
</dl>
<dl class="section note"><dt>注解</dt><dd>implements <a class="el" href="classrapidjson_1_1_stream.html" title="Concept for reading and writing characters. ">Stream</a> concept </dd></dl>
</div><hr/>该结构体的文档由以下文件生成:<ul>
+<li>include/rapidjson/<a class="el" href="fwd_8h_source.html">fwd.h</a></li>
<li>include/rapidjson/<a class="el" href="memorybuffer_8h_source.html">memorybuffer.h</a></li>
</ul>
</div><!-- contents -->
diff --git a/zh-cn/structrapidjson_1_1_generic_pointer_1_1_token.html b/zh-cn/structrapidjson_1_1_generic_pointer_1_1_token.html
index 2ca658da..13ebe408 100644
--- a/zh-cn/structrapidjson_1_1_generic_pointer_1_1_token.html
+++ b/zh-cn/structrapidjson_1_1_generic_pointer_1_1_token.html
@@ -113,7 +113,7 @@ const <a class="el" href="classrapidjson_1_1_generic_pointer.html#a850f78846c554
<tr class="separator:a50331c9e3dedc34d2c79745b2e58fb2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
-<div class="textblock"><h3>template&lt;typename ValueType, typename Allocator = CrtAllocator&gt;<br />
+<div class="textblock"><h3>template&lt;typename ValueType, typename Allocator&gt;<br />
struct rapidjson::GenericPointer&lt; ValueType, Allocator &gt;::Token</h3>
<p>A token is the basic units of internal representation. </p>
diff --git a/zh-cn/structrapidjson_1_1_generic_string_ref.html b/zh-cn/structrapidjson_1_1_generic_string_ref.html
index 5f257257..51d32500 100644
--- a/zh-cn/structrapidjson_1_1_generic_string_ref.html
+++ b/zh-cn/structrapidjson_1_1_generic_string_ref.html
@@ -165,14 +165,14 @@ struct rapidjson::GenericStringRef&lt; CharType &gt;</h3>
</dl>
<p>This helper class is used to automatically infer constant string references for string literals, especially from <code>const</code> <b></b>(!) character arrays.</p>
<p>The main use is for creating JSON string values without copying the source string via an <a class="el" href="md_doc_internals.html#Allocator">Allocator</a>. This requires that the referenced string pointers have a sufficient lifetime, which exceeds the lifetime of the associated <a class="el" href="classrapidjson_1_1_generic_value.html" title="Represents a JSON value. Use Value for UTF8 encoding and default allocator. ">GenericValue</a>.</p>
-<p><b>Example</b> </p><div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> v(<span class="stringliteral">&quot;foo&quot;</span>); <span class="comment">// ok, no need to copy &amp; calculate length</span></div>
+<p><b>Example</b> </p><div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> v(<span class="stringliteral">&quot;foo&quot;</span>); <span class="comment">// ok, no need to copy &amp; calculate length</span></div>
<div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span> foo[] = <span class="stringliteral">&quot;foo&quot;</span>;</div>
<div class="line">v.SetString(foo); <span class="comment">// ok</span></div>
<div class="line"></div>
<div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span>* bar = foo;</div>
<div class="line"><span class="comment">// Value x(bar); // not ok, can&#39;t rely on bar&#39;s lifetime</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> x(<a class="code" href="structrapidjson_1_1_generic_string_ref.html#aa6b9fd9f6aa49405a574c362ba9af6b5">StringRef</a>(bar)); <span class="comment">// lifetime explicitly guaranteed by user</span></div>
-<div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> y(<a class="code" href="structrapidjson_1_1_generic_string_ref.html#aa6b9fd9f6aa49405a574c362ba9af6b5">StringRef</a>(bar, 3)); <span class="comment">// ok, explicitly pass length</span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> x(<a class="code" href="structrapidjson_1_1_generic_string_ref.html#aa6b9fd9f6aa49405a574c362ba9af6b5">StringRef</a>(bar)); <span class="comment">// lifetime explicitly guaranteed by user</span></div>
+<div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> y(<a class="code" href="structrapidjson_1_1_generic_string_ref.html#aa6b9fd9f6aa49405a574c362ba9af6b5">StringRef</a>(bar, 3)); <span class="comment">// ok, explicitly pass length</span></div>
</div><!-- fragment --><dl class="section see"><dt>参见</dt><dd><a class="el" href="structrapidjson_1_1_generic_string_ref.html#aa6b9fd9f6aa49405a574c362ba9af6b5" title="Mark a character pointer as constant string. ">StringRef</a>, <a class="el" href="classrapidjson_1_1_generic_value.html#afb91480cc6242ca96ffc603e649c319f" title="Set this value as a string without copying source string. ">GenericValue::SetString</a> </dd></dl>
</div><h2 class="groupheader">构造及析构函数说明</h2>
<a class="anchor" id="acd4d5ebac2b610ce647356aa52998002"></a>
diff --git a/zh-cn/structrapidjson_1_1_generic_string_stream.html b/zh-cn/structrapidjson_1_1_generic_string_stream.html
index bb79ccc3..a58d6d4c 100644
--- a/zh-cn/structrapidjson_1_1_generic_string_stream.html
+++ b/zh-cn/structrapidjson_1_1_generic_string_stream.html
@@ -97,7 +97,7 @@ $(document).ready(function(){initNavTree('structrapidjson_1_1_generic_string_str
<p>Read-only string stream.
<a href="structrapidjson_1_1_generic_string_stream.html#details">更多...</a></p>
-<p><code>#include &lt;<a class="el" href="rapidjson_8h_source.html">rapidjson.h</a>&gt;</code></p>
+<p><code>#include &lt;<a class="el" href="stream_8h_source.html">stream.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
@@ -150,7 +150,8 @@ struct rapidjson::GenericStringStream&lt; Encoding &gt;</h3>
<p>Read-only string stream. </p>
<dl class="section note"><dt>注解</dt><dd>implements <a class="el" href="classrapidjson_1_1_stream.html" title="Concept for reading and writing characters. ">Stream</a> concept </dd></dl>
</div><hr/>该结构体的文档由以下文件生成:<ul>
-<li>include/rapidjson/<a class="el" href="rapidjson_8h_source.html">rapidjson.h</a></li>
+<li>include/rapidjson/<a class="el" href="fwd_8h_source.html">fwd.h</a></li>
+<li>include/rapidjson/<a class="el" href="stream_8h_source.html">stream.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/zh-cn/structrapidjson_1_1_stream_traits.html b/zh-cn/structrapidjson_1_1_stream_traits.html
index 09e8fc8b..66d15c64 100644
--- a/zh-cn/structrapidjson_1_1_stream_traits.html
+++ b/zh-cn/structrapidjson_1_1_stream_traits.html
@@ -95,14 +95,14 @@ $(document).ready(function(){initNavTree('structrapidjson_1_1_stream_traits.html
<p>Provides additional information for stream.
<a href="structrapidjson_1_1_stream_traits.html#details">更多...</a></p>
-<p><code>#include &lt;<a class="el" href="rapidjson_8h_source.html">rapidjson.h</a>&gt;</code></p>
+<p><code>#include &lt;<a class="el" href="stream_8h_source.html">stream.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
-<tr class="memitem:abce9b61706255c4575abaf0ca9a7b94a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>copyOptimization</b> = 0
+<tr class="memitem:a3a11abaf56440885401e34830a819c53"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>copyOptimization</b> = 0
}</td></tr>
-<tr class="memdesc:abce9b61706255c4575abaf0ca9a7b94a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to make local copy of stream for optimization during parsing. <a href="structrapidjson_1_1_stream_traits.html#abce9b61706255c4575abaf0ca9a7b94a">更多...</a><br /></td></tr>
-<tr class="separator:abce9b61706255c4575abaf0ca9a7b94a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memdesc:a3a11abaf56440885401e34830a819c53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to make local copy of stream for optimization during parsing. <a href="structrapidjson_1_1_stream_traits.html#a3a11abaf56440885401e34830a819c53">更多...</a><br /></td></tr>
+<tr class="separator:a3a11abaf56440885401e34830a819c53"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><h3>template&lt;typename Stream&gt;<br />
@@ -111,7 +111,7 @@ struct rapidjson::StreamTraits&lt; Stream &gt;</h3>
<p>Provides additional information for stream. </p>
<p>By using traits pattern, this type provides a default configuration for stream. For custom stream, this type can be specialized for other configuration. See TEST(Reader, CustomStringStream) in readertest.cpp for example. </p>
</div><h2 class="groupheader">成员枚举类型说明</h2>
-<a class="anchor" id="abce9b61706255c4575abaf0ca9a7b94a"></a>
+<a class="anchor" id="a3a11abaf56440885401e34830a819c53"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
@@ -129,7 +129,7 @@ template&lt;typename Stream &gt; </div>
</div>
</div>
<hr/>该结构体的文档由以下文件生成:<ul>
-<li>include/rapidjson/<a class="el" href="rapidjson_8h_source.html">rapidjson.h</a></li>
+<li>include/rapidjson/<a class="el" href="stream_8h_source.html">stream.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/zh-cn/structrapidjson_1_1_stream_traits.js b/zh-cn/structrapidjson_1_1_stream_traits.js
index 3f1738ac..4355c91a 100644
--- a/zh-cn/structrapidjson_1_1_stream_traits.js
+++ b/zh-cn/structrapidjson_1_1_stream_traits.js
@@ -1,4 +1,4 @@
var structrapidjson_1_1_stream_traits =
[
- [ "copyOptimization", "structrapidjson_1_1_stream_traits.html#abce9b61706255c4575abaf0ca9a7b94aaf6f7f81d1e208f1041e618b57e0d3828", null ]
+ [ "copyOptimization", "structrapidjson_1_1_stream_traits.html#a3a11abaf56440885401e34830a819c53af6f7f81d1e208f1041e618b57e0d3828", null ]
]; \ No newline at end of file
diff --git a/zh-cn/structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html b/zh-cn/structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html
index 86622bed..158ec14c 100644
--- a/zh-cn/structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html
+++ b/zh-cn/structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html
@@ -94,12 +94,12 @@ $(document).ready(function(){initNavTree('structrapidjson_1_1_stream_traits_3_01
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
-<tr class="memitem:a054229c03fb6ea37485c597efbf2b10c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a054229c03fb6ea37485c597efbf2b10c"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>copyOptimization</b> = 1
+<tr class="memitem:af17a82c2a14a192ef2e497aba82ad46b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af17a82c2a14a192ef2e497aba82ad46b"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>copyOptimization</b> = 1
}</td></tr>
-<tr class="separator:a054229c03fb6ea37485c597efbf2b10c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:af17a82c2a14a192ef2e497aba82ad46b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/>该结构体的文档由以下文件生成:<ul>
-<li>include/rapidjson/<a class="el" href="rapidjson_8h_source.html">rapidjson.h</a></li>
+<li>include/rapidjson/<a class="el" href="stream_8h_source.html">stream.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/zh-cn/structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.js b/zh-cn/structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.js
index a679d1c8..945d21a4 100644
--- a/zh-cn/structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.js
+++ b/zh-cn/structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.js
@@ -1,4 +1,4 @@
var structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4 =
[
- [ "copyOptimization", "structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html#a054229c03fb6ea37485c597efbf2b10cab943169f50f1fc0616fedc1dd2605201", null ]
+ [ "copyOptimization", "structrapidjson_1_1_stream_traits_3_01_generic_insitu_string_stream_3_01_encoding_01_4_01_4.html#af17a82c2a14a192ef2e497aba82ad46bab943169f50f1fc0616fedc1dd2605201", null ]
]; \ No newline at end of file
diff --git a/zh-cn/structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html b/zh-cn/structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html
index baec2802..91dbe306 100644
--- a/zh-cn/structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html
+++ b/zh-cn/structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html
@@ -94,12 +94,12 @@ $(document).ready(function(){initNavTree('structrapidjson_1_1_stream_traits_3_01
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
-<tr class="memitem:a210d1cf911ace22a80ec62aec8869c11"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a210d1cf911ace22a80ec62aec8869c11"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>copyOptimization</b> = 1
+<tr class="memitem:ad0861f3abdc5e583e711bc2679fe8f33"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad0861f3abdc5e583e711bc2679fe8f33"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>copyOptimization</b> = 1
}</td></tr>
-<tr class="separator:a210d1cf911ace22a80ec62aec8869c11"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:ad0861f3abdc5e583e711bc2679fe8f33"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/>该结构体的文档由以下文件生成:<ul>
-<li>include/rapidjson/<a class="el" href="rapidjson_8h_source.html">rapidjson.h</a></li>
+<li>include/rapidjson/<a class="el" href="stream_8h_source.html">stream.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/zh-cn/structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.js b/zh-cn/structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.js
index dac4e107..79ea6b83 100644
--- a/zh-cn/structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.js
+++ b/zh-cn/structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.js
@@ -1,4 +1,4 @@
var structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4 =
[
- [ "copyOptimization", "structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html#a210d1cf911ace22a80ec62aec8869c11a58160aabefa22129afe0dd6dce3285f9", null ]
+ [ "copyOptimization", "structrapidjson_1_1_stream_traits_3_01_generic_string_stream_3_01_encoding_01_4_01_4.html#ad0861f3abdc5e583e711bc2679fe8f33a58160aabefa22129afe0dd6dce3285f9", null ]
]; \ No newline at end of file
diff --git a/zh-cn/structrapidjson_1_1_u_t_f16.html b/zh-cn/structrapidjson_1_1_u_t_f16.html
index 3391baf8..35a95c5e 100644
--- a/zh-cn/structrapidjson_1_1_u_t_f16.html
+++ b/zh-cn/structrapidjson_1_1_u_t_f16.html
@@ -111,9 +111,9 @@ $(document).ready(function(){initNavTree('structrapidjson_1_1_u_t_f16.html','');
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
-<tr class="memitem:a1b25407397e76551362ad06fb0f755dd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1b25407397e76551362ad06fb0f755dd"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
+<tr class="memitem:a439e1dc4701cc7ae34d257ce76f5dc37"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a439e1dc4701cc7ae34d257ce76f5dc37"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
}</td></tr>
-<tr class="separator:a1b25407397e76551362ad06fb0f755dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:a439e1dc4701cc7ae34d257ce76f5dc37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb67f53501b796b55996352a6080da54"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb67f53501b796b55996352a6080da54"></a>
typedef CharType&#160;</td><td class="memItemRight" valign="bottom"><b>Ch</b></td></tr>
<tr class="separator:acb67f53501b796b55996352a6080da54"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/zh-cn/structrapidjson_1_1_u_t_f16.js b/zh-cn/structrapidjson_1_1_u_t_f16.js
index d87e03fd..c78ae935 100644
--- a/zh-cn/structrapidjson_1_1_u_t_f16.js
+++ b/zh-cn/structrapidjson_1_1_u_t_f16.js
@@ -1,6 +1,6 @@
var structrapidjson_1_1_u_t_f16 =
[
[ "Ch", "structrapidjson_1_1_u_t_f16.html#acb67f53501b796b55996352a6080da54", null ],
- [ "supportUnicode", "structrapidjson_1_1_u_t_f16.html#a1b25407397e76551362ad06fb0f755dda5a09bf086fb94e4d6fb106da7c3f01ea", null ],
+ [ "supportUnicode", "structrapidjson_1_1_u_t_f16.html#a439e1dc4701cc7ae34d257ce76f5dc37a5a09bf086fb94e4d6fb106da7c3f01ea", null ],
[ "RAPIDJSON_STATIC_ASSERT", "structrapidjson_1_1_u_t_f16.html#a97a1141d35742ceeedc0da87538b8790", null ]
]; \ No newline at end of file
diff --git a/zh-cn/structrapidjson_1_1_u_t_f16_b_e.html b/zh-cn/structrapidjson_1_1_u_t_f16_b_e.html
index 772627cc..0f3f43b7 100644
--- a/zh-cn/structrapidjson_1_1_u_t_f16_b_e.html
+++ b/zh-cn/structrapidjson_1_1_u_t_f16_b_e.html
@@ -145,9 +145,9 @@ template&lt;typename InputStream , typename OutputStream &gt; </td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
额外继承的成员函数</h2></td></tr>
<tr class="inherit_header pub_types_structrapidjson_1_1_u_t_f16"><td colspan="2" onclick="javascript:toggleInherit('pub_types_structrapidjson_1_1_u_t_f16')"><img src="closed.png" alt="-"/>&#160;Public 类型 继承自 <a class="el" href="structrapidjson_1_1_u_t_f16.html">rapidjson::UTF16&lt; CharType &gt;</a></td></tr>
-<tr class="memitem:a1b25407397e76551362ad06fb0f755dd inherit pub_types_structrapidjson_1_1_u_t_f16"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1b25407397e76551362ad06fb0f755dd"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
+<tr class="memitem:a439e1dc4701cc7ae34d257ce76f5dc37 inherit pub_types_structrapidjson_1_1_u_t_f16"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a439e1dc4701cc7ae34d257ce76f5dc37"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
}</td></tr>
-<tr class="separator:a1b25407397e76551362ad06fb0f755dd inherit pub_types_structrapidjson_1_1_u_t_f16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:a439e1dc4701cc7ae34d257ce76f5dc37 inherit pub_types_structrapidjson_1_1_u_t_f16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb67f53501b796b55996352a6080da54 inherit pub_types_structrapidjson_1_1_u_t_f16"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb67f53501b796b55996352a6080da54"></a>
typedef CharType&#160;</td><td class="memItemRight" valign="bottom"><b>Ch</b></td></tr>
<tr class="separator:acb67f53501b796b55996352a6080da54 inherit pub_types_structrapidjson_1_1_u_t_f16"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/zh-cn/structrapidjson_1_1_u_t_f16_l_e.html b/zh-cn/structrapidjson_1_1_u_t_f16_l_e.html
index 8365ac55..f3802877 100644
--- a/zh-cn/structrapidjson_1_1_u_t_f16_l_e.html
+++ b/zh-cn/structrapidjson_1_1_u_t_f16_l_e.html
@@ -145,9 +145,9 @@ template&lt;typename InputStream , typename OutputStream &gt; </td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
额外继承的成员函数</h2></td></tr>
<tr class="inherit_header pub_types_structrapidjson_1_1_u_t_f16"><td colspan="2" onclick="javascript:toggleInherit('pub_types_structrapidjson_1_1_u_t_f16')"><img src="closed.png" alt="-"/>&#160;Public 类型 继承自 <a class="el" href="structrapidjson_1_1_u_t_f16.html">rapidjson::UTF16&lt; CharType &gt;</a></td></tr>
-<tr class="memitem:a1b25407397e76551362ad06fb0f755dd inherit pub_types_structrapidjson_1_1_u_t_f16"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1b25407397e76551362ad06fb0f755dd"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
+<tr class="memitem:a439e1dc4701cc7ae34d257ce76f5dc37 inherit pub_types_structrapidjson_1_1_u_t_f16"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a439e1dc4701cc7ae34d257ce76f5dc37"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
}</td></tr>
-<tr class="separator:a1b25407397e76551362ad06fb0f755dd inherit pub_types_structrapidjson_1_1_u_t_f16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:a439e1dc4701cc7ae34d257ce76f5dc37 inherit pub_types_structrapidjson_1_1_u_t_f16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb67f53501b796b55996352a6080da54 inherit pub_types_structrapidjson_1_1_u_t_f16"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb67f53501b796b55996352a6080da54"></a>
typedef CharType&#160;</td><td class="memItemRight" valign="bottom"><b>Ch</b></td></tr>
<tr class="separator:acb67f53501b796b55996352a6080da54 inherit pub_types_structrapidjson_1_1_u_t_f16"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/zh-cn/structrapidjson_1_1_u_t_f32.html b/zh-cn/structrapidjson_1_1_u_t_f32.html
index 72acee11..ebb0500d 100644
--- a/zh-cn/structrapidjson_1_1_u_t_f32.html
+++ b/zh-cn/structrapidjson_1_1_u_t_f32.html
@@ -111,9 +111,9 @@ $(document).ready(function(){initNavTree('structrapidjson_1_1_u_t_f32.html','');
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
-<tr class="memitem:af76c14241fb9ce42b4ff0b10d5c6300d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af76c14241fb9ce42b4ff0b10d5c6300d"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
+<tr class="memitem:a65443b00cba1bb95baf55025108d6a54"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a65443b00cba1bb95baf55025108d6a54"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
}</td></tr>
-<tr class="separator:af76c14241fb9ce42b4ff0b10d5c6300d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:a65443b00cba1bb95baf55025108d6a54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acea97ff3d1b722b88c5faa72cfd4385e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acea97ff3d1b722b88c5faa72cfd4385e"></a>
typedef CharType&#160;</td><td class="memItemRight" valign="bottom"><b>Ch</b></td></tr>
<tr class="separator:acea97ff3d1b722b88c5faa72cfd4385e"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/zh-cn/structrapidjson_1_1_u_t_f32.js b/zh-cn/structrapidjson_1_1_u_t_f32.js
index 13caffa0..d858a998 100644
--- a/zh-cn/structrapidjson_1_1_u_t_f32.js
+++ b/zh-cn/structrapidjson_1_1_u_t_f32.js
@@ -1,6 +1,6 @@
var structrapidjson_1_1_u_t_f32 =
[
[ "Ch", "structrapidjson_1_1_u_t_f32.html#acea97ff3d1b722b88c5faa72cfd4385e", null ],
- [ "supportUnicode", "structrapidjson_1_1_u_t_f32.html#af76c14241fb9ce42b4ff0b10d5c6300da4b93019e2b1729a70b35ba10b581ab9e", null ],
+ [ "supportUnicode", "structrapidjson_1_1_u_t_f32.html#a65443b00cba1bb95baf55025108d6a54a4b93019e2b1729a70b35ba10b581ab9e", null ],
[ "RAPIDJSON_STATIC_ASSERT", "structrapidjson_1_1_u_t_f32.html#ac297f89fdab70c22b19f7db769affe05", null ]
]; \ No newline at end of file
diff --git a/zh-cn/structrapidjson_1_1_u_t_f32_b_e.html b/zh-cn/structrapidjson_1_1_u_t_f32_b_e.html
index dee234cf..1851fa3b 100644
--- a/zh-cn/structrapidjson_1_1_u_t_f32_b_e.html
+++ b/zh-cn/structrapidjson_1_1_u_t_f32_b_e.html
@@ -145,9 +145,9 @@ template&lt;typename InputStream , typename OutputStream &gt; </td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
额外继承的成员函数</h2></td></tr>
<tr class="inherit_header pub_types_structrapidjson_1_1_u_t_f32"><td colspan="2" onclick="javascript:toggleInherit('pub_types_structrapidjson_1_1_u_t_f32')"><img src="closed.png" alt="-"/>&#160;Public 类型 继承自 <a class="el" href="structrapidjson_1_1_u_t_f32.html">rapidjson::UTF32&lt; CharType &gt;</a></td></tr>
-<tr class="memitem:af76c14241fb9ce42b4ff0b10d5c6300d inherit pub_types_structrapidjson_1_1_u_t_f32"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af76c14241fb9ce42b4ff0b10d5c6300d"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
+<tr class="memitem:a65443b00cba1bb95baf55025108d6a54 inherit pub_types_structrapidjson_1_1_u_t_f32"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a65443b00cba1bb95baf55025108d6a54"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
}</td></tr>
-<tr class="separator:af76c14241fb9ce42b4ff0b10d5c6300d inherit pub_types_structrapidjson_1_1_u_t_f32"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:a65443b00cba1bb95baf55025108d6a54 inherit pub_types_structrapidjson_1_1_u_t_f32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acea97ff3d1b722b88c5faa72cfd4385e inherit pub_types_structrapidjson_1_1_u_t_f32"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acea97ff3d1b722b88c5faa72cfd4385e"></a>
typedef CharType&#160;</td><td class="memItemRight" valign="bottom"><b>Ch</b></td></tr>
<tr class="separator:acea97ff3d1b722b88c5faa72cfd4385e inherit pub_types_structrapidjson_1_1_u_t_f32"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/zh-cn/structrapidjson_1_1_u_t_f32_l_e.html b/zh-cn/structrapidjson_1_1_u_t_f32_l_e.html
index 2c3290fe..38536041 100644
--- a/zh-cn/structrapidjson_1_1_u_t_f32_l_e.html
+++ b/zh-cn/structrapidjson_1_1_u_t_f32_l_e.html
@@ -145,9 +145,9 @@ template&lt;typename InputStream , typename OutputStream &gt; </td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
额外继承的成员函数</h2></td></tr>
<tr class="inherit_header pub_types_structrapidjson_1_1_u_t_f32"><td colspan="2" onclick="javascript:toggleInherit('pub_types_structrapidjson_1_1_u_t_f32')"><img src="closed.png" alt="-"/>&#160;Public 类型 继承自 <a class="el" href="structrapidjson_1_1_u_t_f32.html">rapidjson::UTF32&lt; CharType &gt;</a></td></tr>
-<tr class="memitem:af76c14241fb9ce42b4ff0b10d5c6300d inherit pub_types_structrapidjson_1_1_u_t_f32"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af76c14241fb9ce42b4ff0b10d5c6300d"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
+<tr class="memitem:a65443b00cba1bb95baf55025108d6a54 inherit pub_types_structrapidjson_1_1_u_t_f32"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a65443b00cba1bb95baf55025108d6a54"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
}</td></tr>
-<tr class="separator:af76c14241fb9ce42b4ff0b10d5c6300d inherit pub_types_structrapidjson_1_1_u_t_f32"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:a65443b00cba1bb95baf55025108d6a54 inherit pub_types_structrapidjson_1_1_u_t_f32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acea97ff3d1b722b88c5faa72cfd4385e inherit pub_types_structrapidjson_1_1_u_t_f32"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acea97ff3d1b722b88c5faa72cfd4385e"></a>
typedef CharType&#160;</td><td class="memItemRight" valign="bottom"><b>Ch</b></td></tr>
<tr class="separator:acea97ff3d1b722b88c5faa72cfd4385e inherit pub_types_structrapidjson_1_1_u_t_f32"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/zh-cn/structrapidjson_1_1_u_t_f8.html b/zh-cn/structrapidjson_1_1_u_t_f8.html
index b5ccd4ba..6330a48b 100644
--- a/zh-cn/structrapidjson_1_1_u_t_f8.html
+++ b/zh-cn/structrapidjson_1_1_u_t_f8.html
@@ -100,9 +100,9 @@ $(document).ready(function(){initNavTree('structrapidjson_1_1_u_t_f8.html','');}
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
-<tr class="memitem:a2855bd8436afb593c19d8746e189c895"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2855bd8436afb593c19d8746e189c895"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
+<tr class="memitem:a162ec39d1feea956ac7c82ee21bbe037"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a162ec39d1feea956ac7c82ee21bbe037"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>supportUnicode</b> = 1
}</td></tr>
-<tr class="separator:a2855bd8436afb593c19d8746e189c895"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:a162ec39d1feea956ac7c82ee21bbe037"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f47e775d8306a647a5c9eceac4b52fc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9f47e775d8306a647a5c9eceac4b52fc"></a>
typedef CharType&#160;</td><td class="memItemRight" valign="bottom"><b>Ch</b></td></tr>
<tr class="separator:a9f47e775d8306a647a5c9eceac4b52fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/zh-cn/structrapidjson_1_1_u_t_f8.js b/zh-cn/structrapidjson_1_1_u_t_f8.js
index 490cbda4..793228f0 100644
--- a/zh-cn/structrapidjson_1_1_u_t_f8.js
+++ b/zh-cn/structrapidjson_1_1_u_t_f8.js
@@ -1,5 +1,5 @@
var structrapidjson_1_1_u_t_f8 =
[
[ "Ch", "structrapidjson_1_1_u_t_f8.html#a9f47e775d8306a647a5c9eceac4b52fc", null ],
- [ "supportUnicode", "structrapidjson_1_1_u_t_f8.html#a2855bd8436afb593c19d8746e189c895a821cba43661b67d78115cc9366e91b32", null ]
+ [ "supportUnicode", "structrapidjson_1_1_u_t_f8.html#a162ec39d1feea956ac7c82ee21bbe037a821cba43661b67d78115cc9366e91b32", null ]
]; \ No newline at end of file
diff --git a/zh-cn/structrapidjson_1_1_writer_1_1_level.html b/zh-cn/structrapidjson_1_1_writer_1_1_level.html
index 01fdd12d..d7843d90 100644
--- a/zh-cn/structrapidjson_1_1_writer_1_1_level.html
+++ b/zh-cn/structrapidjson_1_1_writer_1_1_level.html
@@ -116,7 +116,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stru
<tr class="separator:a5920547a092cb88db486d75064ffe50e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
-<div class="textblock"><h3>template&lt;typename OutputStream, typename SourceEncoding = UTF8&lt;&gt;, typename TargetEncoding = UTF8&lt;&gt;, typename StackAllocator = CrtAllocator&gt;<br />
+<div class="textblock"><h3>template&lt;typename OutputStream, typename SourceEncoding, typename TargetEncoding, typename StackAllocator&gt;<br />
struct rapidjson::Writer&lt; OutputStream, SourceEncoding, TargetEncoding, StackAllocator &gt;::Level</h3>
<p>Information for each nested level. </p>
diff --git a/zh-cn/writer_8h_source.html b/zh-cn/writer_8h_source.html
index 74d24677..a8b3ff7d 100644
--- a/zh-cn/writer_8h_source.html
+++ b/zh-cn/writer_8h_source.html
@@ -105,7 +105,7 @@ $(document).ready(function(){initNavTree('writer_8h_source.html','');});
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef RAPIDJSON_WRITER_H_</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define RAPIDJSON_WRITER_H_</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rapidjson_8h.html">rapidjson.h</a>&quot;</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;stream.h&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;internal/stack.h&quot;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;internal/strfunc.h&quot;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;internal/dtoa.h&quot;</span></div>
@@ -142,7 +142,7 @@ $(document).ready(function(){initNavTree('writer_8h_source.html','');});
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> \note implements Handler concept</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> OutputStream, <span class="keyword">typename</span> SourceEncoding = UTF8&lt;&gt;, <span class="keyword">typename</span> TargetEncoding = UTF8&lt;&gt;, <span class="keyword">typename</span> StackAllocator = CrtAllocator&gt;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classrapidjson_1_1_writer.html"> 55</a></span>&#160;<span class="keyword">class </span><a class="code" href="classrapidjson_1_1_writer.html">Writer</a> {</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">class </span>Writer {</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> SourceEncoding::Ch Ch;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"></span></div>
@@ -289,8 +289,8 @@ $(document).ready(function(){initNavTree('writer_8h_source.html','');});
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(*os_, <span class="charliteral">&#39;t&#39;</span>); <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(*os_, <span class="charliteral">&#39;r&#39;</span>); <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(*os_, <span class="charliteral">&#39;u&#39;</span>); <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(*os_, <span class="charliteral">&#39;e&#39;</span>);</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">PutReserve</a>(*os_, 5);</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(*os_, <span class="charliteral">&#39;f&#39;</span>); <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(*os_, <span class="charliteral">&#39;a&#39;</span>); <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(*os_, <span class="charliteral">&#39;l&#39;</span>); <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(*os_, <span class="charliteral">&#39;s&#39;</span>); <a class="code" href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">PutUnsafe</a>(*os_, <span class="charliteral">&#39;e&#39;</span>);</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; PutReserve(*os_, 5);</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; PutUnsafe(*os_, <span class="charliteral">&#39;f&#39;</span>); PutUnsafe(*os_, <span class="charliteral">&#39;a&#39;</span>); PutUnsafe(*os_, <span class="charliteral">&#39;l&#39;</span>); PutUnsafe(*os_, <span class="charliteral">&#39;s&#39;</span>); PutUnsafe(*os_, <span class="charliteral">&#39;e&#39;</span>);</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; }</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div>
@@ -501,30 +501,29 @@ $(document).ready(function(){initNavTree('writer_8h_source.html','');});
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="preprocessor">#endif // RAPIDJSON_RAPIDJSON_H_</span></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e">rapidjson::kTrueType</a></div><div class="ttdoc">true </div><div class="ttdef"><b>Definition:</b> rapidjson.h:719</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a80d9f25b083abce45edbfdd3ba006c8e">rapidjson::kTrueType</a></div><div class="ttdoc">true </div><div class="ttdef"><b>Definition:</b> rapidjson.h:560</div></div>
<div class="ttc" id="classrapidjson_1_1_writer_html_ad5f042d9c1a8ce5be2d52e18255b4390"><div class="ttname"><a href="classrapidjson_1_1_writer.html#ad5f042d9c1a8ce5be2d52e18255b4390">rapidjson::Writer::Double</a></div><div class="ttdeci">bool Double(double d)</div><div class="ttdoc">Writes the given double value to the stream. </div><div class="ttdef"><b>Definition:</b> writer.h:121</div></div>
-<div class="ttc" id="namespacerapidjson_html_a820f77efccfbb749bd15fe4822d2c740"><div class="ttname"><a href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">rapidjson::PutReserve</a></div><div class="ttdeci">void PutReserve(Stream &amp;stream, size_t count)</div><div class="ttdoc">Reserve n characters for writing to a stream. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:619</div></div>
+<div class="ttc" id="namespacerapidjson_html_a820f77efccfbb749bd15fe4822d2c740"><div class="ttname"><a href="namespacerapidjson.html#a820f77efccfbb749bd15fe4822d2c740">rapidjson::PutReserve</a></div><div class="ttdeci">void PutReserve(Stream &amp;stream, size_t count)</div><div class="ttdoc">Reserve n characters for writing to a stream. </div><div class="ttdef"><b>Definition:</b> stream.h:84</div></div>
<div class="ttc" id="namespacerapidjson_html_a44eb33eaa523e36d466b1ced64b85c84"><div class="ttname"><a href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">rapidjson::SizeType</a></div><div class="ttdeci">unsigned SizeType</div><div class="ttdoc">Size type (for string lengths, array sizes, etc.) </div><div class="ttdef"><b>Definition:</b> rapidjson.h:349</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607">rapidjson::kFalseType</a></div><div class="ttdoc">false </div><div class="ttdef"><b>Definition:</b> rapidjson.h:718</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a9f2e7047832dce1029551b5de0f05607">rapidjson::kFalseType</a></div><div class="ttdoc">false </div><div class="ttdef"><b>Definition:</b> rapidjson.h:559</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_ga5dc14176a9e71ace282404b0bcda57a1"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga5dc14176a9e71ace282404b0bcda57a1">RAPIDJSON_LIKELY</a></div><div class="ttdeci">#define RAPIDJSON_LIKELY(x)</div><div class="ttdoc">Compiler branching hint for expression with high probability to be true. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:424</div></div>
<div class="ttc" id="structrapidjson_1_1_writer_1_1_level_html_a5920547a092cb88db486d75064ffe50e"><div class="ttname"><a href="structrapidjson_1_1_writer_1_1_level.html#a5920547a092cb88db486d75064ffe50e">rapidjson::Writer::Level::inArray</a></div><div class="ttdeci">bool inArray</div><div class="ttdoc">true if in array, otherwise in object </div><div class="ttdef"><b>Definition:</b> writer.h:186</div></div>
<div class="ttc" id="structrapidjson_1_1_writer_1_1_level_html"><div class="ttname"><a href="structrapidjson_1_1_writer_1_1_level.html">rapidjson::Writer::Level</a></div><div class="ttdoc">Information for each nested level. </div><div class="ttdef"><b>Definition:</b> writer.h:183</div></div>
<div class="ttc" id="classrapidjson_1_1_writer_html_a2efd8a54a3cb86f8adedfd6bb692d0d9"><div class="ttname"><a href="classrapidjson_1_1_writer.html#a2efd8a54a3cb86f8adedfd6bb692d0d9">rapidjson::Writer::String</a></div><div class="ttdeci">bool String(const Ch *str)</div><div class="ttdoc">Simpler but slower overload. </div><div class="ttdef"><b>Definition:</b> writer.h:176</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:716</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">rapidjson::kObjectType</a></div><div class="ttdoc">object </div><div class="ttdef"><b>Definition:</b> rapidjson.h:720</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">rapidjson::Type</a></div><div class="ttdeci">Type</div><div class="ttdoc">Type of JSON value. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:557</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">rapidjson::kObjectType</a></div><div class="ttdoc">object </div><div class="ttdef"><b>Definition:</b> rapidjson.h:561</div></div>
<div class="ttc" id="classrapidjson_1_1_writer_html_ac592904fad01d9d0f29bb0585fb02aa7"><div class="ttname"><a href="classrapidjson_1_1_writer.html#ac592904fad01d9d0f29bb0585fb02aa7">rapidjson::Writer::Writer</a></div><div class="ttdeci">Writer(OutputStream &amp;os, StackAllocator *stackAllocator=0, size_t levelDepth=kDefaultLevelDepth)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> writer.h:65</div></div>
<div class="ttc" id="structrapidjson_1_1_writer_1_1_level_html_a8e478a154f4230449e441ce986c49970"><div class="ttname"><a href="structrapidjson_1_1_writer_1_1_level.html#a8e478a154f4230449e441ce986c49970">rapidjson::Writer::Level::valueCount</a></div><div class="ttdeci">size_t valueCount</div><div class="ttdoc">number of values in this level </div><div class="ttdef"><b>Definition:</b> writer.h:185</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_ga6a2b1695c13e77ae425e3cbac980ccb5"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga6a2b1695c13e77ae425e3cbac980ccb5">RAPIDJSON_UNLIKELY</a></div><div class="ttdeci">#define RAPIDJSON_UNLIKELY(x)</div><div class="ttdoc">Compiler branching hint for expression with low probability to be true. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:437</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">rapidjson::kArrayType</a></div><div class="ttdoc">array </div><div class="ttdef"><b>Definition:</b> rapidjson.h:721</div></div>
-<div class="ttc" id="classrapidjson_1_1_writer_html"><div class="ttname"><a href="classrapidjson_1_1_writer.html">rapidjson::Writer</a></div><div class="ttdoc">JSON writer. </div><div class="ttdef"><b>Definition:</b> writer.h:55</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a058c622e1e7d59419ae58b895cbce468">rapidjson::kArrayType</a></div><div class="ttdoc">array </div><div class="ttdef"><b>Definition:</b> rapidjson.h:562</div></div>
+<div class="ttc" id="classrapidjson_1_1_writer_html"><div class="ttname"><a href="classrapidjson_1_1_writer.html">rapidjson::Writer</a></div><div class="ttdoc">JSON writer. </div><div class="ttdef"><b>Definition:</b> fwd.h:95</div></div>
<div class="ttc" id="classrapidjson_1_1_writer_html_ad70218827efbda426bbc8620a9339c3e"><div class="ttname"><a href="classrapidjson_1_1_writer.html#ad70218827efbda426bbc8620a9339c3e">rapidjson::Writer::IsComplete</a></div><div class="ttdeci">bool IsComplete() const </div><div class="ttdoc">Checks whether the output is a complete JSON. </div><div class="ttdef"><b>Definition:</b> writer.h:100</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff">rapidjson::kNullType</a></div><div class="ttdoc">null </div><div class="ttdef"><b>Definition:</b> rapidjson.h:717</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7">rapidjson::kStringType</a></div><div class="ttdoc">string </div><div class="ttdef"><b>Definition:</b> rapidjson.h:722</div></div>
-<div class="ttc" id="rapidjson_8h_html"><div class="ttname"><a href="rapidjson_8h.html">rapidjson.h</a></div><div class="ttdoc">common definitions and configuration </div></div>
-<div class="ttc" id="namespacerapidjson_html_a0a774dcffe8ae07686f459ae017d2f20"><div class="ttname"><a href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">rapidjson::PutUnsafe</a></div><div class="ttdeci">void PutUnsafe(Stream &amp;stream, typename Stream::Ch c)</div><div class="ttdoc">Write character to a stream, presuming buffer is reserved. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:626</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4a952871e4326b527154fc8aac1ac1f6ff">rapidjson::kNullType</a></div><div class="ttdoc">null </div><div class="ttdef"><b>Definition:</b> rapidjson.h:558</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4ad6379da3dc04b83a591992bfb9fabba7">rapidjson::kStringType</a></div><div class="ttdoc">string </div><div class="ttdef"><b>Definition:</b> rapidjson.h:563</div></div>
+<div class="ttc" id="namespacerapidjson_html_a0a774dcffe8ae07686f459ae017d2f20"><div class="ttname"><a href="namespacerapidjson.html#a0a774dcffe8ae07686f459ae017d2f20">rapidjson::PutUnsafe</a></div><div class="ttdeci">void PutUnsafe(Stream &amp;stream, typename Stream::Ch c)</div><div class="ttdoc">Write character to a stream, presuming buffer is reserved. </div><div class="ttdef"><b>Definition:</b> stream.h:91</div></div>
<div class="ttc" id="classrapidjson_1_1_writer_html_af4411235dd75ae34274e7eb74d435147"><div class="ttname"><a href="classrapidjson_1_1_writer.html#af4411235dd75ae34274e7eb74d435147">rapidjson::Writer::Reset</a></div><div class="ttdeci">void Reset(OutputStream &amp;os)</div><div class="ttdoc">Reset the writer with a new stream. </div><div class="ttdef"><b>Definition:</b> writer.h:90</div></div>
<div class="ttc" id="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g_html_gabeba18d612187bad2ac62aed9276d47c"><div class="ttname"><a href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a></div><div class="ttdeci">#define RAPIDJSON_ASSERT(x)</div><div class="ttdoc">Assertion. </div><div class="ttdef"><b>Definition:</b> rapidjson.h:371</div></div>
-<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a">rapidjson::kNumberType</a></div><div class="ttdoc">number </div><div class="ttdef"><b>Definition:</b> rapidjson.h:723</div></div>
+<div class="ttc" id="namespacerapidjson_html_ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a"><div class="ttname"><a href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4abe572cb44ce198e467ccf9d63d50d82a">rapidjson::kNumberType</a></div><div class="ttdoc">number </div><div class="ttdef"><b>Definition:</b> rapidjson.h:564</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.7-->