<!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.9.1/cppdoc/structignite_1_1binary_1_1BinaryEnumDefaultAll.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">
<!-- Yandex.Metrika counter -->
    <script type="text/javascript" >
      (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
      m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
      (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
    
      ym(72949126, "init", {
           clickmap:true,
           trackLinks:true,
           accurateTrackBounce:true,
           webvisor:true
      });
    </script>
    <noscript><div><img src="https://mc.yandex.ru/watch/72949126" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
    <!-- /Yandex.Metrika counter -->
<script type='text/javascript'>
    window.__lo_site_id = 284467;
    
      (function() {
        var wa = document.createElement('script'); wa.type = 'text/javascript'; wa.async = true;
        wa.src = 'https://d10lpsik1i8c69.cloudfront.net/w.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wa, s);
        })();
      </script>


<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++: ignite::binary::BinaryEnumDefaultAll&lt; T &gt; Struct 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="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>
<!-- 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 id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceignite.html">ignite</a></li><li class="navelem"><a class="el" href="namespaceignite_1_1binary.html">binary</a></li><li class="navelem"><a class="el" href="structignite_1_1binary_1_1BinaryEnumDefaultAll.html">BinaryEnumDefaultAll</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="structignite_1_1binary_1_1BinaryEnumDefaultAll-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ignite::binary::BinaryEnumDefaultAll&lt; T &gt; Struct Template Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Default implementations of <a class="el" href="structignite_1_1binary_1_1BinaryType.html" title="Binary type structure. ">BinaryType</a> hashing functions and non-null type behaviour.  
 <a href="structignite_1_1binary_1_1BinaryEnumDefaultAll.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="binary__enum_8h_source.html">binary_enum.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ignite::binary::BinaryEnumDefaultAll&lt; T &gt;:</div>
<div class="dyncontent">
 <div class="center">
  <img src="structignite_1_1binary_1_1BinaryEnumDefaultAll.png" usemap="#ignite::binary::BinaryEnumDefaultAll_3C_20T_20_3E_map" alt=""/>
  <map id="ignite::binary::BinaryEnumDefaultAll_3C_20T_20_3E_map" name="ignite::binary::BinaryEnumDefaultAll_3C_20T_20_3E_map">
<area href="structignite_1_1binary_1_1BinaryEnumDefault.html" title="Default implementations of BinaryEnum. " alt="ignite::binary::BinaryEnumDefault&lt; T &gt;" shape="rect" coords="0,0,245,24"/>
<area href="structignite_1_1binary_1_1BinaryEnumIntMinNull.html" title="Implementations of BinaryEnum nullability when INT32_MIN ordinal value used as a NULL indicator..." alt="ignite::binary::BinaryEnumIntMinNull&lt; T &gt;" shape="rect" coords="255,0,500,24"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_static_methods_structignite_1_1binary_1_1BinaryEnumDefault"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_structignite_1_1binary_1_1BinaryEnumDefault')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="structignite_1_1binary_1_1BinaryEnumDefault.html">ignite::binary::BinaryEnumDefault&lt; T &gt;</a></td></tr>
<tr class="memitem:ab3e1336c69ef00e4fd3d4d3343b8dd16 inherit pub_static_methods_structignite_1_1binary_1_1BinaryEnumDefault"><td class="memItemLeft" align="right" valign="top">static int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structignite_1_1binary_1_1BinaryEnumDefault.html#ab3e1336c69ef00e4fd3d4d3343b8dd16">GetTypeId</a> ()</td></tr>
<tr class="memdesc:ab3e1336c69ef00e4fd3d4d3343b8dd16 inherit pub_static_methods_structignite_1_1binary_1_1BinaryEnumDefault"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get type ID for the enum type.  <a href="structignite_1_1binary_1_1BinaryEnumDefault.html#ab3e1336c69ef00e4fd3d4d3343b8dd16">More...</a><br /></td></tr>
<tr class="separator:ab3e1336c69ef00e4fd3d4d3343b8dd16 inherit pub_static_methods_structignite_1_1binary_1_1BinaryEnumDefault"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17bb09ef18e4045edef992e467bc9672 inherit pub_static_methods_structignite_1_1binary_1_1BinaryEnumDefault"><td class="memItemLeft" align="right" valign="top">static int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structignite_1_1binary_1_1BinaryEnumDefault.html#a17bb09ef18e4045edef992e467bc9672">GetOrdinal</a> (T value)</td></tr>
<tr class="memdesc:a17bb09ef18e4045edef992e467bc9672 inherit pub_static_methods_structignite_1_1binary_1_1BinaryEnumDefault"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get enum type ordinal.  <a href="structignite_1_1binary_1_1BinaryEnumDefault.html#a17bb09ef18e4045edef992e467bc9672">More...</a><br /></td></tr>
<tr class="separator:a17bb09ef18e4045edef992e467bc9672 inherit pub_static_methods_structignite_1_1binary_1_1BinaryEnumDefault"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a625b0d7a350837f27db254b2d2bab319 inherit pub_static_methods_structignite_1_1binary_1_1BinaryEnumDefault"><td class="memItemLeft" align="right" valign="top">static T&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structignite_1_1binary_1_1BinaryEnumDefault.html#a625b0d7a350837f27db254b2d2bab319">FromOrdinal</a> (int32_t ordinal)</td></tr>
<tr class="memdesc:a625b0d7a350837f27db254b2d2bab319 inherit pub_static_methods_structignite_1_1binary_1_1BinaryEnumDefault"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get enum value for the given ordinal value.  <a href="structignite_1_1binary_1_1BinaryEnumDefault.html#a625b0d7a350837f27db254b2d2bab319">More...</a><br /></td></tr>
<tr class="separator:a625b0d7a350837f27db254b2d2bab319 inherit pub_static_methods_structignite_1_1binary_1_1BinaryEnumDefault"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_static_methods_structignite_1_1binary_1_1BinaryEnumIntMinNull"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_structignite_1_1binary_1_1BinaryEnumIntMinNull')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="structignite_1_1binary_1_1BinaryEnumIntMinNull.html">ignite::binary::BinaryEnumIntMinNull&lt; T &gt;</a></td></tr>
<tr class="memitem:aa30c2ef446330641dccec82da8959dac inherit pub_static_methods_structignite_1_1binary_1_1BinaryEnumIntMinNull"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structignite_1_1binary_1_1BinaryEnumIntMinNull.html#aa30c2ef446330641dccec82da8959dac">IsNull</a> (const T &amp;val)</td></tr>
<tr class="memdesc:aa30c2ef446330641dccec82da8959dac inherit pub_static_methods_structignite_1_1binary_1_1BinaryEnumIntMinNull"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether passed binary object should be interpreted as NULL.  <a href="structignite_1_1binary_1_1BinaryEnumIntMinNull.html#aa30c2ef446330641dccec82da8959dac">More...</a><br /></td></tr>
<tr class="separator:aa30c2ef446330641dccec82da8959dac inherit pub_static_methods_structignite_1_1binary_1_1BinaryEnumIntMinNull"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c148f58c4be44113ca334fcaa05c29b inherit pub_static_methods_structignite_1_1binary_1_1BinaryEnumIntMinNull"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structignite_1_1binary_1_1BinaryEnumIntMinNull.html#a4c148f58c4be44113ca334fcaa05c29b">GetNull</a> (T &amp;dst)</td></tr>
<tr class="memdesc:a4c148f58c4be44113ca334fcaa05c29b inherit pub_static_methods_structignite_1_1binary_1_1BinaryEnumIntMinNull"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get NULL value for the given binary type.  <a href="structignite_1_1binary_1_1BinaryEnumIntMinNull.html#a4c148f58c4be44113ca334fcaa05c29b">More...</a><br /></td></tr>
<tr class="separator:a4c148f58c4be44113ca334fcaa05c29b inherit pub_static_methods_structignite_1_1binary_1_1BinaryEnumIntMinNull"><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 T&gt;<br />
struct ignite::binary::BinaryEnumDefaultAll&lt; T &gt;</h3>

<p>Default implementations of <a class="el" href="structignite_1_1binary_1_1BinaryType.html" title="Binary type structure. ">BinaryType</a> hashing functions and non-null type behaviour. </p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="binary__enum_8h_source.html">binary_enum.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Dec 9 2020 14:26:55 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>
