Sophie

Sophie

distrib > Mageia > 1 > i586 > by-pkgid > 64656f00434e190abe8506174ca339ed > files > 679

ucommon-doc-4.3.1-1.mga1.i586.rpm

<!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"/>
<title>ucommon: ucommon/generics.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.3 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">ucommon</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('a00185.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<h1>ucommon/generics.h File Reference</h1>  </div>
</div>
<div class="contents">

<p>Generic templates for C++.  
<a href="#_details">More...</a></p>
<div class="textblock"><code>#include &lt;ucommon/platform.h&gt;</code><br/>
<code>#include &lt;stdlib.h&gt;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for generics.h:</div>
<div class="dyncontent">
<div class="center"><img src="a00231.png" border="0" usemap="#ucommon_2generics_8h" alt=""/></div>
<map name="ucommon_2generics_8h" id="ucommon_2generics_8h">
</map>
</div>
</div>
<p><a href="a00185_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html">array_pointer&lt; T &gt;</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic smart array class.  <a href="a00012.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00108.html">pointer&lt; T &gt;</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic smart pointer class.  <a href="a00108.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html">temp_array&lt; T &gt;</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Manage temporary array stored on the heap.  <a href="a00156.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html">temporary&lt; T &gt;</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Manage temporary object stored on the heap.  <a href="a00157.html#_details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a27264efd631c4f584ddcb2f5888ae6ed"></a><!-- doxytag: member="generics.h::THROW" ref="a27264efd631c4f584ddcb2f5888ae6ed" args="(x)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>THROW</b>(x)&#160;&#160;&#160;::abort()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9c5a7b689682c471df78bc5892d4ea11"></a><!-- doxytag: member="generics.h::THROWS" ref="a9c5a7b689682c471df78bc5892d4ea11" args="(x)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>THROWS</b>(x)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9009f6d3236d74cef1961e4f5a188c8b"></a><!-- doxytag: member="generics.h::THROWS_ANY" ref="a9009f6d3236d74cef1961e4f5a188c8b" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>THROWS_ANY</b></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#a8e91e3bc27122a2ea5315c17a40dc374">is</a> (T &amp;object)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience function to validate object assuming it is castable to bool.  <a href="#a8e91e3bc27122a2ea5315c17a40dc374"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#a473d3e38a56dcf815158fa4f829874fb">isnull</a> (T &amp;object)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience function to test pointer object.  <a href="#a473d3e38a56dcf815158fa4f829874fb"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#a66838e351a0cd954d38042a2f256a98a">isnullp</a> (T *object)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience function to test pointer-pointer object.  <a href="#a66838e351a0cd954d38042a2f256a98a"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">T &amp;()&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#afc341c1b5f236384143a01495b99cd26">max</a> (T &amp;o1, T &amp;o2)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience function to return max of two objects.  <a href="#afc341c1b5f236384143a01495b99cd26"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">T &amp;()&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#a73ed6b056d0035634de3f17eaf74f4a5">min</a> (T &amp;o1, T &amp;o2)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience function to return min of two objects.  <a href="#a73ed6b056d0035634de3f17eaf74f4a5"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#a21ad5beb7098b50e80d12d0055f0c72d">swap</a> (T &amp;o1, T &amp;o2)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience function to swap objects.  <a href="#a21ad5beb7098b50e80d12d0055f0c72d"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Generic templates for C++. </p>
<p>These are templates that do not depend on any ucommon classes. They can be used for generic C++ programming. </p>

<p>Definition in file <a class="el" href="a00185_source.html">generics.h</a>.</p>
</div><hr/><h2>Function Documentation</h2>
<a class="anchor" id="a8e91e3bc27122a2ea5315c17a40dc374"></a><!-- doxytag: member="generics.h::is" ref="a8e91e3bc27122a2ea5315c17a40dc374" args="(T &amp;object)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool is </td>
          <td>(</td>
          <td class="paramtype">T &amp;&#160;</td>
          <td class="paramname"><em>object</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convenience function to validate object assuming it is castable to bool. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">object</td><td>we are testing. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if object valid. </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="a00001.html#a5">datetime.cpp</a>, and <a class="el" href="a00007.html#a4">shell.cpp</a>.</dd>
</dl>
<p>Definition at line <a class="el" href="a00185_source.html#l00422">422</a> of file <a class="el" href="a00185_source.html">generics.h</a>.</p>

</div>
</div>
<a class="anchor" id="a473d3e38a56dcf815158fa4f829874fb"></a><!-- doxytag: member="generics.h::isnull" ref="a473d3e38a56dcf815158fa4f829874fb" args="(T &amp;object)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool isnull </td>
          <td>(</td>
          <td class="paramtype">T &amp;&#160;</td>
          <td class="paramname"><em>object</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convenience function to test pointer object. </p>
<p>This solves issues where some compilers get confused between bool and pointer operators. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">object</td><td>we are testing. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if object points to NULL. </dd></dl>

<p>Definition at line <a class="el" href="a00185_source.html#l00432">432</a> of file <a class="el" href="a00185_source.html">generics.h</a>.</p>

</div>
</div>
<a class="anchor" id="a66838e351a0cd954d38042a2f256a98a"></a><!-- doxytag: member="generics.h::isnullp" ref="a66838e351a0cd954d38042a2f256a98a" args="(T *object)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool isnullp </td>
          <td>(</td>
          <td class="paramtype">T *&#160;</td>
          <td class="paramname"><em>object</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convenience function to test pointer-pointer object. </p>
<p>This solves issues where some compilers get confused between bool and pointer operators. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">object</td><td>we are testing. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if object points to NULL. </dd></dl>

<p>Definition at line <a class="el" href="a00185_source.html#l00442">442</a> of file <a class="el" href="a00185_source.html">generics.h</a>.</p>

</div>
</div>
<a class="anchor" id="afc341c1b5f236384143a01495b99cd26"></a><!-- doxytag: member="generics.h::max" ref="afc341c1b5f236384143a01495b99cd26" args="(T &amp;o1, T &amp;o2)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T&amp;() max </td>
          <td>(</td>
          <td class="paramtype">T &amp;&#160;</td>
          <td class="paramname"><em>o1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T &amp;&#160;</td>
          <td class="paramname"><em>o2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convenience function to return max of two objects. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">o1</td><td>to check. </td></tr>
    <tr><td class="paramname">o2</td><td>to check. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>max object. </dd></dl>

<p>Definition at line <a class="el" href="a00185_source.html#l00461">461</a> of file <a class="el" href="a00185_source.html">generics.h</a>.</p>

</div>
</div>
<a class="anchor" id="a73ed6b056d0035634de3f17eaf74f4a5"></a><!-- doxytag: member="generics.h::min" ref="a73ed6b056d0035634de3f17eaf74f4a5" args="(T &amp;o1, T &amp;o2)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T&amp;() min </td>
          <td>(</td>
          <td class="paramtype">T &amp;&#160;</td>
          <td class="paramname"><em>o1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T &amp;&#160;</td>
          <td class="paramname"><em>o2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convenience function to return min of two objects. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">o1</td><td>to check. </td></tr>
    <tr><td class="paramname">o2</td><td>to check. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>min object. </dd></dl>

<p>Definition at line <a class="el" href="a00185_source.html#l00473">473</a> of file <a class="el" href="a00185_source.html">generics.h</a>.</p>

</div>
</div>
<a class="anchor" id="a21ad5beb7098b50e80d12d0055f0c72d"></a><!-- doxytag: member="generics.h::swap" ref="a21ad5beb7098b50e80d12d0055f0c72d" args="(T &amp;o1, T &amp;o2)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void swap </td>
          <td>(</td>
          <td class="paramtype">T &amp;&#160;</td>
          <td class="paramname"><em>o1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T &amp;&#160;</td>
          <td class="paramname"><em>o2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convenience function to swap objects. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">o1</td><td>to swap. </td></tr>
    <tr><td class="paramname">o2</td><td>to swap. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00185_source.html#l00451">451</a> of file <a class="el" href="a00185_source.html">generics.h</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="a00185_a21ad5beb7098b50e80d12d0055f0c72d_cgraph.png" border="0" usemap="#a00185_a21ad5beb7098b50e80d12d0055f0c72d_cgraph" alt=""/></div>
<map name="a00185_a21ad5beb7098b50e80d12d0055f0c72d_cgraph" id="a00185_a21ad5beb7098b50e80d12d0055f0c72d_cgraph">
<area shape="rect" id="node3" href="a00193.html#a4880da985609d497e8ddb71652ca1e33" title="Portable swap code." alt="" coords="119,5,249,32"/></map>
</div>
</p>

</div>
</div>
</div>
</div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="a00185.html">generics.h</a>      </li>
      <li class="footer">Generated on Wed Apr 13 2011 22:39:47 for ucommon by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
    </ul>
  </div>

</body>
</html>