<!-- 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.14"/> <title>RapidJSON: RapidJSON configuration</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="navtreedata.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(initResizable); /* @license-end */</script> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/search.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(function() { init_search(); }); /* @license-end */ </script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> <link href="doxygenextra.css" rel="stylesheet" type="text/css"/> </head> <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.14 --> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ var searchBox = new SearchBox("searchBox", "search",false,'搜索'); /* @license-end */ </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"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(function(){initNavTree('group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html','');}); /* @license-end */ </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)"> </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="summary"> <a href="#define-members">宏定义</a> </div> <div class="headertitle"> <div class="title">RapidJSON configuration</div> </div> </div><!--header--> <div class="contents"> <p>Configuration macros for library features <a href="#details">更多...</a></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> 宏定义</h2></td></tr> <tr class="memitem:gaf1ff1685be6cbebb5d4b2ab997776f45"><td class="memItemLeft" align="right" valign="top"><a id="gaf1ff1685be6cbebb5d4b2ab997776f45"></a> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaf1ff1685be6cbebb5d4b2ab997776f45">RAPIDJSON_MAJOR_VERSION</a>   1</td></tr> <tr class="memdesc:gaf1ff1685be6cbebb5d4b2ab997776f45"><td class="mdescLeft"> </td><td class="mdescRight">Major version of RapidJSON in integer. <br /></td></tr> <tr class="separator:gaf1ff1685be6cbebb5d4b2ab997776f45"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaf9125105c593a636a79f1c2d96835376"><td class="memItemLeft" align="right" valign="top"><a id="gaf9125105c593a636a79f1c2d96835376"></a> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaf9125105c593a636a79f1c2d96835376">RAPIDJSON_MINOR_VERSION</a>   1</td></tr> <tr class="memdesc:gaf9125105c593a636a79f1c2d96835376"><td class="mdescLeft"> </td><td class="mdescRight">Minor version of RapidJSON in integer. <br /></td></tr> <tr class="separator:gaf9125105c593a636a79f1c2d96835376"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaf967d31be43666ce7f53756d73bd1cdf"><td class="memItemLeft" align="right" valign="top"><a id="gaf967d31be43666ce7f53756d73bd1cdf"></a> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaf967d31be43666ce7f53756d73bd1cdf">RAPIDJSON_PATCH_VERSION</a>   0</td></tr> <tr class="memdesc:gaf967d31be43666ce7f53756d73bd1cdf"><td class="mdescLeft"> </td><td class="mdescRight">Patch version of RapidJSON in integer. <br /></td></tr> <tr class="separator:gaf967d31be43666ce7f53756d73bd1cdf"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gad283cfde97d9a32b7d8e8107b11f70a6"><td class="memItemLeft" align="right" valign="top"><a id="gad283cfde97d9a32b7d8e8107b11f70a6"></a> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gad283cfde97d9a32b7d8e8107b11f70a6">RAPIDJSON_VERSION_STRING</a>   RAPIDJSON_STRINGIFY(<a class="el" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaf967d31be43666ce7f53756d73bd1cdf">RAPIDJSON_MAJOR_VERSION.RAPIDJSON_MINOR_VERSION.RAPIDJSON_PATCH_VERSION</a>)</td></tr> <tr class="memdesc:gad283cfde97d9a32b7d8e8107b11f70a6"><td class="mdescLeft"> </td><td class="mdescRight">Version of RapidJSON in "<major>.<minor>.<patch>" string format. <br /></td></tr> <tr class="separator:gad283cfde97d9a32b7d8e8107b11f70a6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga743a79d3af927391fe3eb5c979136899"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga743a79d3af927391fe3eb5c979136899">RAPIDJSON_NAMESPACE</a>   rapidjson</td></tr> <tr class="memdesc:ga743a79d3af927391fe3eb5c979136899"><td class="mdescLeft"> </td><td class="mdescRight">provide custom rapidjson namespace <a href="#ga743a79d3af927391fe3eb5c979136899">更多...</a><br /></td></tr> <tr class="separator:ga743a79d3af927391fe3eb5c979136899"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga2f2eef0ee4477f3fe5874703a66e997f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga2f2eef0ee4477f3fe5874703a66e997f">RAPIDJSON_HAS_STDSTRING</a></td></tr> <tr class="memdesc:ga2f2eef0ee4477f3fe5874703a66e997f"><td class="mdescLeft"> </td><td class="mdescRight">Enable RapidJSON support for <code>std::string</code> <a href="#ga2f2eef0ee4477f3fe5874703a66e997f">更多...</a><br /></td></tr> <tr class="separator:ga2f2eef0ee4477f3fe5874703a66e997f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga7f4e50c35dae3b015390daa6d48ce23c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga7f4e50c35dae3b015390daa6d48ce23c">RAPIDJSON_NO_INT64DEFINE</a></td></tr> <tr class="memdesc:ga7f4e50c35dae3b015390daa6d48ce23c"><td class="mdescLeft"> </td><td class="mdescRight">Use external 64-bit integer types. <a href="#ga7f4e50c35dae3b015390daa6d48ce23c">更多...</a><br /></td></tr> <tr class="separator:ga7f4e50c35dae3b015390daa6d48ce23c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaba2445f582142cf918e74c2d22d1aa07"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gaba2445f582142cf918e74c2d22d1aa07">RAPIDJSON_ENDIAN</a></td></tr> <tr class="memdesc:gaba2445f582142cf918e74c2d22d1aa07"><td class="mdescLeft"> </td><td class="mdescRight">Endianness of the machine. <a href="#gaba2445f582142cf918e74c2d22d1aa07">更多...</a><br /></td></tr> <tr class="separator:gaba2445f582142cf918e74c2d22d1aa07"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga583915242504c7fdb36e826f02f76242"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga583915242504c7fdb36e826f02f76242">RAPIDJSON_ALIGN</a>(x)   (((x) + 3u) & ~3u)</td></tr> <tr class="memdesc:ga583915242504c7fdb36e826f02f76242"><td class="mdescLeft"> </td><td class="mdescRight">Data alignment of the machine. <a href="#ga583915242504c7fdb36e826f02f76242">更多...</a><br /></td></tr> <tr class="separator:ga583915242504c7fdb36e826f02f76242"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga93fb983f78208d12c822376e1ea6d185"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga93fb983f78208d12c822376e1ea6d185">RAPIDJSON_48BITPOINTER_OPTIMIZATION</a>   0</td></tr> <tr class="memdesc:ga93fb983f78208d12c822376e1ea6d185"><td class="mdescLeft"> </td><td class="mdescRight">Use only lower 48-bit address for some pointers. <a href="#ga93fb983f78208d12c822376e1ea6d185">更多...</a><br /></td></tr> <tr class="separator:ga93fb983f78208d12c822376e1ea6d185"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga0ccf72f3ebc4b3306ab669f95ca5c64b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga0ccf72f3ebc4b3306ab669f95ca5c64b">RAPIDJSON_SIMD</a></td></tr> <tr class="memdesc:ga0ccf72f3ebc4b3306ab669f95ca5c64b"><td class="mdescLeft"> </td><td class="mdescRight">Enable SSE2/SSE4.2 optimization. <a href="#ga0ccf72f3ebc4b3306ab669f95ca5c64b">更多...</a><br /></td></tr> <tr class="separator:ga0ccf72f3ebc4b3306ab669f95ca5c64b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga250603aa9e2a12429b25ba0c8108ad4f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga250603aa9e2a12429b25ba0c8108ad4f">RAPIDJSON_NO_SIZETYPEDEFINE</a></td></tr> <tr class="memdesc:ga250603aa9e2a12429b25ba0c8108ad4f"><td class="mdescLeft"> </td><td class="mdescRight">User-provided <code>SizeType</code> definition. <a href="#ga250603aa9e2a12429b25ba0c8108ad4f">更多...</a><br /></td></tr> <tr class="separator:ga250603aa9e2a12429b25ba0c8108ad4f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gabeba18d612187bad2ac62aed9276d47c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c">RAPIDJSON_ASSERT</a>(x)   assert(x)</td></tr> <tr class="memdesc:gabeba18d612187bad2ac62aed9276d47c"><td class="mdescLeft"> </td><td class="mdescRight">Assertion. <a href="#gabeba18d612187bad2ac62aed9276d47c">更多...</a><br /></td></tr> <tr class="separator:gabeba18d612187bad2ac62aed9276d47c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga5dc14176a9e71ace282404b0bcda57a1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga5dc14176a9e71ace282404b0bcda57a1">RAPIDJSON_LIKELY</a>(x)   (x)</td></tr> <tr class="memdesc:ga5dc14176a9e71ace282404b0bcda57a1"><td class="mdescLeft"> </td><td class="mdescRight">Compiler branching hint for expression with high probability to be true. <a href="#ga5dc14176a9e71ace282404b0bcda57a1">更多...</a><br /></td></tr> <tr class="separator:ga5dc14176a9e71ace282404b0bcda57a1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga6a2b1695c13e77ae425e3cbac980ccb5"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga6a2b1695c13e77ae425e3cbac980ccb5">RAPIDJSON_UNLIKELY</a>(x)   (x)</td></tr> <tr class="memdesc:ga6a2b1695c13e77ae425e3cbac980ccb5"><td class="mdescLeft"> </td><td class="mdescRight">Compiler branching hint for expression with low probability to be true. <a href="#ga6a2b1695c13e77ae425e3cbac980ccb5">更多...</a><br /></td></tr> <tr class="separator:ga6a2b1695c13e77ae425e3cbac980ccb5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga77005e892e6601599beaf421b0395c31"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga77005e892e6601599beaf421b0395c31">RAPIDJSON_PARSE_DEFAULT_FLAGS</a>   kParseNoFlags</td></tr> <tr class="memdesc:ga77005e892e6601599beaf421b0395c31"><td class="mdescLeft"> </td><td class="mdescRight">User-defined kParseDefaultFlags definition. <a href="#ga77005e892e6601599beaf421b0395c31">更多...</a><br /></td></tr> <tr class="separator:ga77005e892e6601599beaf421b0395c31"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga1975595e2f1dc20a2d4859f340ac88c6"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#ga1975595e2f1dc20a2d4859f340ac88c6">RAPIDJSON_WRITE_DEFAULT_FLAGS</a>   kWriteNoFlags</td></tr> <tr class="memdesc:ga1975595e2f1dc20a2d4859f340ac88c6"><td class="mdescLeft"> </td><td class="mdescRight">User-defined kWriteDefaultFlags definition. <a href="#ga1975595e2f1dc20a2d4859f340ac88c6">更多...</a><br /></td></tr> <tr class="separator:ga1975595e2f1dc20a2d4859f340ac88c6"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">详细描述</h2> <p>Configuration macros for library features </p> <p>Some RapidJSON features are configurable to adapt the library to a wide variety of platforms, environments and usage scenarios. Most of the features can be configured in terms of overriden or predefined preprocessor macros at compile-time.</p> <p>Some additional customization is available in the <a class="el" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html">RapidJSON error handling</a> APIs.</p> <dl class="section note"><dt>注解</dt><dd>These macros should be given on the compiler command-line (where applicable) to avoid inconsistent values when compiling different translation units of a single application. </dd></dl> <h2 class="groupheader">宏定义说明</h2> <a id="ga93fb983f78208d12c822376e1ea6d185"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga93fb983f78208d12c822376e1ea6d185">◆ </a></span>RAPIDJSON_48BITPOINTER_OPTIMIZATION</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define RAPIDJSON_48BITPOINTER_OPTIMIZATION   0</td> </tr> </table> </div><div class="memdoc"> <p>Use only lower 48-bit address for some pointers. </p> <p>This optimization uses the fact that current X86-64 architecture only implement lower 48-bit virtual address. The higher 16-bit can be used for storing other data. <code>GenericValue</code> uses this optimization to reduce its size form 24 bytes to 16 bytes in 64-bit architecture. </p> </div> </div> <a id="ga583915242504c7fdb36e826f02f76242"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga583915242504c7fdb36e826f02f76242">◆ </a></span>RAPIDJSON_ALIGN</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define RAPIDJSON_ALIGN</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">x</td><td>)</td> <td>   (((x) + 3u) & ~3u)</td> </tr> </table> </div><div class="memdoc"> <p>Data alignment of the machine. </p> <dl class="params"><dt>参数</dt><dd> <table class="params"> <tr><td class="paramname">x</td><td>pointer to align</td></tr> </table> </dd> </dl> <p>Some machines require strict data alignment. Currently the default uses 4 bytes alignment on 32-bit platforms and 8 bytes alignment for 64-bit platforms. User can customize by defining the RAPIDJSON_ALIGN function macro. </p> </div> </div> <a id="gabeba18d612187bad2ac62aed9276d47c"></a> <h2 class="memtitle"><span class="permalink"><a href="#gabeba18d612187bad2ac62aed9276d47c">◆ </a></span>RAPIDJSON_ASSERT</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define RAPIDJSON_ASSERT</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">x</td><td>)</td> <td>   assert(x)</td> </tr> </table> </div><div class="memdoc"> <p>Assertion. </p> <p>By default, rapidjson uses C <code>assert()</code> for internal assertions. User can override it by defining <a class="el" href="group___r_a_p_i_d_j_s_o_n___c_o_n_f_i_g.html#gabeba18d612187bad2ac62aed9276d47c" title="Assertion. ">RAPIDJSON_ASSERT(x)</a> macro.</p> <dl class="section note"><dt>注解</dt><dd>Parsing errors are handled and can be customized by the <a class="el" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html">RapidJSON error handling</a> APIs. </dd></dl> </div> </div> <a id="gaba2445f582142cf918e74c2d22d1aa07"></a> <h2 class="memtitle"><span class="permalink"><a href="#gaba2445f582142cf918e74c2d22d1aa07">◆ </a></span>RAPIDJSON_ENDIAN</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define RAPIDJSON_ENDIAN</td> </tr> </table> </div><div class="memdoc"> <p>Endianness of the machine. </p> <p>GCC 4.6 provided macro for detecting endianness of the target machine. But other compilers may not have this. User can define RAPIDJSON_ENDIAN to either <a class="el" href="rapidjson_8h.html#addcc0c3607c5790f35cc4c15885ff97c">RAPIDJSON_LITTLEENDIAN</a> or <a class="el" href="rapidjson_8h.html#ac7951ebf8a2624ab85d2dcd3ec7af974">RAPIDJSON_BIGENDIAN</a>.</p> <p>Default detection implemented with reference to </p><ul> <li><a href="https://gcc.gnu.org/onlinedocs/gcc-4.6.0/cpp/Common-Predefined-Macros.html">https://gcc.gnu.org/onlinedocs/gcc-4.6.0/cpp/Common-Predefined-Macros.html</a> </li> <li><a href="http://www.boost.org/doc/libs/1_42_0/boost/detail/endian.hpp">http://www.boost.org/doc/libs/1_42_0/boost/detail/endian.hpp</a> </li> </ul> </div> </div> <a id="ga2f2eef0ee4477f3fe5874703a66e997f"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga2f2eef0ee4477f3fe5874703a66e997f">◆ </a></span>RAPIDJSON_HAS_STDSTRING</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define RAPIDJSON_HAS_STDSTRING</td> </tr> </table> </div><div class="memdoc"> <p>Enable RapidJSON support for <code>std::string</code> </p> <p>By defining this preprocessor symbol to <code>1</code>, several convenience functions for using <a class="el" href="classrapidjson_1_1_generic_value.html">rapidjson::GenericValue</a> with <code>std::string</code> are enabled, especially for construction and comparison. </p> </div> </div> <a id="ga5dc14176a9e71ace282404b0bcda57a1"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga5dc14176a9e71ace282404b0bcda57a1">◆ </a></span>RAPIDJSON_LIKELY</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define RAPIDJSON_LIKELY</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">x</td><td>)</td> <td>   (x)</td> </tr> </table> </div><div class="memdoc"> <p>Compiler branching hint for expression with high probability to be true. </p> <dl class="params"><dt>参数</dt><dd> <table class="params"> <tr><td class="paramname">x</td><td>Boolean expression likely to be true. </td></tr> </table> </dd> </dl> </div> </div> <a id="ga743a79d3af927391fe3eb5c979136899"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga743a79d3af927391fe3eb5c979136899">◆ </a></span>RAPIDJSON_NAMESPACE</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define RAPIDJSON_NAMESPACE   rapidjson</td> </tr> </table> </div><div class="memdoc"> <p>provide custom rapidjson namespace </p> <p>In order to avoid symbol clashes and/or "One Definition Rule" errors between multiple inclusions of (different versions of) RapidJSON in a single binary, users can customize the name of the main RapidJSON namespace.</p> <p>In case of a single nesting level, defining <code>RAPIDJSON_NAMESPACE</code> to a custom name (e.g. <code>MyRapidJSON</code>) is sufficient. If multiple levels are needed, both RAPIDJSON_NAMESPACE_BEGIN and RAPIDJSON_NAMESPACE_END need to be defined as well:</p> <div class="fragment"><div class="line"><span class="comment">// in some .cpp file</span></div><div class="line"><span class="preprocessor">#define RAPIDJSON_NAMESPACE my::rapidjson</span></div><div class="line"><span class="preprocessor">#define RAPIDJSON_NAMESPACE_BEGIN namespace my { namespace rapidjson {</span></div><div class="line"><span class="preprocessor">#define RAPIDJSON_NAMESPACE_END } }</span></div><div class="line"><span class="preprocessor">#include "rapidjson/..."</span></div></div><!-- fragment --><dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacerapidjson.html" title="main RapidJSON namespace ">rapidjson</a> </dd></dl> </div> </div> <a id="ga7f4e50c35dae3b015390daa6d48ce23c"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga7f4e50c35dae3b015390daa6d48ce23c">◆ </a></span>RAPIDJSON_NO_INT64DEFINE</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define RAPIDJSON_NO_INT64DEFINE</td> </tr> </table> </div><div class="memdoc"> <p>Use external 64-bit integer types. </p> <p>RapidJSON requires the 64-bit integer types <code>int64_t</code> and <code>uint64_t</code> types to be available at global scope.</p> <p>If users have their own definition, define RAPIDJSON_NO_INT64DEFINE to prevent RapidJSON from defining its own types. </p> </div> </div> <a id="ga250603aa9e2a12429b25ba0c8108ad4f"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga250603aa9e2a12429b25ba0c8108ad4f">◆ </a></span>RAPIDJSON_NO_SIZETYPEDEFINE</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define RAPIDJSON_NO_SIZETYPEDEFINE</td> </tr> </table> </div><div class="memdoc"> <p>User-provided <code>SizeType</code> definition. </p> <p>In order to avoid using 32-bit size types for indexing strings and arrays, define this preprocessor symbol and provide the type <a class="el" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84" title="Size type (for string lengths, array sizes, etc.) ">rapidjson::SizeType</a> before including RapidJSON: </p><div class="fragment"><div class="line"><span class="preprocessor">#define RAPIDJSON_NO_SIZETYPEDEFINE</span></div><div class="line"><span class="keyword">namespace </span><a class="code" href="namespacerapidjson.html">rapidjson</a> { typedef ::std::size_t <a class="code" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a>; }</div><div class="line"><span class="preprocessor">#include "rapidjson/..."</span></div></div><!-- fragment --><dl class="section see"><dt>参见</dt><dd><a class="el" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84" title="Size type (for string lengths, array sizes, etc.) ">rapidjson::SizeType</a> </dd></dl> </div> </div> <a id="ga77005e892e6601599beaf421b0395c31"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga77005e892e6601599beaf421b0395c31">◆ </a></span>RAPIDJSON_PARSE_DEFAULT_FLAGS</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define RAPIDJSON_PARSE_DEFAULT_FLAGS   kParseNoFlags</td> </tr> </table> </div><div class="memdoc"> <p>User-defined kParseDefaultFlags definition. </p> <p>User can define this as any <code>ParseFlag</code> combinations. </p> </div> </div> <a id="ga0ccf72f3ebc4b3306ab669f95ca5c64b"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga0ccf72f3ebc4b3306ab669f95ca5c64b">◆ </a></span>RAPIDJSON_SIMD</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define RAPIDJSON_SIMD</td> </tr> </table> </div><div class="memdoc"> <p>Enable SSE2/SSE4.2 optimization. </p> <p>RapidJSON supports optimized implementations for some parsing operations based on the SSE2 or SSE4.2 SIMD extensions on modern Intel-compatible processors.</p> <p>To enable these optimizations, two different symbols can be defined; </p><div class="fragment"><div class="line"><span class="comment">// Enable SSE2 optimization.</span></div><div class="line"><span class="preprocessor">#define RAPIDJSON_SSE2</span></div><div class="line"></div><div class="line"><span class="comment">// Enable SSE4.2 optimization.</span></div><div class="line"><span class="preprocessor">#define RAPIDJSON_SSE42</span></div></div><!-- fragment --><p><code>RAPIDJSON_SSE42</code> takes precedence, if both are defined.</p> <p>If any of these symbols is defined, RapidJSON defines the macro <code>RAPIDJSON_SIMD</code> to indicate the availability of the optimized code. </p> </div> </div> <a id="ga6a2b1695c13e77ae425e3cbac980ccb5"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga6a2b1695c13e77ae425e3cbac980ccb5">◆ </a></span>RAPIDJSON_UNLIKELY</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define RAPIDJSON_UNLIKELY</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">x</td><td>)</td> <td>   (x)</td> </tr> </table> </div><div class="memdoc"> <p>Compiler branching hint for expression with low probability to be true. </p> <dl class="params"><dt>参数</dt><dd> <table class="params"> <tr><td class="paramname">x</td><td>Boolean expression unlikely to be true. </td></tr> </table> </dd> </dl> </div> </div> <a id="ga1975595e2f1dc20a2d4859f340ac88c6"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga1975595e2f1dc20a2d4859f340ac88c6">◆ </a></span>RAPIDJSON_WRITE_DEFAULT_FLAGS</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define RAPIDJSON_WRITE_DEFAULT_FLAGS   kWriteNoFlags</td> </tr> </table> </div><div class="memdoc"> <p>User-defined kWriteDefaultFlags definition. </p> <p>User can define this as any <code>WriteFlag</code> combinations. </p> </div> </div> </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> </ul> </div> </body> </html>