<!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>
<link rel="canonical" href="https://ignite.apache.org/releases/2.8.0/cppdoc/functions_h.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">



<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.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>&nbsp; Apache Ignite 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>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-61232409-1', 'auto');
  ga('send', 'pageview');

</script></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.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</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 class members with links to the class documentation for each member:</div>

<h3><a id="index_h"></a>- h -</h3><ul>
<li>HasField()
: <a class="el" href="classignite_1_1binary_1_1BinaryObject.html#a001112359409827867634b664666b524">ignite::binary::BinaryObject</a>
</li>
<li>HASH_MAP
: <a class="el" href="structignite_1_1binary_1_1MapType.html#a138cf8f1db233f607ea34aaa8a99b456a9384793de7c573092435d6d8613188ca">ignite::binary::MapType</a>
</li>
<li>HASH_SET
: <a class="el" href="structignite_1_1binary_1_1CollectionType.html#a03610e138c65428dc81c08f62b7729bba9250b49861e956b3eeb1f2ad696af85d">ignite::binary::CollectionType</a>
</li>
<li>HasNext()
: <a class="el" href="classignite_1_1binary_1_1BinaryArrayReader.html#aa7845e8ce6615fb7e0c32c6ce2c1543a">ignite::binary::BinaryArrayReader&lt; T &gt;</a>
, <a class="el" href="classignite_1_1binary_1_1BinaryCollectionReader.html#a4a63f1059659d11bcfa211acce8fbf2c">ignite::binary::BinaryCollectionReader&lt; T &gt;</a>
, <a class="el" href="classignite_1_1binary_1_1BinaryMapReader.html#ad62c2bfd4e90e4c0080e22ed88f38fda">ignite::binary::BinaryMapReader&lt; K, V &gt;</a>
, <a class="el" href="classignite_1_1binary_1_1BinaryStringArrayReader.html#aba1b6f574730e60da85008a3e495c88a">ignite::binary::BinaryStringArrayReader</a>
, <a class="el" href="classignite_1_1cache_1_1query_1_1QueryCursor.html#a901f70ae82074313f724edf959b1e515">ignite::cache::query::QueryCursor&lt; K, V &gt;</a>
, <a class="el" href="classignite_1_1cache_1_1query_1_1QueryFieldsCursor.html#af7bc420f70745fc5ef6de141c40303db">ignite::cache::query::QueryFieldsCursor</a>
, <a class="el" href="classignite_1_1cache_1_1query_1_1QueryFieldsRow.html#a815ad89f0e2ff971e1d13315aaa4c016">ignite::cache::query::QueryFieldsRow</a>
</li>
<li>HasOldValue()
: <a class="el" href="classignite_1_1cache_1_1CacheEntryEvent.html#a1fbc961c4d8001bb1daca168bb85e103">ignite::cache::CacheEntryEvent&lt; K, V &gt;</a>
</li>
<li>hasValue
: <a class="el" href="classignite_1_1cache_1_1CacheEntry.html#a53efefccfb9203c683a1c86afa86763c">ignite::cache::CacheEntry&lt; K, V &gt;</a>
</li>
<li>HasValue()
: <a class="el" href="classignite_1_1cache_1_1CacheEntry.html#af8e0799a75cf339123db6190fca4803b">ignite::cache::CacheEntry&lt; K, V &gt;</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Feb 27 2020 14:01:15 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.13
</small></address>
</body>
</html>
