<!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>CVC3: CVC3::SmartCDO< 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.7.4 --> <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">CVC3 <span id="projectnumber">2.4.1</span></div> </td> </tr> </tbody> </table> </div> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</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 id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="classes.html"><span>Class Index</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 id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="namespaceCVC3.html">CVC3</a> </li> <li class="navelem"><a class="el" href="classCVC3_1_1SmartCDO.html">SmartCDO</a> </li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | <a href="#pub-methods">Public Member Functions</a> | <a href="#pri-attribs">Private Attributes</a> </div> <div class="headertitle"> <div class="title">CVC3::SmartCDO< T > Class Template Reference</div> </div> </div> <div class="contents"> <!-- doxytag: class="CVC3::SmartCDO" --> <p><a class="el" href="classCVC3_1_1SmartCDO.html" title="SmartCDO.">SmartCDO</a>. <a href="classCVC3_1_1SmartCDO.html#details">More...</a></p> <p><code>#include <<a class="el" href="smartcdo_8h_source.html">smartcdo.h</a>></code></p> <p><a href="classCVC3_1_1SmartCDO-members.html">List of all members.</a></p> <h2><a name="nested-classes"></a> Classes</h2> <ul> <li>class <a class="el" href="classCVC3_1_1SmartCDO_1_1RefCDO.html">RefCDO</a> </ul> <h2><a name="pub-methods"></a> Public Member Functions</h2> <ul> <li>bool <a class="el" href="classCVC3_1_1SmartCDO.html#a48c71435d5bc83ad81b427426f5e35b5">isNull</a> () const <dl class="el"><dd class="mdescRight">Check if the <a class="el" href="classCVC3_1_1SmartCDO.html" title="SmartCDO.">SmartCDO</a> object is Null. <a href="#a48c71435d5bc83ad81b427426f5e35b5"></a><br/></dl><li><a class="el" href="classCVC3_1_1SmartCDO.html#a63c7d9400b9a797e0dfaa88cbf2c8e30">SmartCDO</a> () <dl class="el"><dd class="mdescRight">Default constructor: create a Null <a class="el" href="classCVC3_1_1SmartCDO.html" title="SmartCDO.">SmartCDO</a> object. <a href="#a63c7d9400b9a797e0dfaa88cbf2c8e30"></a><br/></dl><li><a class="el" href="classCVC3_1_1SmartCDO.html#a6c2b65b1ba90f4aa09c70376c62d3e9f">SmartCDO</a> (<a class="el" href="classCVC3_1_1Context.html">Context</a> *context) <dl class="el"><dd class="mdescRight">Create and initialize <a class="el" href="classCVC3_1_1SmartCDO.html" title="SmartCDO.">SmartCDO</a> object at the current scope. <a href="#a6c2b65b1ba90f4aa09c70376c62d3e9f"></a><br/></dl><li><a class="el" href="classCVC3_1_1SmartCDO.html#a1e8891be0fab8fc8862e9a52727b8902">SmartCDO</a> (<a class="el" href="classCVC3_1_1Context.html">Context</a> *context, const T &data, int scope=-1) <dl class="el"><dd class="mdescRight">Create and initialize <a class="el" href="classCVC3_1_1SmartCDO.html" title="SmartCDO.">SmartCDO</a> object at the given scope. <a href="#a1e8891be0fab8fc8862e9a52727b8902"></a><br/></dl><li><a class="el" href="classCVC3_1_1SmartCDO.html#a18b47fdbae9d1ae161997b9a1e87f2be">~SmartCDO</a> () <dl class="el"><dd class="mdescRight">Delete. <a href="#a18b47fdbae9d1ae161997b9a1e87f2be"></a><br/></dl><li><a class="el" href="classCVC3_1_1SmartCDO.html#ad363ccdd4e5536e776864250fce1c0a8">SmartCDO</a> (const <a class="el" href="classCVC3_1_1SmartCDO.html">SmartCDO</a>< T > &cdo) <li><a class="el" href="classCVC3_1_1SmartCDO.html">SmartCDO</a>< T > & <a class="el" href="classCVC3_1_1SmartCDO.html#a1589bc71cda9434144ade218eaed42f1">operator=</a> (const <a class="el" href="classCVC3_1_1SmartCDO.html">SmartCDO</a>< T > &cdo) <li>void <a class="el" href="classCVC3_1_1SmartCDO.html#ac84724b532b64e7d594f51a1913f4325">set</a> (const T &data, int scope=-1) const <li>const T & <a class="el" href="classCVC3_1_1SmartCDO.html#a8fa5dfaa8828d4c574321ba4168b25b1">get</a> () const <li><a class="el" href="classCVC3_1_1SmartCDO.html#aeb5873fce50e0d5602d0fef362f5f840">operator T</a> () const <li>const <a class="el" href="classCVC3_1_1SmartCDO.html">SmartCDO</a>< T > & <a class="el" href="classCVC3_1_1SmartCDO.html#ac5ec32b55f7f55205f596d98e6b7b8f4">operator=</a> (const T &data) const </ul> <h2><a name="pri-attribs"></a> Private Attributes</h2> <ul> <li><a class="el" href="classCVC3_1_1SmartCDO_1_1RefCDO.html">RefCDO</a>< T > * <a class="el" href="classCVC3_1_1SmartCDO.html#aa987eaa8eeac0c2bc5e30f155f05acc5">d_data</a> </ul> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><h3>template<class T><br/> class CVC3::SmartCDO< T ></h3> <p><a class="el" href="classCVC3_1_1SmartCDO.html" title="SmartCDO.">SmartCDO</a>. </p> <p>Author: Clark Barrett</p> <p>Created: Fri Nov 12 17:33:31 2004</p> <p>Wrapper for <a class="el" href="classCVC3_1_1CDO.html">CDO</a> which automatically allocates and deletes a pointer to a <a class="el" href="classCVC3_1_1CDO.html">CDO</a>. This allows the copy constructor and operator= to be defined which are especially useful for storing CDO's in vectors. All operations are const to enable use as a member of CDLists.</p> <p>Be careful not to delete <a class="el" href="classCVC3_1_1SmartCDO_1_1RefCDO.html">RefCDO</a> during <a class="el" href="group__ExprStream__Manip.html#gaddb050a787be87116afc51791293d3be" title="Restore the indentation.">pop()</a>, since this messes up the backtracking data structures. We delay the deletion by registering each <a class="el" href="classCVC3_1_1SmartCDO_1_1RefCDO.html">RefCDO</a> to be notified before and after each <a class="el" href="group__ExprStream__Manip.html#gaddb050a787be87116afc51791293d3be" title="Restore the indentation.">pop()</a>. This makes the use of <a class="el" href="classCVC3_1_1SmartCDO.html" title="SmartCDO.">SmartCDO</a> somewhat more expensive, so use it with care. </p> <p>Definition at line <a class="el" href="smartcdo_8h_source.html#l00052">52</a> of file <a class="el" href="smartcdo_8h_source.html">smartcdo.h</a>.</p> </div><hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="a63c7d9400b9a797e0dfaa88cbf2c8e30"></a><!-- doxytag: member="CVC3::SmartCDO::SmartCDO" ref="a63c7d9400b9a797e0dfaa88cbf2c8e30" 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="classCVC3_1_1SmartCDO.html">CVC3::SmartCDO</a>< T >::<a class="el" href="classCVC3_1_1SmartCDO.html">SmartCDO</a> </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Default constructor: create a Null <a class="el" href="classCVC3_1_1SmartCDO.html" title="SmartCDO.">SmartCDO</a> object. </p> <p>Definition at line <a class="el" href="smartcdo_8h_source.html#l00096">96</a> of file <a class="el" href="smartcdo_8h_source.html">smartcdo.h</a>.</p> </div> </div> <a class="anchor" id="a6c2b65b1ba90f4aa09c70376c62d3e9f"></a><!-- doxytag: member="CVC3::SmartCDO::SmartCDO" ref="a6c2b65b1ba90f4aa09c70376c62d3e9f" args="(Context *context)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1SmartCDO.html">CVC3::SmartCDO</a>< T >::<a class="el" href="classCVC3_1_1SmartCDO.html">SmartCDO</a> </td> <td>(</td> <td class="paramtype"><a class="el" href="classCVC3_1_1Context.html">Context</a> * </td> <td class="paramname"><em>context</em></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Create and initialize <a class="el" href="classCVC3_1_1SmartCDO.html" title="SmartCDO.">SmartCDO</a> object at the current scope. </p> <p>Definition at line <a class="el" href="smartcdo_8h_source.html#l00098">98</a> of file <a class="el" href="smartcdo_8h_source.html">smartcdo.h</a>.</p> </div> </div> <a class="anchor" id="a1e8891be0fab8fc8862e9a52727b8902"></a><!-- doxytag: member="CVC3::SmartCDO::SmartCDO" ref="a1e8891be0fab8fc8862e9a52727b8902" args="(Context *context, const T &data, int scope=-1)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1SmartCDO.html">CVC3::SmartCDO</a>< T >::<a class="el" href="classCVC3_1_1SmartCDO.html">SmartCDO</a> </td> <td>(</td> <td class="paramtype"><a class="el" href="classCVC3_1_1Context.html">Context</a> * </td> <td class="paramname"><em>context</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const T & </td> <td class="paramname"><em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>scope</em> = <code>-1</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Create and initialize <a class="el" href="classCVC3_1_1SmartCDO.html" title="SmartCDO.">SmartCDO</a> object at the given scope. </p> <p>Definition at line <a class="el" href="smartcdo_8h_source.html#l00101">101</a> of file <a class="el" href="smartcdo_8h_source.html">smartcdo.h</a>.</p> </div> </div> <a class="anchor" id="a18b47fdbae9d1ae161997b9a1e87f2be"></a><!-- doxytag: member="CVC3::SmartCDO::~SmartCDO" ref="a18b47fdbae9d1ae161997b9a1e87f2be" 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="classCVC3_1_1SmartCDO.html">CVC3::SmartCDO</a>< T >::~<a class="el" href="classCVC3_1_1SmartCDO.html">SmartCDO</a> </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Delete. </p> <p>Definition at line <a class="el" href="smartcdo_8h_source.html#l00104">104</a> of file <a class="el" href="smartcdo_8h_source.html">smartcdo.h</a>.</p> </div> </div> <a class="anchor" id="ad363ccdd4e5536e776864250fce1c0a8"></a><!-- doxytag: member="CVC3::SmartCDO::SmartCDO" ref="ad363ccdd4e5536e776864250fce1c0a8" args="(const SmartCDO< T > &cdo)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1SmartCDO.html">CVC3::SmartCDO</a>< T >::<a class="el" href="classCVC3_1_1SmartCDO.html">SmartCDO</a> </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1SmartCDO.html">SmartCDO</a>< T > & </td> <td class="paramname"><em>cdo</em></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="smartcdo_8h_source.html#l00108">108</a> of file <a class="el" href="smartcdo_8h_source.html">smartcdo.h</a>.</p> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a48c71435d5bc83ad81b427426f5e35b5"></a><!-- doxytag: member="CVC3::SmartCDO::isNull" ref="a48c71435d5bc83ad81b427426f5e35b5" args="() const " --> <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="classCVC3_1_1SmartCDO.html">CVC3::SmartCDO</a>< T >::isNull </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Check if the <a class="el" href="classCVC3_1_1SmartCDO.html" title="SmartCDO.">SmartCDO</a> object is Null. </p> <p>Definition at line <a class="el" href="smartcdo_8h_source.html#l00094">94</a> of file <a class="el" href="smartcdo_8h_source.html">smartcdo.h</a>.</p> <p>Referenced by <a class="el" href="smartcdo_8h_source.html#l00124">CVC3::SmartCDO< Unsigned >::get()</a>, <a class="el" href="smartcdo_8h_source.html#l00111">CVC3::SmartCDO< Unsigned >::operator=()</a>, <a class="el" href="smartcdo_8h_source.html#l00120">CVC3::SmartCDO< Unsigned >::set()</a>, <a class="el" href="smartcdo_8h_source.html#l00108">CVC3::SmartCDO< Unsigned >::SmartCDO()</a>, and <a class="el" href="smartcdo_8h_source.html#l00104">CVC3::SmartCDO< Unsigned >::~SmartCDO()</a>.</p> </div> </div> <a class="anchor" id="a1589bc71cda9434144ade218eaed42f1"></a><!-- doxytag: member="CVC3::SmartCDO::operator=" ref="a1589bc71cda9434144ade218eaed42f1" args="(const SmartCDO< T > &cdo)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCVC3_1_1SmartCDO.html">SmartCDO</a><T>& <a class="el" href="classCVC3_1_1SmartCDO.html">CVC3::SmartCDO</a>< T >::operator= </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCVC3_1_1SmartCDO.html">SmartCDO</a>< T > & </td> <td class="paramname"><em>cdo</em></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="smartcdo_8h_source.html#l00111">111</a> of file <a class="el" href="smartcdo_8h_source.html">smartcdo.h</a>.</p> </div> </div> <a class="anchor" id="ac84724b532b64e7d594f51a1913f4325"></a><!-- doxytag: member="CVC3::SmartCDO::set" ref="ac84724b532b64e7d594f51a1913f4325" args="(const T &data, int scope=-1) const " --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname">void <a class="el" href="classCVC3_1_1SmartCDO.html">CVC3::SmartCDO</a>< T >::set </td> <td>(</td> <td class="paramtype">const T & </td> <td class="paramname"><em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>scope</em> = <code>-1</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="smartcdo_8h_source.html#l00120">120</a> of file <a class="el" href="smartcdo_8h_source.html">smartcdo.h</a>.</p> </div> </div> <a class="anchor" id="a8fa5dfaa8828d4c574321ba4168b25b1"></a><!-- doxytag: member="CVC3::SmartCDO::get" ref="a8fa5dfaa8828d4c574321ba4168b25b1" args="() const " --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname">const T& <a class="el" href="classCVC3_1_1SmartCDO.html">CVC3::SmartCDO</a>< T >::get </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="smartcdo_8h_source.html#l00124">124</a> of file <a class="el" href="smartcdo_8h_source.html">smartcdo.h</a>.</p> </div> </div> <a class="anchor" id="aeb5873fce50e0d5602d0fef362f5f840"></a><!-- doxytag: member="CVC3::SmartCDO::operator T" ref="aeb5873fce50e0d5602d0fef362f5f840" 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="classCVC3_1_1SmartCDO.html">CVC3::SmartCDO</a>< T >::operator T </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="smartcdo_8h_source.html#l00128">128</a> of file <a class="el" href="smartcdo_8h_source.html">smartcdo.h</a>.</p> </div> </div> <a class="anchor" id="ac5ec32b55f7f55205f596d98e6b7b8f4"></a><!-- doxytag: member="CVC3::SmartCDO::operator=" ref="ac5ec32b55f7f55205f596d98e6b7b8f4" args="(const T &data) const " --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname">const <a class="el" href="classCVC3_1_1SmartCDO.html">SmartCDO</a><T>& <a class="el" href="classCVC3_1_1SmartCDO.html">CVC3::SmartCDO</a>< T >::operator= </td> <td>(</td> <td class="paramtype">const T & </td> <td class="paramname"><em>data</em></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="smartcdo_8h_source.html#l00129">129</a> of file <a class="el" href="smartcdo_8h_source.html">smartcdo.h</a>.</p> </div> </div> <hr/><h2>Member Data Documentation</h2> <a class="anchor" id="aa987eaa8eeac0c2bc5e30f155f05acc5"></a><!-- doxytag: member="CVC3::SmartCDO::d_data" ref="aa987eaa8eeac0c2bc5e30f155f05acc5" 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="classCVC3_1_1SmartCDO_1_1RefCDO.html">RefCDO</a><T>* <a class="el" href="classCVC3_1_1SmartCDO.html">CVC3::SmartCDO</a>< T >::<a class="el" href="classCVC3_1_1SmartCDO.html#aa987eaa8eeac0c2bc5e30f155f05acc5">d_data</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="smartcdo_8h_source.html#l00090">90</a> of file <a class="el" href="smartcdo_8h_source.html">smartcdo.h</a>.</p> <p>Referenced by <a class="el" href="smartcdo_8h_source.html#l00124">CVC3::SmartCDO< Unsigned >::get()</a>, <a class="el" href="smartcdo_8h_source.html#l00094">CVC3::SmartCDO< Unsigned >::isNull()</a>, <a class="el" href="smartcdo_8h_source.html#l00111">CVC3::SmartCDO< Unsigned >::operator=()</a>, <a class="el" href="smartcdo_8h_source.html#l00120">CVC3::SmartCDO< Unsigned >::set()</a>, <a class="el" href="smartcdo_8h_source.html#l00098">CVC3::SmartCDO< Unsigned >::SmartCDO()</a>, and <a class="el" href="smartcdo_8h_source.html#l00104">CVC3::SmartCDO< Unsigned >::~SmartCDO()</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="smartcdo_8h_source.html">smartcdo.h</a></li> </ul> </div> <hr class="footer"/><address class="footer"><small>Generated on Wed Sep 7 2011 for CVC3 by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address> </body> </html>