<!-- 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.16"/>
<title>RapidJSON: 成员列表</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&amp;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&amp;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/Tencent/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.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;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&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classrapidjson_1_1_generic_pointer.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="headertitle">
<div class="title">rapidjson::GenericPointer&lt; ValueType, Allocator &gt; 成员列表</div>  </div>
</div><!--header-->
<div class="contents">

<p>成员的完整列表，这些成员属于 <a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a>,包括所有继承而来的类成员</p>
<table class="directory">
  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>allocator</b> (定义于 <a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a>)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a303e16e7d6c391a2afe8669744f79897">allocator_</a></td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer&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_pointer.html#a7cb5eda2af1722e52efa591c4103ebec">Append</a>(const Token &amp;token, Allocator *allocator=0) const</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
  <tr><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a30f4eac82e9fded60dead3f7d1cb3941">Append</a>(const Ch *name, SizeType length, Allocator *allocator=0) const</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a850f78846c5548565f8395be5f3427b7">Ch</a> typedef</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a399790c5fe8076d91a58c621c0c2a79e">EncodingType</a> typedef</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer&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_pointer.html#aa077ce171ea25cf501c12f2d5df7f248">GenericPointer</a>(Allocator *allocator=0)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
  <tr><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a8f831aae14afc493a82b5fb6aa9c3c43">GenericPointer</a>(const Ch *source, Allocator *allocator=0)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html#aeefcd60e5ad37d80ec43f5315ae84809">GenericPointer</a>(const std::basic_string&lt; Ch &gt; &amp;source, Allocator *allocator=0)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
  <tr><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a00ad17ea227d2556404df7cc64c6aeb5">GenericPointer</a>(const Ch *source, size_t length, Allocator *allocator=0)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a6df9f6a01d1b5945811055e1cf8aead6">GenericPointer</a>(const Token *tokens, size_t tokenCount)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
  <tr><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html#ae071847ed3e7389f5b256d26fcc8fd62">GenericPointer</a>(const GenericPointer &amp;rhs)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html#afedfcaac36fa589a46667825d3d0b763">GenericPointer</a>(const GenericPointer &amp;rhs, Allocator *allocator)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
  <tr><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a38f23dc869001b53149804e563f6a465">nameBuffer_</a></td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer&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_pointer.html#a23194bb6ce6c07c78981344fe80ac3a6">operator=</a>(const GenericPointer &amp;rhs)</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
  <tr><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a8798d7fdb02cd5b95bf032760aed8445">ownAllocator_</a></td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer&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_pointer.html#a20d76ef128abbdd0acd87d2f1fb0ae34">parseErrorCode_</a></td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a28e0ba01bc383d2fe7d54a450e35cd7a">parseErrorOffset_</a></td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer&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_pointer.html#aa881255d7b268d819d0f2cc27a4fff81">RAPIDJSON_DISABLEIF_RETURN</a>((internal::NotExpr&lt; internal::IsSame&lt; typename internal::RemoveConst&lt; T &gt;::Type, Ch &gt; &gt;),(GenericPointer)) Append(T *name</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a249c61b5d4bed20c3f8972c57f46a937">swap</a>(GenericPointer &amp;a, GenericPointer &amp;b) RAPIDJSON_NOEXCEPT</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
  <tr class="even"><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a91762c063f390c1463eb772dfd1b822b">Swap</a>(GenericPointer &amp;other) RAPIDJSON_NOEXCEPT</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
  <tr><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html#acb657759c16fa63da15186db8c29122b">tokenCount_</a></td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer&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_pointer.html#ad76284430e5e54ed22a4c93dc59e00c7">tokens_</a></td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer&lt; ValueType, Allocator &gt;</a></td><td class="entry"></td></tr>
  <tr><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a0e144b9956a5272c13ceff3b9306e748">~GenericPointer</a>()</td><td class="entry"><a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer&lt; ValueType, 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-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
  </ul>
</div>
</body>
</html>
