Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 247b28499c443e092731ffba814075f2 > files > 635

mpqc-html-2.3.1-9mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPQC: sc::Ref&lt; T &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><b>sc</b>::<a class="el" href="classsc_1_1Ref.html">Ref</a>
  </div>
</div>
<div class="contents">
<h1>sc::Ref&lt; T &gt; Class Template Reference</h1><!-- doxytag: class="sc::Ref" --><!-- doxytag: inherits="sc::RefBase" -->A template class that maintains references counts.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="ref_8h_source.html">ref.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for sc::Ref&lt; T &gt;:</div>
<div class="dynsection">

<p><center><img src="classsc_1_1Ref.png" usemap="#sc::Ref< T >_map" border="0" alt=""></center>
<map name="sc::Ref< T >_map">
<area href="classsc_1_1RefBase.html" alt="sc::RefBase" shape="rect" coords="0,0,81,24">
</map>
</div>

<p>
<a href="classsc_1_1Ref-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1828f4b9976b995d5c4c7aaf014f4328"></a><!-- doxytag: member="sc::Ref::Ref" ref="1828f4b9976b995d5c4c7aaf014f4328" args="()" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#1828f4b9976b995d5c4c7aaf014f4328">Ref</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a reference to a null object. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="71cadabc8f9cdf09cf65c52200b2befa"></a><!-- doxytag: member="sc::Ref::Ref" ref="71cadabc8f9cdf09cf65c52200b2befa" args="(T *a)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#71cadabc8f9cdf09cf65c52200b2befa">Ref</a> (T *a)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a reference to the object a. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6fbb70d4053408850b9d98c055c93131"></a><!-- doxytag: member="sc::Ref::Ref" ref="6fbb70d4053408850b9d98c055c93131" args="(const Ref&lt; T &gt; &amp;a)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#6fbb70d4053408850b9d98c055c93131">Ref</a> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; T &gt; &amp;a)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a reference to the object referred to by a. <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="f58abbc8993af51de6d977b2d6c16986"></a><!-- doxytag: member="sc::Ref::Ref" ref="f58abbc8993af51de6d977b2d6c16986" args="(const Ref&lt; A &gt; &amp;a)" -->
template&lt;class A &gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#f58abbc8993af51de6d977b2d6c16986">Ref</a> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; A &gt; &amp;a)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a reference to the object referred to by a. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#c9954e0540adfb9db1a981f10920a3d9">~Ref</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a reference to the object a.  <a href="#c9954e0540adfb9db1a981f10920a3d9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">T *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#ac90e0f3897f362d56a120df60b04e6c">operator-&gt;</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the reference counted object.  <a href="#ac90e0f3897f362d56a120df60b04e6c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3124e47ef37912b60d0c8b18f811c16a"></a><!-- doxytag: member="sc::Ref::pointer" ref="3124e47ef37912b60d0c8b18f811c16a" args="() const " -->
T *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#3124e47ef37912b60d0c8b18f811c16a">pointer</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a pointer the reference counted object. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a6f7841ef026f05f542c35da7d1daa07"></a><!-- doxytag: member="sc::Ref::parentpointer" ref="a6f7841ef026f05f542c35da7d1daa07" args="() const " -->
<a class="el" href="classsc_1_1RefCount.html">RefCount</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#a6f7841ef026f05f542c35da7d1daa07">parentpointer</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements the parentpointer pure virtual in the base class. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c5c7302644c447671df77610dff9380f"></a><!-- doxytag: member="sc::Ref::operator T *" ref="c5c7302644c447671df77610dff9380f" args="() const " -->
&nbsp;</td><td class="memItemRight" valign="bottom"><b>operator T *</b> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">T &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#525a11b03e7d697a53196e4e519c9880">operator*</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a C++ reference to the reference counted object.  <a href="#525a11b03e7d697a53196e4e519c9880"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#f6d0fe28271ddfeef27b2fcba5488131">null</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return 1 if this is a reference to a null object.  <a href="#f6d0fe28271ddfeef27b2fcba5488131"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d3e4fe174435299fb1444b8294513783"></a><!-- doxytag: member="sc::Ref::nonnull" ref="d3e4fe174435299fb1444b8294513783" args="() const " -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#d3e4fe174435299fb1444b8294513783">nonnull</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return !null(). <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class A &gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#abbb5e1be215f042352eb14192d264b2">operator==</a> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; A &gt; &amp;a) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A variety of ordering and equivalence operators are provided using the <a class="el" href="classsc_1_1Identity.html" title="Identity gives objects a unique identity and ordering relationship relative to all...">Identity</a> class.  <a href="#abbb5e1be215f042352eb14192d264b2"></a><br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="2e66a93eb751f58609b1082ca8a98ca3"></a><!-- doxytag: member="sc::Ref::operator&gt;=" ref="2e66a93eb751f58609b1082ca8a98ca3" args="(const Ref&lt; A &gt; &amp;a) const " -->
template&lt;class A &gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><b>operator&gt;=</b> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; A &gt; &amp;a) const </td></tr>

<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="3da5fbf6322cc6b836a25aa5ccb6ce6c"></a><!-- doxytag: member="sc::Ref::operator&lt;=" ref="3da5fbf6322cc6b836a25aa5ccb6ce6c" args="(const Ref&lt; A &gt; &amp;a) const " -->
template&lt;class A &gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><b>operator&lt;=</b> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; A &gt; &amp;a) const </td></tr>

<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="f6c31919176188e597a8ad3ef0b4d6ca"></a><!-- doxytag: member="sc::Ref::operator&gt;" ref="f6c31919176188e597a8ad3ef0b4d6ca" args="(const Ref&lt; A &gt; &amp;a) const " -->
template&lt;class A &gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><b>operator&gt;</b> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; A &gt; &amp;a) const </td></tr>

<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="05d59c860ef593b61812037c78dcdfea"></a><!-- doxytag: member="sc::Ref::operator&lt;" ref="05d59c860ef593b61812037c78dcdfea" args="(const Ref&lt; A &gt; &amp;a) const " -->
template&lt;class A &gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><b>operator&lt;</b> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; A &gt; &amp;a) const </td></tr>

<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="7e28158e743b2568551f5a8b21443c03"></a><!-- doxytag: member="sc::Ref::operator!=" ref="7e28158e743b2568551f5a8b21443c03" args="(const Ref&lt; A &gt; &amp;a) const " -->
template&lt;class A &gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><b>operator!=</b> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; A &gt; &amp;a) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#44e2a7a6b45c2683a21ee644e8e1c65a">compare</a> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; T &gt; &amp;a) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two objects returning -1, 0, or 1.  <a href="#44e2a7a6b45c2683a21ee644e8e1c65a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8f1905a797969203f9c6df42dde6e841"></a><!-- doxytag: member="sc::Ref::clear" ref="8f1905a797969203f9c6df42dde6e841" args="()" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#8f1905a797969203f9c6df42dde6e841">clear</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Refer to the null object. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6dabfa060f52834ac0cb32917bac77e7"></a><!-- doxytag: member="sc::Ref::operator=" ref="6dabfa060f52834ac0cb32917bac77e7" args="(const Ref&lt; T &gt; &amp;c)" -->
<a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#6dabfa060f52834ac0cb32917bac77e7">operator=</a> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; T &gt; &amp;c)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assignment to c. <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="1344c7311cfe5b0dadd230fc7e386e9a"></a><!-- doxytag: member="sc::Ref::operator=" ref="1344c7311cfe5b0dadd230fc7e386e9a" args="(const Ref&lt; A &gt; &amp;c)" -->
template&lt;class A &gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top"><a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; T &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#1344c7311cfe5b0dadd230fc7e386e9a">operator=</a> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; A &gt; &amp;c)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assignment to c. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ccaa563e6d7f84aa6c73970dfff50562"></a><!-- doxytag: member="sc::Ref::operator&lt;&lt;" ref="ccaa563e6d7f84aa6c73970dfff50562" args="(const RefBase &amp;a)" -->
<a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#ccaa563e6d7f84aa6c73970dfff50562">operator&lt;&lt;</a> (const <a class="el" href="classsc_1_1RefBase.html">RefBase</a> &amp;a)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assignment to the object that a references using dynamic_cast. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#56d05df1a6e0f369b075ca3103c2abdf">operator&lt;&lt;</a> (<a class="el" href="classsc_1_1RefCount.html">RefCount</a> *a)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assigns to the given base class pointer using dynamic_cast.  <a href="#56d05df1a6e0f369b075ca3103c2abdf"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e2464c3e4df7b366e93f1680b46d39ae"></a><!-- doxytag: member="sc::Ref::operator=" ref="e2464c3e4df7b366e93f1680b46d39ae" args="(T *cr)" -->
<a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#e2464c3e4df7b366e93f1680b46d39ae">operator=</a> (T *cr)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assignment to cr. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1de448176a708e014cd3f920f823d3cc"></a><!-- doxytag: member="sc::Ref::assign_pointer" ref="1de448176a708e014cd3f920f823d3cc" args="(T *cr)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#1de448176a708e014cd3f920f823d3cc">assign_pointer</a> (T *cr)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assignment to cr. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6bc17e0d67e20e242b72925a997ca53c"></a><!-- doxytag: member="sc::Ref::check_pointer" ref="6bc17e0d67e20e242b72925a997ca53c" args="() const " -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#6bc17e0d67e20e242b72925a997ca53c">check_pointer</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check the validity of the pointer. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="bfdbdc85b08acb445b3aaaf0275a99dd"></a><!-- doxytag: member="sc::Ref::ref_info" ref="bfdbdc85b08acb445b3aaaf0275a99dd" args="(std::ostream &amp;os) const " -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#bfdbdc85b08acb445b3aaaf0275a99dd">ref_info</a> (std::ostream &amp;os) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Print information about the reference to os. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d25c0df45fc0682c2724dcc3c08f465e"></a><!-- doxytag: member="sc::Ref::warn" ref="d25c0df45fc0682c2724dcc3c08f465e" args="(const char *s) const " -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#d25c0df45fc0682c2724dcc3c08f465e">warn</a> (const char *s) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Print a warning concerning the reference. <br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<h3>template&lt;class T&gt;<br>
 class sc::Ref&lt; T &gt;</h3>

A template class that maintains references counts. 
<p>
Several of these operations can cause a reference to an object to be replaced by a reference to a different object. If a reference to a nonnull object is eliminated, the object's reference count is decremented and the object is deleted if the reference count becomes zero.<p>
There also may be a to convert to T*, where T is the type of the object which <a class="el" href="classsc_1_1Ref.html" title="A template class that maintains references counts.">Ref</a> references. Some compilers have bugs that prevent the use of operator T*(). The <a class="el" href="classsc_1_1Ref.html#3124e47ef37912b60d0c8b18f811c16a" title="Returns a pointer the reference counted object.">pointer()</a> member should be used instead. <hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="c9954e0540adfb9db1a981f10920a3d9"></a><!-- doxytag: member="sc::Ref::~Ref" ref="c9954e0540adfb9db1a981f10920a3d9" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classsc_1_1Ref.html">sc::Ref</a>&lt; T &gt;::~<a class="el" href="classsc_1_1Ref.html">Ref</a>           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a reference to the object a. 
<p>
Do a dynamic_cast to convert a to the appropiate type. Create a reference to the object a. Do a dynamic_cast to convert a to the appropiate type. Delete this reference to the object. Decrement the object's reference count and delete the object if the count is zero. 
</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="44e2a7a6b45c2683a21ee644e8e1c65a"></a><!-- doxytag: member="sc::Ref::compare" ref="44e2a7a6b45c2683a21ee644e8e1c65a" args="(const Ref&lt; T &gt; &amp;a) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classsc_1_1Ref.html">sc::Ref</a>&lt; T &gt;::compare           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>a</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Compare two objects returning -1, 0, or 1. 
<p>
Similar to the C library routine strcmp. 
</div>
</div><p>
<a class="anchor" name="f6d0fe28271ddfeef27b2fcba5488131"></a><!-- doxytag: member="sc::Ref::null" ref="f6d0fe28271ddfeef27b2fcba5488131" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classsc_1_1Ref.html">sc::Ref</a>&lt; T &gt;::null           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return 1 if this is a reference to a null object. 
<p>
Otherwise return 0. 
</div>
</div><p>
<a class="anchor" name="525a11b03e7d697a53196e4e519c9880"></a><!-- doxytag: member="sc::Ref::operator*" ref="525a11b03e7d697a53196e4e519c9880" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T&amp; <a class="el" href="classsc_1_1Ref.html">sc::Ref</a>&lt; T &gt;::operator*           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns a C++ reference to the reference counted object. 
<p>
The behaviour is undefined if the object is null. 
</div>
</div><p>
<a class="anchor" name="ac90e0f3897f362d56a120df60b04e6c"></a><!-- doxytag: member="sc::Ref::operator&#45;&gt;" ref="ac90e0f3897f362d56a120df60b04e6c" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T* <a class="el" href="classsc_1_1Ref.html">sc::Ref</a>&lt; T &gt;::operator-&gt;           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the reference counted object. 
<p>
The behaviour is undefined if the object is null. 
</div>
</div><p>
<a class="anchor" name="56d05df1a6e0f369b075ca3103c2abdf"></a><!-- doxytag: member="sc::Ref::operator&lt;&lt;" ref="56d05df1a6e0f369b075ca3103c2abdf" args="(RefCount *a)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classsc_1_1Ref.html">Ref</a>&lt;T&gt;&amp; <a class="el" href="classsc_1_1Ref.html">sc::Ref</a>&lt; T &gt;::operator&lt;&lt;           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classsc_1_1RefCount.html">RefCount</a> *&nbsp;</td>
          <td class="paramname"> <em>a</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Assigns to the given base class pointer using dynamic_cast. 
<p>
If the dynamic_cast fails and the argument is nonnull and has a reference count of zero, then it is deleted. 
<p>Reimplemented in <a class="el" href="classsc_1_1RefSCDimension.html#9712e2b4332876ff89c764521ee9cca8">sc::RefSCDimension</a>.</p>

</div>
</div><p>
<a class="anchor" name="abbb5e1be215f042352eb14192d264b2"></a><!-- doxytag: member="sc::Ref::operator==" ref="abbb5e1be215f042352eb14192d264b2" args="(const Ref&lt; A &gt; &amp;a) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
<div class="memtemplate">
template&lt;class A &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classsc_1_1Ref.html">sc::Ref</a>&lt; T &gt;::operator==           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; A &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>a</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
A variety of ordering and equivalence operators are provided using the <a class="el" href="classsc_1_1Identity.html" title="Identity gives objects a unique identity and ordering relationship relative to all...">Identity</a> class. 
<p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="ref_8h_source.html">ref.h</a></ul>
</div>
<hr>
<address>
<small>

Generated at Wed Oct 14 14:12:17 2009 for <a
href="http://www.mpqc.org">MPQC</a>
2.3.1 using the documentation package <a
href="http://www.doxygen.org">Doxygen</a>
1.5.9.

</small>
</address>
</body>
</html>