<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>&nbsp; Apache Ignite C++: Namespace 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>
<link href="doxygen.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="projectlogo"><img alt="Logo" src="ignite_logo.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">&nbsp; Apache Ignite C++
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<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>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></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 documented namespace members with links to the namespaces they belong to:</div>

<h3><a id="index_d"></a>- d -</h3><ul>
<li>DFLT_CFG
: <a class="el" href="namespaceignite.html#ac3187647ce756893682aedb63993a4fc">ignite</a>
</li>
</ul>


<h3><a id="index_f"></a>- f -</h3><ul>
<li>factoryLock
: <a class="el" href="namespaceignite.html#a5140415d3b8b40ecd43aa83597d84627">ignite</a>
</li>
</ul>


<h3><a id="index_g"></a>- g -</h3><ul>
<li>GetBinaryStringHashCode()
: <a class="el" href="namespaceignite_1_1binary.html#ac93fb79680cc0baff9d1d6bd6e44139a">ignite::binary</a>
</li>
</ul>


<h3><a id="index_j"></a>- j -</h3><ul>
<li>JVM_LIB_LOADED
: <a class="el" href="namespaceignite.html#ac18638cf1e1e9d64caf401ac105b5122">ignite</a>
</li>
<li>JvmMemoryString()
: <a class="el" href="namespaceignite.html#ae3921cbc337d32fd43b1fce5b1d663a6">ignite</a>
</li>
</ul>


<h3><a id="index_m"></a>- m -</h3><ul>
<li>MakeConstReference()
: <a class="el" href="namespaceignite.html#ae78424fdffadc92e84b815d5df9c6fee">ignite</a>
</li>
<li>MakeConstReferenceFromCopy()
: <a class="el" href="namespaceignite.html#a713b8934e0021d44b99f15acae86efe2">ignite</a>
</li>
<li>MakeConstReferenceFromOwningPointer()
: <a class="el" href="namespaceignite.html#a6b46914ac275250143be90e5bc2411e2">ignite</a>
</li>
<li>MakeConstReferenceFromSmartPointer()
: <a class="el" href="namespaceignite.html#a4d056cf27c881af6b06bda130d0f64ed">ignite</a>
</li>
<li>MakeReference()
: <a class="el" href="namespaceignite.html#ac1523106a14156cf653b3366d92562cd">ignite</a>
</li>
<li>MakeReferenceFromCopy()
: <a class="el" href="namespaceignite.html#a1876725dc2d3119c5a0b15cf417aa1d0">ignite</a>
</li>
<li>MakeReferenceFromOwningPointer()
: <a class="el" href="namespaceignite.html#a700a57aef7b1a3ebd13feed33dcf4170">ignite</a>
</li>
<li>MakeReferenceFromSmartPointer()
: <a class="el" href="namespaceignite.html#a01845a228a65220aed4fa281e408c610">ignite</a>
</li>
</ul>


<h3><a id="index_o"></a>- o -</h3><ul>
<li>operator!=()
: <a class="el" href="namespaceignite.html#a0fc5f4a76b8b2baa65893fc9c46c4935">ignite</a>
</li>
<li>operator&lt;()
: <a class="el" href="namespaceignite.html#a106dd88a9964860fa6a6c13cf7ffc2cd">ignite</a>
</li>
<li>operator&lt;&lt;()
: <a class="el" href="namespaceignite.html#ac26d447ad00c0ca3a8bfa309732e82cb">ignite</a>
</li>
<li>operator&lt;=()
: <a class="el" href="namespaceignite.html#a071c9365622edf5052bd94f0f48ef238">ignite</a>
</li>
<li>operator==()
: <a class="el" href="namespaceignite.html#afb70f4da4a9f6334f47b5c71721963ed">ignite</a>
</li>
<li>operator&gt;()
: <a class="el" href="namespaceignite.html#a6845717dc6c3a7d3b3247e3fc8169844">ignite</a>
</li>
<li>operator&gt;=()
: <a class="el" href="namespaceignite.html#ade0fafd6b7a6c274725529474ce04723">ignite</a>
</li>
<li>operator&gt;&gt;()
: <a class="el" href="namespaceignite.html#a28f6f15d40523f15436326d3376bd307">ignite</a>
</li>
</ul>


<h3><a id="index_s"></a>- s -</h3><ul>
<li>started
: <a class="el" href="namespaceignite.html#a340fa66fbb410168be7d201fd48d9515">ignite</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Jan 10 2022 11:02:04 for &nbsp; Apache Ignite C++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>
