blob: d1206a8e722ebbad787749328144b37010b99891 [file] [log] [blame]
<!-- 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: rapidjson::GenericPointer&lt; ValueType, 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>
<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="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.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,'Search');
/* @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="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="classrapidjson_1_1_generic_pointer-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">rapidjson::GenericPointer&lt; ValueType, Allocator &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<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.
<a href="classrapidjson_1_1_generic_pointer.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="pointer_8h_source.html">pointer.h</a>&gt;</code></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">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_pointer_1_1_percent_encode_stream.html">PercentEncodeStream</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A helper stream to encode character (UTF-8 code unit) into percent-encoded sequence. <a href="classrapidjson_1_1_generic_pointer_1_1_percent_encode_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_generic_pointer_1_1_token.html">Token</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A token is the basic units of internal representation. <a href="structrapidjson_1_1_generic_pointer_1_1_token.html#details">More...</a><br /></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="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a399790c5fe8076d91a58c621c0c2a79e"><td class="memItemLeft" align="right" valign="top"><a id="a399790c5fe8076d91a58c621c0c2a79e"></a>
typedef ValueType::EncodingType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a399790c5fe8076d91a58c621c0c2a79e">EncodingType</a></td></tr>
<tr class="memdesc:a399790c5fe8076d91a58c621c0c2a79e"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_encoding.html" title="Concept for encoding of Unicode characters.">Encoding</a> type from Value. <br /></td></tr>
<tr class="separator:a399790c5fe8076d91a58c621c0c2a79e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a850f78846c5548565f8395be5f3427b7"><td class="memItemLeft" align="right" valign="top"><a id="a850f78846c5548565f8395be5f3427b7"></a>
typedef ValueType::Ch&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a850f78846c5548565f8395be5f3427b7">Ch</a></td></tr>
<tr class="memdesc:a850f78846c5548565f8395be5f3427b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Character type from Value. <br /></td></tr>
<tr class="separator:a850f78846c5548565f8395be5f3427b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Constructors and destructor.</h2></td></tr>
<tr class="memitem:aa077ce171ea25cf501c12f2d5df7f248"><td class="memItemLeft" align="right" valign="top"><a id="aa077ce171ea25cf501c12f2d5df7f248"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_pointer.html#aa077ce171ea25cf501c12f2d5df7f248">GenericPointer</a> (<a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> *allocator=0)</td></tr>
<tr class="memdesc:aa077ce171ea25cf501c12f2d5df7f248"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <br /></td></tr>
<tr class="separator:aa077ce171ea25cf501c12f2d5df7f248"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f831aae14afc493a82b5fb6aa9c3c43"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a8f831aae14afc493a82b5fb6aa9c3c43">GenericPointer</a> (const <a class="el" href="classrapidjson_1_1_generic_pointer.html#a850f78846c5548565f8395be5f3427b7">Ch</a> *source, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> *allocator=0)</td></tr>
<tr class="memdesc:a8f831aae14afc493a82b5fb6aa9c3c43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor that parses a string or URI fragment representation. <a href="classrapidjson_1_1_generic_pointer.html#a8f831aae14afc493a82b5fb6aa9c3c43">More...</a><br /></td></tr>
<tr class="separator:a8f831aae14afc493a82b5fb6aa9c3c43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeefcd60e5ad37d80ec43f5315ae84809"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_pointer.html#aeefcd60e5ad37d80ec43f5315ae84809">GenericPointer</a> (const std::basic_string&lt; <a class="el" href="classrapidjson_1_1_generic_pointer.html#a850f78846c5548565f8395be5f3427b7">Ch</a> &gt; &amp;source, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> *allocator=0)</td></tr>
<tr class="memdesc:aeefcd60e5ad37d80ec43f5315ae84809"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor that parses a string or URI fragment representation. <a href="classrapidjson_1_1_generic_pointer.html#aeefcd60e5ad37d80ec43f5315ae84809">More...</a><br /></td></tr>
<tr class="separator:aeefcd60e5ad37d80ec43f5315ae84809"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00ad17ea227d2556404df7cc64c6aeb5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a00ad17ea227d2556404df7cc64c6aeb5">GenericPointer</a> (const <a class="el" href="classrapidjson_1_1_generic_pointer.html#a850f78846c5548565f8395be5f3427b7">Ch</a> *source, size_t length, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> *allocator=0)</td></tr>
<tr class="memdesc:a00ad17ea227d2556404df7cc64c6aeb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor that parses a string or URI fragment representation, with length of the source string. <a href="classrapidjson_1_1_generic_pointer.html#a00ad17ea227d2556404df7cc64c6aeb5">More...</a><br /></td></tr>
<tr class="separator:a00ad17ea227d2556404df7cc64c6aeb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6df9f6a01d1b5945811055e1cf8aead6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a6df9f6a01d1b5945811055e1cf8aead6">GenericPointer</a> (const <a class="el" href="structrapidjson_1_1_generic_pointer_1_1_token.html">Token</a> *tokens, size_t tokenCount)</td></tr>
<tr class="memdesc:a6df9f6a01d1b5945811055e1cf8aead6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor with user-supplied tokens. <a href="classrapidjson_1_1_generic_pointer.html#a6df9f6a01d1b5945811055e1cf8aead6">More...</a><br /></td></tr>
<tr class="separator:a6df9f6a01d1b5945811055e1cf8aead6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae071847ed3e7389f5b256d26fcc8fd62"><td class="memItemLeft" align="right" valign="top"><a id="ae071847ed3e7389f5b256d26fcc8fd62"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_pointer.html#ae071847ed3e7389f5b256d26fcc8fd62">GenericPointer</a> (const <a class="el" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a> &amp;rhs)</td></tr>
<tr class="memdesc:ae071847ed3e7389f5b256d26fcc8fd62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br /></td></tr>
<tr class="separator:ae071847ed3e7389f5b256d26fcc8fd62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afedfcaac36fa589a46667825d3d0b763"><td class="memItemLeft" align="right" valign="top"><a id="afedfcaac36fa589a46667825d3d0b763"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_pointer.html#afedfcaac36fa589a46667825d3d0b763">GenericPointer</a> (const <a class="el" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a> &amp;rhs, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> *allocator)</td></tr>
<tr class="memdesc:afedfcaac36fa589a46667825d3d0b763"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br /></td></tr>
<tr class="separator:afedfcaac36fa589a46667825d3d0b763"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e144b9956a5272c13ceff3b9306e748"><td class="memItemLeft" align="right" valign="top"><a id="a0e144b9956a5272c13ceff3b9306e748"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a0e144b9956a5272c13ceff3b9306e748">~GenericPointer</a> ()</td></tr>
<tr class="memdesc:a0e144b9956a5272c13ceff3b9306e748"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="separator:a0e144b9956a5272c13ceff3b9306e748"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23194bb6ce6c07c78981344fe80ac3a6"><td class="memItemLeft" align="right" valign="top"><a id="a23194bb6ce6c07c78981344fe80ac3a6"></a>
<a class="el" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a23194bb6ce6c07c78981344fe80ac3a6">operator=</a> (const <a class="el" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a> &amp;rhs)</td></tr>
<tr class="memdesc:a23194bb6ce6c07c78981344fe80ac3a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator. <br /></td></tr>
<tr class="separator:a23194bb6ce6c07c78981344fe80ac3a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91762c063f390c1463eb772dfd1b822b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a91762c063f390c1463eb772dfd1b822b">Swap</a> (<a class="el" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a> &amp;other) RAPIDJSON_NOEXCEPT</td></tr>
<tr class="memdesc:a91762c063f390c1463eb772dfd1b822b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap the content of this pointer with an other. <a href="classrapidjson_1_1_generic_pointer.html#a91762c063f390c1463eb772dfd1b822b">More...</a><br /></td></tr>
<tr class="separator:a91762c063f390c1463eb772dfd1b822b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a249c61b5d4bed20c3f8972c57f46a937"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a249c61b5d4bed20c3f8972c57f46a937">swap</a> (<a class="el" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a> &amp;a, <a class="el" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a> &amp;b) RAPIDJSON_NOEXCEPT</td></tr>
<tr class="memdesc:a249c61b5d4bed20c3f8972c57f46a937"><td class="mdescLeft">&#160;</td><td class="mdescRight">free-standing swap function helper <a href="classrapidjson_1_1_generic_pointer.html#a249c61b5d4bed20c3f8972c57f46a937">More...</a><br /></td></tr>
<tr class="separator:a249c61b5d4bed20c3f8972c57f46a937"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Append token</h2></td></tr>
<tr class="memitem:a3e671447cf032271956fa984aad23ef7"><td class="memItemLeft" align="right" valign="top"><a id="a3e671447cf032271956fa984aad23ef7"></a>
<a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>allocator</b></td></tr>
<tr class="separator:a3e671447cf032271956fa984aad23ef7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a303e16e7d6c391a2afe8669744f79897"><td class="memItemLeft" align="right" valign="top"><a id="a303e16e7d6c391a2afe8669744f79897"></a>
<a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a303e16e7d6c391a2afe8669744f79897">allocator_</a></td></tr>
<tr class="memdesc:a303e16e7d6c391a2afe8669744f79897"><td class="mdescLeft">&#160;</td><td class="mdescRight">The current allocator. It is either user-supplied or equal to ownAllocator_. <br /></td></tr>
<tr class="separator:a303e16e7d6c391a2afe8669744f79897"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8798d7fdb02cd5b95bf032760aed8445"><td class="memItemLeft" align="right" valign="top"><a id="a8798d7fdb02cd5b95bf032760aed8445"></a>
<a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a8798d7fdb02cd5b95bf032760aed8445">ownAllocator_</a></td></tr>
<tr class="memdesc:a8798d7fdb02cd5b95bf032760aed8445"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrapidjson_1_1_allocator.html" title="Concept for allocating, resizing and freeing memory block.">Allocator</a> owned by this Pointer. <br /></td></tr>
<tr class="separator:a8798d7fdb02cd5b95bf032760aed8445"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38f23dc869001b53149804e563f6a465"><td class="memItemLeft" align="right" valign="top"><a id="a38f23dc869001b53149804e563f6a465"></a>
<a class="el" href="classrapidjson_1_1_generic_pointer.html#a850f78846c5548565f8395be5f3427b7">Ch</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a38f23dc869001b53149804e563f6a465">nameBuffer_</a></td></tr>
<tr class="memdesc:a38f23dc869001b53149804e563f6a465"><td class="mdescLeft">&#160;</td><td class="mdescRight">A buffer containing all names in tokens. <br /></td></tr>
<tr class="separator:a38f23dc869001b53149804e563f6a465"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad76284430e5e54ed22a4c93dc59e00c7"><td class="memItemLeft" align="right" valign="top"><a id="ad76284430e5e54ed22a4c93dc59e00c7"></a>
<a class="el" href="structrapidjson_1_1_generic_pointer_1_1_token.html">Token</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_pointer.html#ad76284430e5e54ed22a4c93dc59e00c7">tokens_</a></td></tr>
<tr class="memdesc:ad76284430e5e54ed22a4c93dc59e00c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">A list of tokens. <br /></td></tr>
<tr class="separator:ad76284430e5e54ed22a4c93dc59e00c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb657759c16fa63da15186db8c29122b"><td class="memItemLeft" align="right" valign="top"><a id="acb657759c16fa63da15186db8c29122b"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_pointer.html#acb657759c16fa63da15186db8c29122b">tokenCount_</a></td></tr>
<tr class="memdesc:acb657759c16fa63da15186db8c29122b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of tokens in tokens_. <br /></td></tr>
<tr class="separator:acb657759c16fa63da15186db8c29122b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28e0ba01bc383d2fe7d54a450e35cd7a"><td class="memItemLeft" align="right" valign="top"><a id="a28e0ba01bc383d2fe7d54a450e35cd7a"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a28e0ba01bc383d2fe7d54a450e35cd7a">parseErrorOffset_</a></td></tr>
<tr class="memdesc:a28e0ba01bc383d2fe7d54a450e35cd7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Offset in code unit when parsing fail. <br /></td></tr>
<tr class="separator:a28e0ba01bc383d2fe7d54a450e35cd7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20d76ef128abbdd0acd87d2f1fb0ae34"><td class="memItemLeft" align="right" valign="top"><a id="a20d76ef128abbdd0acd87d2f1fb0ae34"></a>
<a class="el" href="group___r_a_p_i_d_j_s_o_n___e_r_r_o_r_s.html#gade540ee4cc2a416c23b8ee2c12393c7b">PointerParseErrorCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a20d76ef128abbdd0acd87d2f1fb0ae34">parseErrorCode_</a></td></tr>
<tr class="memdesc:a20d76ef128abbdd0acd87d2f1fb0ae34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parsing error code. <br /></td></tr>
<tr class="separator:a20d76ef128abbdd0acd87d2f1fb0ae34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7cb5eda2af1722e52efa591c4103ebec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a7cb5eda2af1722e52efa591c4103ebec">Append</a> (const <a class="el" href="structrapidjson_1_1_generic_pointer_1_1_token.html">Token</a> &amp;token, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> *allocator=0) const</td></tr>
<tr class="memdesc:a7cb5eda2af1722e52efa591c4103ebec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Append a token and return a new Pointer. <a href="classrapidjson_1_1_generic_pointer.html#a7cb5eda2af1722e52efa591c4103ebec">More...</a><br /></td></tr>
<tr class="separator:a7cb5eda2af1722e52efa591c4103ebec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30f4eac82e9fded60dead3f7d1cb3941"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrapidjson_1_1_generic_pointer.html#a30f4eac82e9fded60dead3f7d1cb3941">Append</a> (const <a class="el" href="classrapidjson_1_1_generic_pointer.html#a850f78846c5548565f8395be5f3427b7">Ch</a> *name, <a class="el" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a> length, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> *allocator=0) const</td></tr>
<tr class="memdesc:a30f4eac82e9fded60dead3f7d1cb3941"><td class="mdescLeft">&#160;</td><td class="mdescRight">Append a name token with length, and return a new Pointer. <a href="classrapidjson_1_1_generic_pointer.html#a30f4eac82e9fded60dead3f7d1cb3941">More...</a><br /></td></tr>
<tr class="separator:a30f4eac82e9fded60dead3f7d1cb3941"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa881255d7b268d819d0f2cc27a4fff81"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:aa881255d7b268d819d0f2cc27a4fff81"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><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;::<a class="el" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">Type</a>, <a class="el" href="classrapidjson_1_1_generic_pointer.html#a850f78846c5548565f8395be5f3427b7">Ch</a> &gt; &gt;),(<a class="el" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a>)) <a class="el" href="classrapidjson_1_1_generic_pointer.html#a7cb5eda2af1722e52efa591c4103ebec">Append</a>(T *name</td></tr>
<tr class="memdesc:aa881255d7b268d819d0f2cc27a4fff81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Append a name token without length, and return a new Pointer. <a href="classrapidjson_1_1_generic_pointer.html#aa881255d7b268d819d0f2cc27a4fff81">More...</a><br /></td></tr>
<tr class="separator:aa881255d7b268d819d0f2cc27a4fff81"><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 />
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>
<p>This class implements RFC 6901 "JavaScript Object Notation (JSON) Pointer" (<a href="https://tools.ietf.org/html/rfc6901">https://tools.ietf.org/html/rfc6901</a>).</p>
<p>A JSON pointer is for identifying a specific value in a JSON document (<a class="el" href="classrapidjson_1_1_generic_document.html" title="A document for parsing JSON text as DOM.">GenericDocument</a>). It can simplify coding of DOM tree manipulation, because it can access multiple-level depth of DOM tree with single API call.</p>
<p>After it parses a string representation (e.g. "/foo/0" or URI fragment representation (e.g. "#/foo/0") into its internal representation (tokens), it can be used to resolve a specific value in multiple documents, or sub-tree of documents.</p>
<p>Contrary to <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>, Pointer can be copy constructed and copy assigned. Apart from assignment, a Pointer cannot be modified after construction.</p>
<p>Although Pointer is very convenient, please aware that constructing Pointer involves parsing and dynamic memory allocation. A special constructor with user- supplied tokens eliminates these.</p>
<p><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> depends on <a class="el" href="classrapidjson_1_1_generic_document.html" title="A document for parsing JSON text as DOM.">GenericDocument</a> and <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>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">ValueType</td><td>The value type of the DOM tree. E.g. <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>&lt;UTF8&lt;&gt; &gt; </td></tr>
<tr><td class="paramname"><a class="el" href="classrapidjson_1_1_allocator.html" title="Concept for allocating, resizing and freeing memory block.">Allocator</a></td><td>The allocator type for allocating memory for internal representation.</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd><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> uses same encoding of ValueType. However, <a class="el" href="classrapidjson_1_1_allocator.html" title="Concept for allocating, resizing and freeing memory block.">Allocator</a> of <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> is independent of <a class="el" href="classrapidjson_1_1_allocator.html" title="Concept for allocating, resizing and freeing memory block.">Allocator</a> of Value. </dd></dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a8f831aae14afc493a82b5fb6aa9c3c43"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8f831aae14afc493a82b5fb6aa9c3c43">&#9670;&nbsp;</a></span>GenericPointer() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ValueType , typename Allocator = CrtAllocator&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_pointer.html">rapidjson::GenericPointer</a>&lt; ValueType, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> &gt;::<a class="el" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classrapidjson_1_1_generic_pointer.html#a850f78846c5548565f8395be5f3427b7">Ch</a> *&#160;</td>
<td class="paramname"><em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> *&#160;</td>
<td class="paramname"><em>allocator</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor that parses a string or URI fragment representation. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">source</td><td>A null-terminated, string or URI fragment representation of JSON pointer. </td></tr>
<tr><td class="paramname">allocator</td><td>User supplied allocator for this pointer. If no allocator is provided, it creates a self-owned one. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="aeefcd60e5ad37d80ec43f5315ae84809"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeefcd60e5ad37d80ec43f5315ae84809">&#9670;&nbsp;</a></span>GenericPointer() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ValueType , typename Allocator = CrtAllocator&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_pointer.html">rapidjson::GenericPointer</a>&lt; ValueType, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> &gt;::<a class="el" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a> </td>
<td>(</td>
<td class="paramtype">const std::basic_string&lt; <a class="el" href="classrapidjson_1_1_generic_pointer.html#a850f78846c5548565f8395be5f3427b7">Ch</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> *&#160;</td>
<td class="paramname"><em>allocator</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor that parses a string or URI fragment representation. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">source</td><td>A string or URI fragment representation of JSON pointer. </td></tr>
<tr><td class="paramname">allocator</td><td>User supplied allocator for this pointer. If no allocator is provided, it creates a self-owned one. </td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>Requires the definition of the preprocessor symbol <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>. </dd></dl>
</div>
</div>
<a id="a00ad17ea227d2556404df7cc64c6aeb5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00ad17ea227d2556404df7cc64c6aeb5">&#9670;&nbsp;</a></span>GenericPointer() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ValueType , typename Allocator = CrtAllocator&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_pointer.html">rapidjson::GenericPointer</a>&lt; ValueType, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> &gt;::<a class="el" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classrapidjson_1_1_generic_pointer.html#a850f78846c5548565f8395be5f3427b7">Ch</a> *&#160;</td>
<td class="paramname"><em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>length</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> *&#160;</td>
<td class="paramname"><em>allocator</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor that parses a string or URI fragment representation, with length of the source string. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">source</td><td>A string or URI fragment representation of JSON pointer. </td></tr>
<tr><td class="paramname">length</td><td>Length of source. </td></tr>
<tr><td class="paramname">allocator</td><td>User supplied allocator for this pointer. If no allocator is provided, it creates a self-owned one. </td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>Slightly faster than the overload without length. </dd></dl>
</div>
</div>
<a id="a6df9f6a01d1b5945811055e1cf8aead6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6df9f6a01d1b5945811055e1cf8aead6">&#9670;&nbsp;</a></span>GenericPointer() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ValueType , typename Allocator = CrtAllocator&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_pointer.html">rapidjson::GenericPointer</a>&lt; ValueType, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> &gt;::<a class="el" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structrapidjson_1_1_generic_pointer_1_1_token.html">Token</a> *&#160;</td>
<td class="paramname"><em>tokens</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>tokenCount</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor with user-supplied tokens. </p>
<p>This constructor let user supplies const array of tokens. This prevents the parsing process and eliminates allocation. This is preferred for memory constrained environments.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tokens</td><td>An constant array of tokens representing the JSON pointer. </td></tr>
<tr><td class="paramname">tokenCount</td><td>Number of tokens.</td></tr>
</table>
</dd>
</dl>
<p><b>Example</b> </p><div class="fragment"><div class="line"><span class="preprocessor">#define NAME(s) { s, sizeof(s) / sizeof(s[0]) - 1, kPointerInvalidIndex }</span></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#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>
<div class="line"><span class="preprocessor">#undef INDEX</span></div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a30f4eac82e9fded60dead3f7d1cb3941"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a30f4eac82e9fded60dead3f7d1cb3941">&#9670;&nbsp;</a></span>Append() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ValueType , typename Allocator = CrtAllocator&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_pointer.html">GenericPointer</a> <a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer</a>&lt; ValueType, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> &gt;::Append </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classrapidjson_1_1_generic_pointer.html#a850f78846c5548565f8395be5f3427b7">Ch</a> *&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacerapidjson.html#a44eb33eaa523e36d466b1ced64b85c84">SizeType</a>&#160;</td>
<td class="paramname"><em>length</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> *&#160;</td>
<td class="paramname"><em>allocator</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Append a name token with length, and return a new Pointer. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">name</td><td>Name to be appended. </td></tr>
<tr><td class="paramname">length</td><td>Length of name. </td></tr>
<tr><td class="paramname">allocator</td><td><a class="el" href="classrapidjson_1_1_allocator.html" title="Concept for allocating, resizing and freeing memory block.">Allocator</a> for the newly return Pointer. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A new Pointer with appended token. </dd></dl>
</div>
</div>
<a id="a7cb5eda2af1722e52efa591c4103ebec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7cb5eda2af1722e52efa591c4103ebec">&#9670;&nbsp;</a></span>Append() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ValueType , typename Allocator = CrtAllocator&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_pointer.html">GenericPointer</a> <a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer</a>&lt; ValueType, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> &gt;::Append </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structrapidjson_1_1_generic_pointer_1_1_token.html">Token</a> &amp;&#160;</td>
<td class="paramname"><em>token</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> *&#160;</td>
<td class="paramname"><em>allocator</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Append a token and return a new Pointer. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">token</td><td><a class="el" href="structrapidjson_1_1_generic_pointer_1_1_token.html" title="A token is the basic units of internal representation.">Token</a> to be appended. </td></tr>
<tr><td class="paramname">allocator</td><td><a class="el" href="classrapidjson_1_1_allocator.html" title="Concept for allocating, resizing and freeing memory block.">Allocator</a> for the newly return Pointer. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A new Pointer with appended token. </dd></dl>
</div>
</div>
<a id="aa881255d7b268d819d0f2cc27a4fff81"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa881255d7b268d819d0f2cc27a4fff81">&#9670;&nbsp;</a></span>RAPIDJSON_DISABLEIF_RETURN()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ValueType , typename Allocator = CrtAllocator&gt; </div>
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer</a>&lt; ValueType, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> &gt;::RAPIDJSON_DISABLEIF_RETURN </td>
<td>(</td>
<td class="paramtype">(internal::NotExpr&lt; internal::IsSame&lt; typename internal::RemoveConst&lt; T &gt;::<a class="el" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4">Type</a>, <a class="el" href="classrapidjson_1_1_generic_pointer.html#a850f78846c5548565f8395be5f3427b7">Ch</a> &gt; &gt;)&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">(<a class="el" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a>&lt; ValueType, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> &gt;)&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Append a name token without length, and return a new Pointer. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">name</td><td>Name (const Ch*) to be appended. </td></tr>
<tr><td class="paramname">allocator</td><td><a class="el" href="classrapidjson_1_1_allocator.html" title="Concept for allocating, resizing and freeing memory block.">Allocator</a> for the newly return Pointer. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A new Pointer with appended token. </dd></dl>
</div>
</div>
<a id="a91762c063f390c1463eb772dfd1b822b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a91762c063f390c1463eb772dfd1b822b">&#9670;&nbsp;</a></span>Swap()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ValueType , typename Allocator = CrtAllocator&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_pointer.html">GenericPointer</a>&amp; <a class="el" href="classrapidjson_1_1_generic_pointer.html">rapidjson::GenericPointer</a>&lt; ValueType, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> &gt;::Swap </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a>&lt; ValueType, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Swap the content of this pointer with an other. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">other</td><td>The pointer to swap with. </td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>Constant complexity. </dd></dl>
</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a id="a249c61b5d4bed20c3f8972c57f46a937"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a249c61b5d4bed20c3f8972c57f46a937">&#9670;&nbsp;</a></span>swap</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ValueType , typename Allocator = CrtAllocator&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void swap </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a>&lt; ValueType, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a>&lt; ValueType, <a class="el" href="classrapidjson_1_1_allocator.html">Allocator</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>b</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>free-standing swap function helper </p>
<p>Helper function to enable support for common swap implementation pattern based on <code>std::swap:</code> </p><div class="fragment"><div class="line"><span class="keywordtype">void</span> <a class="code" href="classrapidjson_1_1_generic_pointer.html#a249c61b5d4bed20c3f8972c57f46a937">swap</a>(MyClass&amp; a, MyClass&amp; b) {</div>
<div class="line"> <span class="keyword">using</span> std::swap;</div>
<div class="line"> <a class="code" href="classrapidjson_1_1_generic_pointer.html#a249c61b5d4bed20c3f8972c57f46a937">swap</a>(a.pointer, b.pointer);</div>
<div class="line"> <span class="comment">// ...</span></div>
<div class="line">}</div>
</div><!-- fragment --> <dl class="section see"><dt>See also</dt><dd><a class="el" href="classrapidjson_1_1_generic_pointer.html#a91762c063f390c1463eb772dfd1b822b" title="Swap the content of this pointer with an other.">Swap()</a> </dd></dl>
</div>
</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="pointer_8h_source.html">pointer.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="anamespacerapidjson_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:126</div></div>
<div class="ttc" id="aclassrapidjson_1_1_generic_pointer_html_a249c61b5d4bed20c3f8972c57f46a937"><div class="ttname"><a href="classrapidjson_1_1_generic_pointer.html#a249c61b5d4bed20c3f8972c57f46a937">rapidjson::GenericPointer::swap</a></div><div class="ttdeci">friend void swap(GenericPointer &amp;a, GenericPointer &amp;b) RAPIDJSON_NOEXCEPT</div><div class="ttdoc">free-standing swap function helper</div><div class="ttdef"><b>Definition:</b> pointer.h:231</div></div>
<!-- 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="namespacerapidjson.html">rapidjson</a></li><li class="navelem"><a class="el" href="classrapidjson_1_1_generic_pointer.html">GenericPointer</a></li>
</ul>
</div>
</body>
</html>