root/library/doc/html/classbdm_1_1object__ptr.html @ 651

Revision 651, 19.3 kB (checked in by mido, 15 years ago)

\doc directory cleaned a bit

RevLine 
[651]1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
[538]3<title>mixpp: bdm::object_ptr&lt; T &gt; Class Template Reference</title>
[651]4<link href="tabs.css" rel="stylesheet" type="text/css">
5<link href="doxygen.css" rel="stylesheet" type="text/css">
6</head><body>
7<!-- Generated by Doxygen 1.5.9 -->
[472]8<script type="text/javascript">
9<!--
10function changeDisplayState (e){
11  var num=this.id.replace(/[^[0-9]/g,'');
12  var button=this.firstChild;
13  var sectionDiv=document.getElementById('dynsection'+num);
14  if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
15    sectionDiv.style.display='block';
16    button.src='open.gif';
17  }else{
18    sectionDiv.style.display='none';
19    button.src='closed.gif';
20  }
21}
22function initDynSections(){
23  var divs=document.getElementsByTagName('div');
24  var sectionCounter=1;
25  for(var i=0;i<divs.length-1;i++){
26    if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
27      var header=divs[i];
28      var section=divs[i+1];
29      var button=header.firstChild;
30      if (button!='IMG'){
31        divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
32        button=document.createElement('img');
33        divs[i].insertBefore(button,divs[i].firstChild);
34      }
35      header.style.cursor='pointer';
36      header.onclick=changeDisplayState;
37      header.id='dynheader'+sectionCounter;
38      button.src='closed.gif';
39      section.id='dynsection'+sectionCounter;
40      section.style.display='none';
41      section.style.marginLeft='14px';
42      sectionCounter++;
43    }
44  }
45}
46window.onload = initDynSections;
47-->
48</script>
49<div class="navigation" id="top">
50  <div class="tabs">
51    <ul>
52      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
53      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
54      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
55      <li><a href="files.html"><span>Files</span></a></li>
56    </ul>
57  </div>
58  <div class="tabs">
59    <ul>
60      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
61      <li><a href="classes.html"><span>Class&nbsp;Index</span></a></li>
62      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
63      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
64    </ul>
65  </div>
[538]66  <div class="navpath"><b>bdm</b>::<a class="el" href="classbdm_1_1object__ptr.html">object_ptr</a>
[472]67  </div>
68</div>
69<div class="contents">
[651]70<h1>bdm::object_ptr&lt; T &gt; Class Template Reference</h1><!-- doxytag: class="bdm::object_ptr" --><!-- doxytag: inherits="shared_ptr&lt; T &gt;" -->A wrapper of <a class="el" href="classbdm_1_1shared__ptr.html" title="A naive implementation of roughly a subset of the std::tr1::shared_ptr spec.">shared_ptr</a> which is never empty. 
71<a href="#_details">More...</a>
72<p>
73<code>#include &lt;<a class="el" href="shared__ptr_8h_source.html">shared_ptr.h</a>&gt;</code>
74<p>
[472]75
[651]76<p>
77<a href="classbdm_1_1object__ptr-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
78<tr><td></td></tr>
79<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
80<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1object__ptr.html#9f1016ff2bbfa497d1cc0a4497c1fba4">object_ptr</a> ()</td></tr>
[616]81
[651]82<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default constructor.  <a href="#9f1016ff2bbfa497d1cc0a4497c1fba4"></a><br></td></tr>
83<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1object__ptr.html#dcb20017177c98274c16087b2c0067dc">object_ptr</a> (const <a class="el" href="classbdm_1_1shared__ptr.html">shared_ptr</a>&lt; T &gt; &amp;b)</td></tr>
[472]84
[651]85<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Upcast from <a class="el" href="classbdm_1_1shared__ptr.html">shared_ptr&lt;T&gt;</a> to object_ptr&lt;T&gt;<a href="#dcb20017177c98274c16087b2c0067dc"></a><br></td></tr>
86<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1object__ptr.html#a9eb00600d8640711eadeed98c7892e9">object_ptr</a> (T *p)</td></tr>
87
88<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9c80da05b7b3dfc59333ca9bf6f62970"></a><!-- doxytag: member="bdm::object_ptr::operator=" ref="9c80da05b7b3dfc59333ca9bf6f62970" args="(const object_ptr&lt; T &gt; &amp;other)" -->
89<a class="el" href="classbdm_1_1object__ptr.html">object_ptr</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1object__ptr.html#9c80da05b7b3dfc59333ca9bf6f62970">operator=</a> (const <a class="el" href="classbdm_1_1object__ptr.html">object_ptr</a>&lt; T &gt; &amp;other)</td></tr>
90
91<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assignment operator. <br></td></tr>
92<tr><td class="memItemLeft" nowrap align="right" valign="top">T *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1shared__ptr.html#37ebcfb6750dd7b5630f1d2354c07a96">get</a> ()</td></tr>
93
94<tr><td class="memItemLeft" nowrap align="right" valign="top">const T *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1shared__ptr.html#fff45e4841b2921cd42ce0691f8c1196">get</a> () const</td></tr>
95
96<tr><td class="memItemLeft" nowrap align="right" valign="top">T *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1shared__ptr.html#bcaae812868eacbad050beda465d2327">operator-&gt;</a> ()</td></tr>
97
98<tr><td class="memItemLeft" nowrap align="right" valign="top">const T *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1shared__ptr.html#d89ec7ceb318241d833c7d278444396d">operator-&gt;</a> () const</td></tr>
99
100<tr><td class="memItemLeft" nowrap align="right" valign="top">T &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1shared__ptr.html#de38de837267becf5eed2839fea42c45">operator*</a> ()</td></tr>
101
102<tr><td class="memItemLeft" nowrap align="right" valign="top">const T &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1shared__ptr.html#de000a72fe73804aa26962432f264800">operator*</a> () const</td></tr>
103
104<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="338dbc6aa9fd95175abdc2df3ae2c284"></a><!-- doxytag: member="bdm::object_ptr::unique" ref="338dbc6aa9fd95175abdc2df3ae2c284" args="() const" -->
105bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1shared__ptr.html#338dbc6aa9fd95175abdc2df3ae2c284">unique</a> () const</td></tr>
106
107<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns use_count() == 1. <br></td></tr>
108<tr><td class="memItemLeft" nowrap align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1shared__ptr.html#8e52b8887a4408c52b5263a5717343f2">use_count</a> () const</td></tr>
109
110<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1shared__ptr.html#6cac71bb600f9f7c6fbed9335fd22d37">operator bool</a> () const</td></tr>
111
112<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Boolean cast.  <a href="#6cac71bb600f9f7c6fbed9335fd22d37"></a><br></td></tr>
113<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1shared__ptr.html#b3cd369b00369ab92456aa0645e8d560">operator shared_ptr&lt; const U &gt;</a> () const</td></tr>
114
115<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">const cast  <a href="#b3cd369b00369ab92456aa0645e8d560"></a><br></td></tr>
116<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fca7fd588f8de50e7590357305b00984"></a><!-- doxytag: member="bdm::object_ptr::swap" ref="fca7fd588f8de50e7590357305b00984" args="(shared_ptr &amp;other)" -->
117void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1shared__ptr.html#fca7fd588f8de50e7590357305b00984">swap</a> (<a class="el" href="classbdm_1_1shared__ptr.html">shared_ptr</a> &amp;other)</td></tr>
118
119<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Efficient swap for shared_ptr. <br></td></tr>
[472]120</table>
[651]121<hr><a name="_details"></a><h2>Detailed Description</h2>
122<h3>template&lt;typename T&gt;<br>
123 class bdm::object_ptr&lt; T &gt;</h3>
124
125A wrapper of <a class="el" href="classbdm_1_1shared__ptr.html" title="A naive implementation of roughly a subset of the std::tr1::shared_ptr spec.">shared_ptr</a> which is never empty.
126<p>
127T must have a default constructor.<p>
128Note that shared_ptr's destructor isn't virtual - don't call delete on pointers to instances of this class. <hr><h2>Constructor &amp; Destructor Documentation</h2>
129<a class="anchor" name="9f1016ff2bbfa497d1cc0a4497c1fba4"></a><!-- doxytag: member="bdm::object_ptr::object_ptr" ref="9f1016ff2bbfa497d1cc0a4497c1fba4" args="()" -->
[472]130<div class="memitem">
131<div class="memproto">
132<div class="memtemplate">
133template&lt;typename T&gt; </div>
134      <table class="memname">
135        <tr>
[651]136          <td class="memname"><a class="el" href="classbdm_1_1object__ptr.html">bdm::object_ptr</a>&lt; T &gt;::<a class="el" href="classbdm_1_1object__ptr.html">object_ptr</a>           </td>
[472]137          <td>(</td>
[651]138          <td class="paramname">          </td>
[472]139          <td>&nbsp;)&nbsp;</td>
140          <td><code> [inline]</code></td>
141        </tr>
142      </table>
143</div>
144<div class="memdoc">
145
[651]146<p>
147Default constructor.
148<p>
149Calls T's default constructor.
[472]150</div>
[651]151</div><p>
152<a class="anchor" name="dcb20017177c98274c16087b2c0067dc"></a><!-- doxytag: member="bdm::object_ptr::object_ptr" ref="dcb20017177c98274c16087b2c0067dc" args="(const shared_ptr&lt; T &gt; &amp;b)" -->
[472]153<div class="memitem">
154<div class="memproto">
155<div class="memtemplate">
156template&lt;typename T&gt; </div>
157      <table class="memname">
158        <tr>
[651]159          <td class="memname"><a class="el" href="classbdm_1_1object__ptr.html">bdm::object_ptr</a>&lt; T &gt;::<a class="el" href="classbdm_1_1object__ptr.html">object_ptr</a>           </td>
[472]160          <td>(</td>
161          <td class="paramtype">const <a class="el" href="classbdm_1_1shared__ptr.html">shared_ptr</a>&lt; T &gt; &amp;&nbsp;</td>
[651]162          <td class="paramname"> <em>b</em>          </td>
[472]163          <td>&nbsp;)&nbsp;</td>
164          <td><code> [inline]</code></td>
165        </tr>
166      </table>
167</div>
168<div class="memdoc">
169
[651]170<p>
171Upcast from <a class="el" href="classbdm_1_1shared__ptr.html">shared_ptr&lt;T&gt;</a> to object_ptr&lt;T&gt;.
172<p>
173<dl compact><dt><b>Parameters:</b></dt><dd>
[538]174  <table border="0" cellspacing="2" cellpadding="0">
175    <tr><td valign="top"></td><td valign="top"><em>b</em>&nbsp;</td><td>The shared pointer, which must not be empty. </td></tr>
176  </table>
177</dl>
178
[591]179<p>References <a class="el" href="bdmerror_8h_source.html#l00047">bdm_assert_debug</a>.</p>
[590]180
[472]181</div>
[651]182</div><p>
183<a class="anchor" name="a9eb00600d8640711eadeed98c7892e9"></a><!-- doxytag: member="bdm::object_ptr::object_ptr" ref="a9eb00600d8640711eadeed98c7892e9" args="(T *p)" -->
[472]184<div class="memitem">
185<div class="memproto">
186<div class="memtemplate">
187template&lt;typename T&gt; </div>
188      <table class="memname">
189        <tr>
[651]190          <td class="memname"><a class="el" href="classbdm_1_1object__ptr.html">bdm::object_ptr</a>&lt; T &gt;::<a class="el" href="classbdm_1_1object__ptr.html">object_ptr</a>           </td>
[472]191          <td>(</td>
[538]192          <td class="paramtype">T *&nbsp;</td>
[651]193          <td class="paramname"> <em>p</em>          </td>
[472]194          <td>&nbsp;)&nbsp;</td>
195          <td><code> [inline]</code></td>
196        </tr>
197      </table>
198</div>
199<div class="memdoc">
200
[651]201<p>
202Constructs an <a class="el" href="classbdm_1_1object__ptr.html" title="A wrapper of shared_ptr which is never empty.">object_ptr</a> that owns the pointer p. p must have been alllocated by new!
[591]203<p>References <a class="el" href="bdmerror_8h_source.html#l00047">bdm_assert_debug</a>.</p>
[590]204
[472]205</div>
[651]206</div><p>
207<hr><h2>Member Function Documentation</h2>
208<a class="anchor" name="fff45e4841b2921cd42ce0691f8c1196"></a><!-- doxytag: member="bdm::object_ptr::get" ref="fff45e4841b2921cd42ce0691f8c1196" args="() const" -->
[472]209<div class="memitem">
210<div class="memproto">
211      <table class="memname">
212        <tr>
[651]213          <td class="memname">const T * <a class="el" href="classbdm_1_1shared__ptr.html">bdm::shared_ptr</a>&lt; T  &gt;::get           </td>
[472]214          <td>(</td>
[651]215          <td class="paramname">          </td>
[472]216          <td>&nbsp;)&nbsp;</td>
[538]217          <td> const<code> [inline, inherited]</code></td>
[472]218        </tr>
219      </table>
220</div>
221<div class="memdoc">
222
[651]223<p>
224Returns the stored pointer (which remains owned by this instance). For empty instances, this method returns NULL.
[472]225</div>
[651]226</div><p>
227<a class="anchor" name="37ebcfb6750dd7b5630f1d2354c07a96"></a><!-- doxytag: member="bdm::object_ptr::get" ref="37ebcfb6750dd7b5630f1d2354c07a96" args="()" -->
[472]228<div class="memitem">
229<div class="memproto">
230      <table class="memname">
231        <tr>
[651]232          <td class="memname">T * <a class="el" href="classbdm_1_1shared__ptr.html">bdm::shared_ptr</a>&lt; T  &gt;::get           </td>
[472]233          <td>(</td>
[651]234          <td class="paramname">          </td>
[472]235          <td>&nbsp;)&nbsp;</td>
[538]236          <td><code> [inline, inherited]</code></td>
[472]237        </tr>
238      </table>
239</div>
240<div class="memdoc">
241
[651]242<p>
243Returns the stored pointer (which remains owned by this instance). For empty instances, this method returns NULL.
[472]244</div>
[651]245</div><p>
246<a class="anchor" name="6cac71bb600f9f7c6fbed9335fd22d37"></a><!-- doxytag: member="bdm::object_ptr::operator bool" ref="6cac71bb600f9f7c6fbed9335fd22d37" args="() const" -->
[590]247<div class="memitem">
248<div class="memproto">
249      <table class="memname">
250        <tr>
[651]251          <td class="memname"><a class="el" href="classbdm_1_1shared__ptr.html">bdm::shared_ptr</a>&lt; T  &gt;::operator bool           </td>
[590]252          <td>(</td>
[651]253          <td class="paramname">          </td>
[590]254          <td>&nbsp;)&nbsp;</td>
255          <td> const<code> [inline, inherited]</code></td>
256        </tr>
257      </table>
258</div>
259<div class="memdoc">
260
[651]261<p>
262Boolean cast.
263<p>
264This operator returns true if and only if the instance isn't empty.
[590]265</div>
[651]266</div><p>
267<a class="anchor" name="b3cd369b00369ab92456aa0645e8d560"></a><!-- doxytag: member="bdm::object_ptr::operator shared_ptr&lt; const U &gt;" ref="b3cd369b00369ab92456aa0645e8d560" args="() const" -->
[590]268<div class="memitem">
269<div class="memproto">
270      <table class="memname">
271        <tr>
[651]272          <td class="memname"><a class="el" href="classbdm_1_1shared__ptr.html">bdm::shared_ptr</a>&lt; T  &gt;::operator <a class="el" href="classbdm_1_1shared__ptr.html">shared_ptr</a>&lt; const U &gt;           </td>
[590]273          <td>(</td>
[651]274          <td class="paramname">          </td>
[590]275          <td>&nbsp;)&nbsp;</td>
276          <td> const<code> [inline, inherited]</code></td>
277        </tr>
278      </table>
279</div>
280<div class="memdoc">
281
[651]282<p>
283const cast
284<p>
285Shared pointer to T can be converted to shared pointer to const T, just like T * can be converted to T const *.
[590]286</div>
[651]287</div><p>
288<a class="anchor" name="de000a72fe73804aa26962432f264800"></a><!-- doxytag: member="bdm::object_ptr::operator*" ref="de000a72fe73804aa26962432f264800" args="() const" -->
[472]289<div class="memitem">
290<div class="memproto">
291      <table class="memname">
292        <tr>
[651]293          <td class="memname">const T &amp; <a class="el" href="classbdm_1_1shared__ptr.html">bdm::shared_ptr</a>&lt; T  &gt;::operator*           </td>
[472]294          <td>(</td>
[651]295          <td class="paramname">          </td>
[472]296          <td>&nbsp;)&nbsp;</td>
[538]297          <td> const<code> [inline, inherited]</code></td>
[472]298        </tr>
299      </table>
300</div>
301<div class="memdoc">
302
[651]303<p>
304Returns a reference to the object pointed to by the stored pointer. This method may only be called when the stored pointer isn't NULL.
[472]305</div>
[651]306</div><p>
307<a class="anchor" name="de38de837267becf5eed2839fea42c45"></a><!-- doxytag: member="bdm::object_ptr::operator*" ref="de38de837267becf5eed2839fea42c45" args="()" -->
[472]308<div class="memitem">
309<div class="memproto">
310      <table class="memname">
311        <tr>
[651]312          <td class="memname">T &amp; <a class="el" href="classbdm_1_1shared__ptr.html">bdm::shared_ptr</a>&lt; T  &gt;::operator*           </td>
[472]313          <td>(</td>
[651]314          <td class="paramname">          </td>
[472]315          <td>&nbsp;)&nbsp;</td>
[538]316          <td><code> [inline, inherited]</code></td>
[472]317        </tr>
318      </table>
319</div>
320<div class="memdoc">
321
[651]322<p>
323Returns a reference to the object pointed to by the stored pointer. This method may only be called when the stored pointer isn't NULL.
[472]324</div>
[651]325</div><p>
326<a class="anchor" name="d89ec7ceb318241d833c7d278444396d"></a><!-- doxytag: member="bdm::object_ptr::operator&#45;&gt;" ref="d89ec7ceb318241d833c7d278444396d" args="() const" -->
[472]327<div class="memitem">
328<div class="memproto">
329      <table class="memname">
330        <tr>
[651]331          <td class="memname">const T * <a class="el" href="classbdm_1_1shared__ptr.html">bdm::shared_ptr</a>&lt; T  &gt;::operator-&gt;           </td>
[472]332          <td>(</td>
[651]333          <td class="paramname">          </td>
[472]334          <td>&nbsp;)&nbsp;</td>
[538]335          <td> const<code> [inline, inherited]</code></td>
[472]336        </tr>
337      </table>
338</div>
339<div class="memdoc">
340
[651]341<p>
342Returns the stored pointer (which remains owned by this instance). This method may only be called when the stored pointer isn't NULL.
[472]343</div>
[651]344</div><p>
345<a class="anchor" name="bcaae812868eacbad050beda465d2327"></a><!-- doxytag: member="bdm::object_ptr::operator&#45;&gt;" ref="bcaae812868eacbad050beda465d2327" args="()" -->
[472]346<div class="memitem">
347<div class="memproto">
348      <table class="memname">
349        <tr>
[651]350          <td class="memname">T * <a class="el" href="classbdm_1_1shared__ptr.html">bdm::shared_ptr</a>&lt; T  &gt;::operator-&gt;           </td>
[472]351          <td>(</td>
[651]352          <td class="paramname">          </td>
[472]353          <td>&nbsp;)&nbsp;</td>
[538]354          <td><code> [inline, inherited]</code></td>
[472]355        </tr>
356      </table>
357</div>
358<div class="memdoc">
359
[651]360<p>
361Dereferences the stored pointer (which remains owned by this instance). This method may only be called when the stored pointer isn't NULL.
[472]362</div>
[651]363</div><p>
364<a class="anchor" name="8e52b8887a4408c52b5263a5717343f2"></a><!-- doxytag: member="bdm::object_ptr::use_count" ref="8e52b8887a4408c52b5263a5717343f2" args="() const" -->
[590]365<div class="memitem">
366<div class="memproto">
367      <table class="memname">
368        <tr>
[651]369          <td class="memname">long <a class="el" href="classbdm_1_1shared__ptr.html">bdm::shared_ptr</a>&lt; T  &gt;::use_count           </td>
[590]370          <td>(</td>
[651]371          <td class="paramname">          </td>
[590]372          <td>&nbsp;)&nbsp;</td>
373          <td> const<code> [inline, inherited]</code></td>
374        </tr>
375      </table>
376</div>
377<div class="memdoc">
378
[651]379<p>
380Returns the number of shared_ptr instances (including this instance) that share ownership with this instance. For empty instances, this method returns 0.
[590]381</div>
[651]382</div><p>
383<hr>The documentation for this class was generated from the following file:<ul>
384<li><a class="el" href="shared__ptr_8h_source.html">shared_ptr.h</a></ul>
[472]385</div>
[651]386<hr size="1"><address style="text-align: right;"><small>Generated on Wed Oct 7 17:34:48 2009 for mixpp by&nbsp;
[472]387<a href="http://www.doxygen.org/index.html">
[651]388<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
[472]389</body>
390</html>
Note: See TracBrowser for help on using the browser.