| <!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.6"/> |
| <title>Impala: be/src/util/template-util.h File 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="navtree.js"></script> |
| <script type="text/javascript"> |
| $(document).ready(initResizable); |
| $(window).load(resizeHeight); |
| </script> |
| <link href="search/search.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="search/search.js"></script> |
| <script type="text/javascript"> |
| $(document).ready(function() { searchBox.OnSelectItem(0); }); |
| </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 style="padding-left: 0.5em;"> |
| <div id="projectname">Impala |
| </div> |
| <div id="projectbrief">Impalaistheopensource,nativeanalyticdatabaseforApacheHadoop.</div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <!-- end header part --> |
| <!-- Generated by Doxygen 1.8.6 --> |
| <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 Page</span></a></li> |
| <li><a href="namespaces.html"><span>Namespaces</span></a></li> |
| <li><a href="annotated.html"><span>Classes</span></a></li> |
| <li class="current"><a href="files.html"><span>Files</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="files.html"><span>File List</span></a></li> |
| <li><a href="globals.html"><span>File Members</span></a></li> |
| </ul> |
| </div> |
| </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"> |
| $(document).ready(function(){initNavTree('template-util_8h.html','');}); |
| </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)"> |
| <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a></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="#define-members">Macros</a> </div> |
| <div class="headertitle"> |
| <div class="title">template-util.h File Reference</div> </div> |
| </div><!--header--> |
| <div class="contents"> |
| <div class="textblock"><code>#include <boost/type_traits/is_arithmetic.hpp></code><br/> |
| <code>#include <boost/type_traits/is_integral.hpp></code><br/> |
| <code>#include <boost/type_traits/is_float.hpp></code><br/> |
| <code>#include <boost/utility/enable_if.hpp></code><br/> |
| </div><div class="textblock"><div class="dynheader"> |
| Include dependency graph for template-util.h:</div> |
| <div class="dyncontent"> |
| <div class="center"><iframe scrolling="no" frameborder="0" src="template-util_8h__incl.svg" width="614" height="144"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div> |
| </div> |
| </div><div class="textblock"><div class="dynheader"> |
| This graph shows which files directly or indirectly include this file:</div> |
| <div class="dyncontent"> |
| <div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="template-util_8h__dep__incl.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div> |
| </div> |
| </div> |
| <p><a href="template-util_8h_source.html">Go to the source code of this file.</a></p> |
| <table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> |
| Macros</h2></td></tr> |
| <tr class="memitem:a7e134cd6c516e8dfb9ee0392c3a86a48"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="template-util_8h.html#a7e134cd6c516e8dfb9ee0392c3a86a48">ENABLE_IF_ARITHMETIC</a>(type_param, return_type)   typename boost::enable_if_c<boost::is_arithmetic<type_param>::value, return_type>::type</td></tr> |
| <tr class="separator:a7e134cd6c516e8dfb9ee0392c3a86a48"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a86aca6f0c5c14d8f321d8949c5816e72"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="template-util_8h.html#a86aca6f0c5c14d8f321d8949c5816e72">ENABLE_IF_NOT_ARITHMETIC</a>(type_param, return_type)   typename boost::enable_if_c<!boost::is_arithmetic<type_param>::value, return_type>::type</td></tr> |
| <tr class="separator:a86aca6f0c5c14d8f321d8949c5816e72"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a42d64fe8d06ede4f8d9f5bad01741792"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="template-util_8h.html#a42d64fe8d06ede4f8d9f5bad01741792">ENABLE_IF_INTEGRAL</a>(type_param, return_type)   typename boost::enable_if_c<boost::is_integral<type_param>::value, return_type>::type</td></tr> |
| <tr class="memdesc:a42d64fe8d06ede4f8d9f5bad01741792"><td class="mdescLeft"> </td><td class="mdescRight">Enables a method only if 'type_param' is integral, i.e. some variant of int or long. <a href="#a42d64fe8d06ede4f8d9f5bad01741792">More...</a><br/></td></tr> |
| <tr class="separator:a42d64fe8d06ede4f8d9f5bad01741792"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a8c016cc36bc119a0e6cadcdd46924097"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="template-util_8h.html#a8c016cc36bc119a0e6cadcdd46924097">ENABLE_IF_FLOAT</a>(type_param, return_type)   typename boost::enable_if_c<!boost::is_integral<type_param>::value, return_type>::type</td></tr> |
| <tr class="separator:a8c016cc36bc119a0e6cadcdd46924097"><td class="memSeparator" colspan="2"> </td></tr> |
| </table> |
| <h2 class="groupheader">Macro Definition Documentation</h2> |
| <a class="anchor" id="a7e134cd6c516e8dfb9ee0392c3a86a48"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define ENABLE_IF_ARITHMETIC</td> |
| <td>(</td> |
| <td class="paramtype"> </td> |
| <td class="paramname">type_param, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"> </td> |
| <td class="paramname">return_type </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td>   typename boost::enable_if_c<boost::is_arithmetic<type_param>::value, return_type>::type</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>The ENABLE_IF_* macros are used to 'enable' - i.e. to make available to the compiler - a method only if a type parameter belongs to the set described by each macro. Each macro takes the return type of the method as an argument (a requirement of the underlying type trait template that implements this logic). Usage: template <typename t>=""> <a class="el" href="template-util_8h.html#a7e134cd6c516e8dfb9ee0392c3a86a48">ENABLE_IF_ARITHMETIC(T, T)</a> foo(T arg) { return arg + 2; } Enables a method only if 'type_param' is arithmetic, that is an integral type or a floating-point type </p> |
| |
| <p>Definition at line <a class="el" href="template-util_8h_source.html#l00032">32</a> of file <a class="el" href="template-util_8h_source.html">template-util.h</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a8c016cc36bc119a0e6cadcdd46924097"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define ENABLE_IF_FLOAT</td> |
| <td>(</td> |
| <td class="paramtype"> </td> |
| <td class="paramname">type_param, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"> </td> |
| <td class="paramname">return_type </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td>   typename boost::enable_if_c<!boost::is_integral<type_param>::value, return_type>::type</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Enables a method only if 'type_param' is a floating point type, i.e. some variant of float or double. </p> |
| |
| <p>Definition at line <a class="el" href="template-util_8h_source.html#l00046">46</a> of file <a class="el" href="template-util_8h_source.html">template-util.h</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a42d64fe8d06ede4f8d9f5bad01741792"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define ENABLE_IF_INTEGRAL</td> |
| <td>(</td> |
| <td class="paramtype"> </td> |
| <td class="paramname">type_param, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"> </td> |
| <td class="paramname">return_type </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td>   typename boost::enable_if_c<boost::is_integral<type_param>::value, return_type>::type</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Enables a method only if 'type_param' is integral, i.e. some variant of int or long. </p> |
| |
| <p>Definition at line <a class="el" href="template-util_8h_source.html#l00041">41</a> of file <a class="el" href="template-util_8h_source.html">template-util.h</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a86aca6f0c5c14d8f321d8949c5816e72"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define ENABLE_IF_NOT_ARITHMETIC</td> |
| <td>(</td> |
| <td class="paramtype"> </td> |
| <td class="paramname">type_param, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"> </td> |
| <td class="paramname">return_type </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td>   typename boost::enable_if_c<!boost::is_arithmetic<type_param>::value, return_type>::type</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Enables a method only if 'type_param' is not arithmetic, that is neither an integral type or a floating-point type </p> |
| |
| <p>Definition at line <a class="el" href="template-util_8h_source.html#l00037">37</a> of file <a class="el" href="template-util_8h_source.html">template-util.h</a>.</p> |
| |
| </div> |
| </div> |
| </div><!-- contents --> |
| </div><!-- doc-content --> |
| <!-- start footer part --> |
| <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> |
| <ul> |
| <li class="navelem"><a class="el" href="dir_e5d120be6b5e8a44336cbfd013b25604.html">be</a></li><li class="navelem"><a class="el" href="dir_68cf7cafb51a962d5bc4848b83cab0de.html">src</a></li><li class="navelem"><a class="el" href="dir_6939c8639261a9303da2cde491b82898.html">util</a></li><li class="navelem"><a class="el" href="template-util_8h.html">template-util.h</a></li> |
| <li class="footer">Generated on Thu May 7 2015 16:10:41 for Impala by |
| <a href="http://www.doxygen.org/index.html"> |
| <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li> |
| </ul> |
| </div> |
| </body> |
| </html> |