<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta name="robots" content="noindex"> <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>ITK: itk::SmartPointerForwardReference< T > Class Template Reference</title> <link href="DoxygenStyle.css" rel="stylesheet" type="text/css"> </head><body bgcolor="#ffffff"> <!-- Section customized for INSIGHT : Tue Jul 17 01:02:45 2001 --> <center> <a href="index.html" class="qindex">Main Page</a> <a href="modules.html" class="qindex">Groups</a> <a href="namespaces.html" class="qindex">Namespace List</a> <a href="hierarchy.html" class="qindex">Class Hierarchy</a> <a href="classes.html" class="qindex">Alphabetical List</a> <a href="annotated.html" class="qindex">Compound List</a> <a href="files.html" class="qindex">File List</a> <a href="namespacemembers.html" class="qindex">Namespace Members</a> <a href="functions.html" class="qindex">Compound Members</a> <a href="globals.html" class="qindex">File Members</a> <a href="pages.html" class="qindex">Concepts</a></center> <!-- Generated by Doxygen 1.5.9 --> <div class="navpath"><a class="el" href="namespaceitk.html">itk</a>::<a class="el" href="classitk_1_1SmartPointerForwardReference.html">SmartPointerForwardReference</a> </div> <div class="contents"> <h1>itk::SmartPointerForwardReference< T > Class Template Reference<br> <small> [<a class="el" href="group__ITKSystemObjects.html">ITK System Objects</a>, <a class="el" href="group__DataAccess.html">Data Access Objects</a>]</small> </h1><!-- doxytag: class="itk::SmartPointerForwardReference" -->Implements transparent reference counting in situations where forward references / cyclic include dependencies are a problem. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="itkSmartPointerForwardReference_8h_source.html">itkSmartPointerForwardReference.h</a>></code> <p> <p> <a href="classitk_1_1SmartPointerForwardReference-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">T * </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1SmartPointerForwardReference.html#20f450dcd41abf0c53cf47cac82adc7e">GetPointer</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1SmartPointerForwardReference.html#bd5dc8314970b6abc8aa4ffc44eabff1">operator T *</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">T * </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1SmartPointerForwardReference.html#15f8c3287df6a86aab38823acce6bebb">operator-></a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1SmartPointerForwardReference.html#db6ba16fb2b01713eccb4fb7f64afbb8">operator<</a> (const <a class="el" href="classitk_1_1SmartPointerForwardReference.html">SmartPointerForwardReference</a> &r)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1SmartPointerForwardReference.html#8cc6947a4cf0dcf1dc9bb7b4c4a35fea">operator<=</a> (const <a class="el" href="classitk_1_1SmartPointerForwardReference.html">SmartPointerForwardReference</a> &r)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classitk_1_1SmartPointerForwardReference.html">SmartPointerForwardReference</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1SmartPointerForwardReference.html#6c82af4f417bdaa5a1a159a91695283e">operator=</a> (T *r)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classitk_1_1SmartPointerForwardReference.html">SmartPointerForwardReference</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1SmartPointerForwardReference.html#30d93f60db0e7fbd1b0b6cfffc4fa497">operator=</a> (const <a class="el" href="classitk_1_1WeakPointer.html">WeakPointer</a>< T > &r)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classitk_1_1SmartPointerForwardReference.html">SmartPointerForwardReference</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1SmartPointerForwardReference.html#044039064109177e0781711bc0f3c0ce">operator=</a> (const <a class="el" href="classitk_1_1SmartPointerForwardReference.html">SmartPointerForwardReference</a> &r)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1SmartPointerForwardReference.html#aaef0c464ee2d3f9f075b82d0d2c6347">operator></a> (const <a class="el" href="classitk_1_1SmartPointerForwardReference.html">SmartPointerForwardReference</a> &r)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1SmartPointerForwardReference.html#b959fb20fa702e6f0b96bf94972f2c49">operator>=</a> (const <a class="el" href="classitk_1_1SmartPointerForwardReference.html">SmartPointerForwardReference</a> &r)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">T * </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1SmartPointerForwardReference.html#ecf7ec95d2d464320ab951bf472c3dfd">Print</a> (std::ostream &os) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1SmartPointerForwardReference.html#e3b5b51a1742dcd88403561dca87edeb">SmartPointerForwardReference</a> (T *p)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1SmartPointerForwardReference.html#17395a8ae743c39e410f866320f364e5">SmartPointerForwardReference</a> (const <a class="el" href="classitk_1_1WeakPointer.html">WeakPointer</a>< T > &p)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1SmartPointerForwardReference.html#2e7ca814da8934059438552722c31016">SmartPointerForwardReference</a> (const <a class="el" href="classitk_1_1SmartPointerForwardReference.html">SmartPointerForwardReference</a>< T > &p)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1SmartPointerForwardReference.html#ce9969d6dc7f708fe7905cbc8b9e5e65">SmartPointerForwardReference</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classitk_1_1SmartPointerForwardReference.html#cff40b2abff92594d99c4303c708643b">~SmartPointerForwardReference</a> ()</td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> <h3>template<class T><br> class itk::SmartPointerForwardReference< T ></h3> Implements transparent reference counting in situations where forward references / cyclic include dependencies are a problem. <p> <a class="el" href="classitk_1_1SmartPointerForwardReference.html" title="Implements transparent reference counting in situations where forward references...">SmartPointerForwardReference</a> implements reference counting by overloading operator -> (and *) among others. This allows natural interface to the class referred to by the pointer without having to invoke special Register()/UnRegister() methods directly.<p> This class is nearly identical to itkSmartPointer except that is used in situations where forward references or cyclic include dependencies become a problem. This class requires that the .h file is included in the .h file of the class using it, and the .txx file is included in the .cxx/.txx file of the class using it. (Make sure that SmartPointerForwardReference.txx is included last in the .cxx/.txx list of includes.) <p>Definition at line <a class="el" href="itkSmartPointerForwardReference_8h_source.html#l00048">48</a> of file <a class="el" href="itkSmartPointerForwardReference_8h_source.html">itkSmartPointerForwardReference.h</a>.</p> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="ce9969d6dc7f708fe7905cbc8b9e5e65"></a><!-- doxytag: member="itk::SmartPointerForwardReference::SmartPointerForwardReference" ref="ce9969d6dc7f708fe7905cbc8b9e5e65" 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="classitk_1_1SmartPointerForwardReference.html">itk::SmartPointerForwardReference</a>< T >::<a class="el" href="classitk_1_1SmartPointerForwardReference.html">SmartPointerForwardReference</a> </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Constructor <p>Definition at line <a class="el" href="itkSmartPointerForwardReference_8h_source.html#l00052">52</a> of file <a class="el" href="itkSmartPointerForwardReference_8h_source.html">itkSmartPointerForwardReference.h</a>.</p> </div> </div><p> <a class="anchor" name="2e7ca814da8934059438552722c31016"></a><!-- doxytag: member="itk::SmartPointerForwardReference::SmartPointerForwardReference" ref="2e7ca814da8934059438552722c31016" args="(const SmartPointerForwardReference< T > &p)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="classitk_1_1SmartPointerForwardReference.html">itk::SmartPointerForwardReference</a>< T >::<a class="el" href="classitk_1_1SmartPointerForwardReference.html">SmartPointerForwardReference</a> </td> <td>(</td> <td class="paramtype">const <a class="el" href="classitk_1_1SmartPointerForwardReference.html">SmartPointerForwardReference</a>< T > & </td> <td class="paramname"> <em>p</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Const constructor </div> </div><p> <a class="anchor" name="17395a8ae743c39e410f866320f364e5"></a><!-- doxytag: member="itk::SmartPointerForwardReference::SmartPointerForwardReference" ref="17395a8ae743c39e410f866320f364e5" args="(const WeakPointer< T > &p)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="classitk_1_1SmartPointerForwardReference.html">itk::SmartPointerForwardReference</a>< T >::<a class="el" href="classitk_1_1SmartPointerForwardReference.html">SmartPointerForwardReference</a> </td> <td>(</td> <td class="paramtype">const <a class="el" href="classitk_1_1WeakPointer.html">WeakPointer</a>< T > & </td> <td class="paramname"> <em>p</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Construct from a <a class="el" href="classitk_1_1WeakPointer.html" title="Implements a weak reference to an object.">WeakPointer</a> </div> </div><p> <a class="anchor" name="e3b5b51a1742dcd88403561dca87edeb"></a><!-- doxytag: member="itk::SmartPointerForwardReference::SmartPointerForwardReference" ref="e3b5b51a1742dcd88403561dca87edeb" args="(T *p)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="classitk_1_1SmartPointerForwardReference.html">itk::SmartPointerForwardReference</a>< T >::<a class="el" href="classitk_1_1SmartPointerForwardReference.html">SmartPointerForwardReference</a> </td> <td>(</td> <td class="paramtype">T * </td> <td class="paramname"> <em>p</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Constructor to pointer p </div> </div><p> <a class="anchor" name="cff40b2abff92594d99c4303c708643b"></a><!-- doxytag: member="itk::SmartPointerForwardReference::~SmartPointerForwardReference" ref="cff40b2abff92594d99c4303c708643b" 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="classitk_1_1SmartPointerForwardReference.html">itk::SmartPointerForwardReference</a>< T >::~<a class="el" href="classitk_1_1SmartPointerForwardReference.html">SmartPointerForwardReference</a> </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Destructor </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="20f450dcd41abf0c53cf47cac82adc7e"></a><!-- doxytag: member="itk::SmartPointerForwardReference::GetPointer" ref="20f450dcd41abf0c53cf47cac82adc7e" 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="classitk_1_1SmartPointerForwardReference.html">itk::SmartPointerForwardReference</a>< T >::GetPointer </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p> Access function to pointer. </div> </div><p> <a class="anchor" name="bd5dc8314970b6abc8aa4ffc44eabff1"></a><!-- doxytag: member="itk::SmartPointerForwardReference::operator T *" ref="bd5dc8314970b6abc8aa4ffc44eabff1" args="() const " --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="classitk_1_1SmartPointerForwardReference.html">itk::SmartPointerForwardReference</a>< T >::operator T * </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p> Return pointer to object. </div> </div><p> <a class="anchor" name="15f8c3287df6a86aab38823acce6bebb"></a><!-- doxytag: member="itk::SmartPointerForwardReference::operator->" ref="15f8c3287df6a86aab38823acce6bebb" 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="classitk_1_1SmartPointerForwardReference.html">itk::SmartPointerForwardReference</a>< T >::operator-> </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p> Overload operator -> </div> </div><p> <a class="anchor" name="db6ba16fb2b01713eccb4fb7f64afbb8"></a><!-- doxytag: member="itk::SmartPointerForwardReference::operator<" ref="db6ba16fb2b01713eccb4fb7f64afbb8" args="(const SmartPointerForwardReference &r)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classitk_1_1SmartPointerForwardReference.html">itk::SmartPointerForwardReference</a>< T >::operator< </td> <td>(</td> <td class="paramtype">const <a class="el" href="classitk_1_1SmartPointerForwardReference.html">SmartPointerForwardReference</a>< T > & </td> <td class="paramname"> <em>r</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Comparison of pointers. Less than comparison. </div> </div><p> <a class="anchor" name="8cc6947a4cf0dcf1dc9bb7b4c4a35fea"></a><!-- doxytag: member="itk::SmartPointerForwardReference::operator<=" ref="8cc6947a4cf0dcf1dc9bb7b4c4a35fea" args="(const SmartPointerForwardReference &r)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classitk_1_1SmartPointerForwardReference.html">itk::SmartPointerForwardReference</a>< T >::operator<= </td> <td>(</td> <td class="paramtype">const <a class="el" href="classitk_1_1SmartPointerForwardReference.html">SmartPointerForwardReference</a>< T > & </td> <td class="paramname"> <em>r</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Comparison of pointers. Less than or equal to comparison. </div> </div><p> <a class="anchor" name="6c82af4f417bdaa5a1a159a91695283e"></a><!-- doxytag: member="itk::SmartPointerForwardReference::operator=" ref="6c82af4f417bdaa5a1a159a91695283e" args="(T *r)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="classitk_1_1SmartPointerForwardReference.html">SmartPointerForwardReference</a>& <a class="el" href="classitk_1_1SmartPointerForwardReference.html">itk::SmartPointerForwardReference</a>< T >::operator= </td> <td>(</td> <td class="paramtype">T * </td> <td class="paramname"> <em>r</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Overload operator assignment. </div> </div><p> <a class="anchor" name="30d93f60db0e7fbd1b0b6cfffc4fa497"></a><!-- doxytag: member="itk::SmartPointerForwardReference::operator=" ref="30d93f60db0e7fbd1b0b6cfffc4fa497" args="(const WeakPointer< T > &r)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="classitk_1_1SmartPointerForwardReference.html">SmartPointerForwardReference</a>& <a class="el" href="classitk_1_1SmartPointerForwardReference.html">itk::SmartPointerForwardReference</a>< T >::operator= </td> <td>(</td> <td class="paramtype">const <a class="el" href="classitk_1_1WeakPointer.html">WeakPointer</a>< T > & </td> <td class="paramname"> <em>r</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Overload operator assignment. </div> </div><p> <a class="anchor" name="044039064109177e0781711bc0f3c0ce"></a><!-- doxytag: member="itk::SmartPointerForwardReference::operator=" ref="044039064109177e0781711bc0f3c0ce" args="(const SmartPointerForwardReference &r)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="classitk_1_1SmartPointerForwardReference.html">SmartPointerForwardReference</a>& <a class="el" href="classitk_1_1SmartPointerForwardReference.html">itk::SmartPointerForwardReference</a>< T >::operator= </td> <td>(</td> <td class="paramtype">const <a class="el" href="classitk_1_1SmartPointerForwardReference.html">SmartPointerForwardReference</a>< T > & </td> <td class="paramname"> <em>r</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Overload operator assignment. </div> </div><p> <a class="anchor" name="aaef0c464ee2d3f9f075b82d0d2c6347"></a><!-- doxytag: member="itk::SmartPointerForwardReference::operator>" ref="aaef0c464ee2d3f9f075b82d0d2c6347" args="(const SmartPointerForwardReference &r)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classitk_1_1SmartPointerForwardReference.html">itk::SmartPointerForwardReference</a>< T >::operator> </td> <td>(</td> <td class="paramtype">const <a class="el" href="classitk_1_1SmartPointerForwardReference.html">SmartPointerForwardReference</a>< T > & </td> <td class="paramname"> <em>r</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Comparison of pointers. Greater than comparison. </div> </div><p> <a class="anchor" name="b959fb20fa702e6f0b96bf94972f2c49"></a><!-- doxytag: member="itk::SmartPointerForwardReference::operator>=" ref="b959fb20fa702e6f0b96bf94972f2c49" args="(const SmartPointerForwardReference &r)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classitk_1_1SmartPointerForwardReference.html">itk::SmartPointerForwardReference</a>< T >::operator>= </td> <td>(</td> <td class="paramtype">const <a class="el" href="classitk_1_1SmartPointerForwardReference.html">SmartPointerForwardReference</a>< T > & </td> <td class="paramname"> <em>r</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Comparison of pointers. Greater than or equal to comparison. </div> </div><p> <a class="anchor" name="ecf7ec95d2d464320ab951bf472c3dfd"></a><!-- doxytag: member="itk::SmartPointerForwardReference::Print" ref="ecf7ec95d2d464320ab951bf472c3dfd" args="(std::ostream &os) 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="classitk_1_1SmartPointerForwardReference.html">itk::SmartPointerForwardReference</a>< T >::Print </td> <td>(</td> <td class="paramtype">std::ostream & </td> <td class="paramname"> <em>os</em> </td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p> <a class="el" href="namespaceitk_1_1Function.html">Function</a> to print object pointed to </div> </div><p> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="itkSmartPointerForwardReference_8h_source.html">itkSmartPointerForwardReference.h</a></ul> </div> <hr><address><small> Generated at Fri May 8 07:04:51 2009 for ITK by <a href="http://www.stack.nl/~dimitri/doxygen/index.html"> <img src="http://www.stack.nl/~dimitri/doxygen/doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53> </a> 1.5.9 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>, © 1997-2000</small></address> </body> </html>