<!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< T > 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 Page</span></a></li> <li><a href="pages.html"><span>Related 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 List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class 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< T > 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 <<a class="el" href="ref_8h_source.html">ref.h</a>></code> <p> <div class="dynheader"> Inheritance diagram for sc::Ref< T >:</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="()" --> </td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#1828f4b9976b995d5c4c7aaf014f4328">Ref</a> ()</td></tr> <tr><td class="mdescLeft"> </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)" --> </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"> </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< T > &a)" --> </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>< T > &a)</td></tr> <tr><td class="mdescLeft"> </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< A > &a)" --> template<class A > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top"> </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>< A > &a)</td></tr> <tr><td class="mdescLeft"> </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"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#c9954e0540adfb9db1a981f10920a3d9">~Ref</a> ()</td></tr> <tr><td class="mdescLeft"> </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 * </td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#ac90e0f3897f362d56a120df60b04e6c">operator-></a> () const </td></tr> <tr><td class="mdescLeft"> </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 * </td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#3124e47ef37912b60d0c8b18f811c16a">pointer</a> () const </td></tr> <tr><td class="mdescLeft"> </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> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#a6f7841ef026f05f542c35da7d1daa07">parentpointer</a> () const </td></tr> <tr><td class="mdescLeft"> </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 " --> </td><td class="memItemRight" valign="bottom"><b>operator T *</b> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">T & </td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#525a11b03e7d697a53196e4e519c9880">operator*</a> () const </td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#f6d0fe28271ddfeef27b2fcba5488131">null</a> () const </td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#d3e4fe174435299fb1444b8294513783">nonnull</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return !null(). <br></td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class A > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">int </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>< A > &a) const </td></tr> <tr><td class="mdescLeft"> </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>=" ref="2e66a93eb751f58609b1082ca8a98ca3" args="(const Ref< A > &a) const " --> template<class A > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">int </td><td class="memTemplItemRight" valign="bottom"><b>operator>=</b> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>< A > &a) const </td></tr> <tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="3da5fbf6322cc6b836a25aa5ccb6ce6c"></a><!-- doxytag: member="sc::Ref::operator<=" ref="3da5fbf6322cc6b836a25aa5ccb6ce6c" args="(const Ref< A > &a) const " --> template<class A > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">int </td><td class="memTemplItemRight" valign="bottom"><b>operator<=</b> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>< A > &a) const </td></tr> <tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="f6c31919176188e597a8ad3ef0b4d6ca"></a><!-- doxytag: member="sc::Ref::operator>" ref="f6c31919176188e597a8ad3ef0b4d6ca" args="(const Ref< A > &a) const " --> template<class A > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">int </td><td class="memTemplItemRight" valign="bottom"><b>operator></b> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>< A > &a) const </td></tr> <tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="05d59c860ef593b61812037c78dcdfea"></a><!-- doxytag: member="sc::Ref::operator<" ref="05d59c860ef593b61812037c78dcdfea" args="(const Ref< A > &a) const " --> template<class A > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">int </td><td class="memTemplItemRight" valign="bottom"><b>operator<</b> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>< A > &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< A > &a) const " --> template<class A > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">int </td><td class="memTemplItemRight" valign="bottom"><b>operator!=</b> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>< A > &a) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </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>< T > &a) const </td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#8f1905a797969203f9c6df42dde6e841">clear</a> ()</td></tr> <tr><td class="mdescLeft"> </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< T > &c)" --> <a class="el" href="classsc_1_1Ref.html">Ref</a>< T > & </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>< T > &c)</td></tr> <tr><td class="mdescLeft"> </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< A > &c)" --> template<class A > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top"><a class="el" href="classsc_1_1Ref.html">Ref</a>< T > & </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>< A > &c)</td></tr> <tr><td class="mdescLeft"> </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<<" ref="ccaa563e6d7f84aa6c73970dfff50562" args="(const RefBase &a)" --> <a class="el" href="classsc_1_1Ref.html">Ref</a>< T > & </td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#ccaa563e6d7f84aa6c73970dfff50562">operator<<</a> (const <a class="el" href="classsc_1_1RefBase.html">RefBase</a> &a)</td></tr> <tr><td class="mdescLeft"> </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>< T > & </td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#56d05df1a6e0f369b075ca3103c2abdf">operator<<</a> (<a class="el" href="classsc_1_1RefCount.html">RefCount</a> *a)</td></tr> <tr><td class="mdescLeft"> </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>< T > & </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"> </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 </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"> </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 </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"> </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 &os) const " --> void </td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1Ref.html#bfdbdc85b08acb445b3aaaf0275a99dd">ref_info</a> (std::ostream &os) const </td></tr> <tr><td class="mdescLeft"> </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 </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"> </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<class T><br> class sc::Ref< T ></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 & 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<class T> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="classsc_1_1Ref.html">sc::Ref</a>< T >::~<a class="el" href="classsc_1_1Ref.html">Ref</a> </td> <td>(</td> <td class="paramname"> </td> <td> ) </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< T > &a) const " --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname">int <a class="el" href="classsc_1_1Ref.html">sc::Ref</a>< T >::compare </td> <td>(</td> <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>< T > & </td> <td class="paramname"> <em>a</em> </td> <td> ) </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<class T> </div> <table class="memname"> <tr> <td class="memname">int <a class="el" href="classsc_1_1Ref.html">sc::Ref</a>< T >::null </td> <td>(</td> <td class="paramname"> </td> <td> ) </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<class T> </div> <table class="memname"> <tr> <td class="memname">T& <a class="el" href="classsc_1_1Ref.html">sc::Ref</a>< T >::operator* </td> <td>(</td> <td class="paramname"> </td> <td> ) </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->" ref="ac90e0f3897f362d56a120df60b04e6c" args="() const " --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname">T* <a class="el" href="classsc_1_1Ref.html">sc::Ref</a>< T >::operator-> </td> <td>(</td> <td class="paramname"> </td> <td> ) </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<<" ref="56d05df1a6e0f369b075ca3103c2abdf" args="(RefCount *a)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="classsc_1_1Ref.html">Ref</a><T>& <a class="el" href="classsc_1_1Ref.html">sc::Ref</a>< T >::operator<< </td> <td>(</td> <td class="paramtype"><a class="el" href="classsc_1_1RefCount.html">RefCount</a> * </td> <td class="paramname"> <em>a</em> </td> <td> ) </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< A > &a) const " --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <div class="memtemplate"> template<class A > </div> <table class="memname"> <tr> <td class="memname">int <a class="el" href="classsc_1_1Ref.html">sc::Ref</a>< T >::operator== </td> <td>(</td> <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>< A > & </td> <td class="paramname"> <em>a</em> </td> <td> ) </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>