<!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.11"/>
<title>JSON for Modern C++: Class Members</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="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">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="mylayout.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">JSON for Modern C++
   &#160;<span id="projectnumber">2.0.2</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li>
        <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>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="navrow3" class="tabs2">
    <ul class="tablist">
      <li class="current"><a href="functions.html"><span>All</span></a></li>
      <li><a href="functions_func.html"><span>Functions</span></a></li>
      <li><a href="functions_type.html"><span>Typedefs</span></a></li>
      <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
      <li><a href="functions_rela.html"><span>Related&#160;Functions</span></a></li>
    </ul>
  </div>
  <div id="navrow4" class="tabs3">
    <ul class="tablist">
      <li><a href="functions.html#index_a"><span>a</span></a></li>
      <li><a href="functions_b.html#index_b"><span>b</span></a></li>
      <li><a href="functions_c.html#index_c"><span>c</span></a></li>
      <li><a href="functions_d.html#index_d"><span>d</span></a></li>
      <li><a href="functions_e.html#index_e"><span>e</span></a></li>
      <li><a href="functions_f.html#index_f"><span>f</span></a></li>
      <li><a href="functions_g.html#index_g"><span>g</span></a></li>
      <li><a href="functions_i.html#index_i"><span>i</span></a></li>
      <li class="current"><a href="functions_j.html#index_j"><span>j</span></a></li>
      <li><a href="functions_k.html#index_k"><span>k</span></a></li>
      <li><a href="functions_m.html#index_m"><span>m</span></a></li>
      <li><a href="functions_n.html#index_n"><span>n</span></a></li>
      <li><a href="functions_o.html#index_o"><span>o</span></a></li>
      <li><a href="functions_p.html#index_p"><span>p</span></a></li>
      <li><a href="functions_r.html#index_r"><span>r</span></a></li>
      <li><a href="functions_s.html#index_s"><span>s</span></a></li>
      <li><a href="functions_t.html#index_t"><span>t</span></a></li>
      <li><a href="functions_u.html#index_u"><span>u</span></a></li>
      <li><a href="functions_v.html#index_v"><span>v</span></a></li>
      <li><a href="functions_0x7e.html#index_0x7e"><span>~</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<!-- 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="contents">
<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>

<h3><a class="anchor" id="index_j"></a>- j -</h3><ul>
<li>json_pointer()
: <a class="el" href="classnlohmann_1_1basic__json_1_1json__pointer_ae12db117a2742d826465080979d7c835.html#ae12db117a2742d826465080979d7c835">nlohmann::basic_json::json_pointer</a>
</li>
<li>json_reverse_iterator()
: <a class="el" href="classnlohmann_1_1basic__json_1_1json__reverse__iterator_a530f042e2ab1c83dddfc344931b0375a.html#a530f042e2ab1c83dddfc344931b0375a">nlohmann::basic_json::json_reverse_iterator&lt; Base &gt;</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jul 31 2016 13:33:08 for JSON for Modern C++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>
