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

Line 
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">
3<title>mixpp: bdm::object_ptr&lt; T &gt; Class Template Reference</title>
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 -->
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>
66  <div class="navpath"><b>bdm</b>::<a class="el" href="classbdm_1_1object__ptr.html">object_ptr</a>
67  </div>
68</div>
69<div class="contents">
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>
75
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>
81
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>
84
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>
120</table>
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="()" -->
130<div class="memitem">
131<div class="memproto">
132<div class="memtemplate">
133template&lt;typename T&gt; </div>
134      <table class="memname">
135        <tr>
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>
137          <td>(</td>
138          <td class="paramname">          </td>
139          <td>&nbsp;)&nbsp;</td>
140          <td><code> [inline]</code></td>
141        </tr>
142      </table>
143</div>
144<div class="memdoc">
145
146<p>
147Default constructor.
148<p>
149Calls T's default constructor.
150</div>
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)" -->
153<div class="memitem">
154<div class="memproto">
155<div class="memtemplate">
156template&lt;typename T&gt; </div>
157      <table class="memname">
158        <tr>
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>
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>
162          <td class="paramname"> <em>b</em>          </td>
163          <td>&nbsp;)&nbsp;</td>
164          <td><code> [inline]</code></td>
165        </tr>
166      </table>
167</div>
168<div class="memdoc">
169
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>
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
179<p>References <a class="el" href="bdmerror_8h_source.html#l00047">bdm_assert_debug</a>.</p>
180
181</div>
182</div><p>
183<a class="anchor" name="a9eb00600d8640711eadeed98c7892e9"></a><!-- doxytag: member="bdm::object_ptr::object_ptr" ref="a9eb00600d8640711eadeed98c7892e9" args="(T *p)" -->
184<div class="memitem">
185<div class="memproto">
186<div class="memtemplate">
187template&lt;typename T&gt; </div>
188      <table class="memname">
189        <tr>
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>
191          <td>(</td>
192          <td class="paramtype">T *&nbsp;</td>
193          <td class="paramname"> <em>p</em>          </td>
194          <td>&nbsp;)&nbsp;</td>
195          <td><code> [inline]</code></td>
196        </tr>
197      </table>
198</div>
199<div class="memdoc">
200
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!
203<p>References <a class="el" href="bdmerror_8h_source.html#l00047">bdm_assert_debug</a>.</p>
204
205</div>
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" -->
209<div class="memitem">
210<div class="memproto">
211      <table class="memname">
212        <tr>
213          <td class="memname">const T * <a class="el" href="classbdm_1_1shared__ptr.html">bdm::shared_ptr</a>&lt; T  &gt;::get           </td>
214          <td>(</td>
215          <td class="paramname">          </td>
216          <td>&nbsp;)&nbsp;</td>
217          <td> const<code> [inline, inherited]</code></td>
218        </tr>
219      </table>
220</div>
221<div class="memdoc">
222
223<p>
224Returns the stored pointer (which remains owned by this instance). For empty instances, this method returns NULL.
225</div>
226</div><p>
227<a class="anchor" name="37ebcfb6750dd7b5630f1d2354c07a96"></a><!-- doxytag: member="bdm::object_ptr::get" ref="37ebcfb6750dd7b5630f1d2354c07a96" args="()" -->
228<div class="memitem">
229<div class="memproto">
230      <table class="memname">
231        <tr>
232          <td class="memname">T * <a class="el" href="classbdm_1_1shared__ptr.html">bdm::shared_ptr</a>&lt; T  &gt;::get           </td>
233          <td>(</td>
234          <td class="paramname">          </td>
235          <td>&nbsp;)&nbsp;</td>
236          <td><code> [inline, inherited]</code></td>
237        </tr>
238      </table>
239</div>
240<div class="memdoc">
241
242<p>
243Returns the stored pointer (which remains owned by this instance). For empty instances, this method returns NULL.
244</div>
245</div><p>
246<a class="anchor" name="6cac71bb600f9f7c6fbed9335fd22d37"></a><!-- doxytag: member="bdm::object_ptr::operator bool" ref="6cac71bb600f9f7c6fbed9335fd22d37" args="() const" -->
247<div class="memitem">
248<div class="memproto">
249      <table class="memname">
250        <tr>
251          <td class="memname"><a class="el" href="classbdm_1_1shared__ptr.html">bdm::shared_ptr</a>&lt; T  &gt;::operator bool           </td>
252          <td>(</td>
253          <td class="paramname">          </td>
254          <td>&nbsp;)&nbsp;</td>
255          <td> const<code> [inline, inherited]</code></td>
256        </tr>
257      </table>
258</div>
259<div class="memdoc">
260
261<p>
262Boolean cast.
263<p>
264This operator returns true if and only if the instance isn't empty.
265</div>
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" -->
268<div class="memitem">
269<div class="memproto">
270      <table class="memname">
271        <tr>
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>
273          <td>(</td>
274          <td class="paramname">          </td>
275          <td>&nbsp;)&nbsp;</td>
276          <td> const<code> [inline, inherited]</code></td>
277        </tr>
278      </table>
279</div>
280<div class="memdoc">
281
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 *.
286</div>
287</div><p>
288<a class="anchor" name="de000a72fe73804aa26962432f264800"></a><!-- doxytag: member="bdm::object_ptr::operator*" ref="de000a72fe73804aa26962432f264800" args="() const" -->
289<div class="memitem">
290<div class="memproto">
291      <table class="memname">
292        <tr>
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>
294          <td>(</td>
295          <td class="paramname">          </td>
296          <td>&nbsp;)&nbsp;</td>
297          <td> const<code> [inline, inherited]</code></td>
298        </tr>
299      </table>
300</div>
301<div class="memdoc">
302
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.
305</div>
306</div><p>
307<a class="anchor" name="de38de837267becf5eed2839fea42c45"></a><!-- doxytag: member="bdm::object_ptr::operator*" ref="de38de837267becf5eed2839fea42c45" args="()" -->
308<div class="memitem">
309<div class="memproto">
310      <table class="memname">
311        <tr>
312          <td class="memname">T &amp; <a class="el" href="classbdm_1_1shared__ptr.html">bdm::shared_ptr</a>&lt; T  &gt;::operator*           </td>
313          <td>(</td>
314          <td class="paramname">          </td>
315          <td>&nbsp;)&nbsp;</td>
316          <td><code> [inline, inherited]</code></td>
317        </tr>
318      </table>
319</div>
320<div class="memdoc">
321
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.
324</div>
325</div><p>
326<a class="anchor" name="d89ec7ceb318241d833c7d278444396d"></a><!-- doxytag: member="bdm::object_ptr::operator&#45;&gt;" ref="d89ec7ceb318241d833c7d278444396d" args="() const" -->
327<div class="memitem">
328<div class="memproto">
329      <table class="memname">
330        <tr>
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>
332          <td>(</td>
333          <td class="paramname">          </td>
334          <td>&nbsp;)&nbsp;</td>
335          <td> const<code> [inline, inherited]</code></td>
336        </tr>
337      </table>
338</div>
339<div class="memdoc">
340
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.
343</div>
344</div><p>
345<a class="anchor" name="bcaae812868eacbad050beda465d2327"></a><!-- doxytag: member="bdm::object_ptr::operator&#45;&gt;" ref="bcaae812868eacbad050beda465d2327" args="()" -->
346<div class="memitem">
347<div class="memproto">
348      <table class="memname">
349        <tr>
350          <td class="memname">T * <a class="el" href="classbdm_1_1shared__ptr.html">bdm::shared_ptr</a>&lt; T  &gt;::operator-&gt;           </td>
351          <td>(</td>
352          <td class="paramname">          </td>
353          <td>&nbsp;)&nbsp;</td>
354          <td><code> [inline, inherited]</code></td>
355        </tr>
356      </table>
357</div>
358<div class="memdoc">
359
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.
362</div>
363</div><p>
364<a class="anchor" name="8e52b8887a4408c52b5263a5717343f2"></a><!-- doxytag: member="bdm::object_ptr::use_count" ref="8e52b8887a4408c52b5263a5717343f2" args="() const" -->
365<div class="memitem">
366<div class="memproto">
367      <table class="memname">
368        <tr>
369          <td class="memname">long <a class="el" href="classbdm_1_1shared__ptr.html">bdm::shared_ptr</a>&lt; T  &gt;::use_count           </td>
370          <td>(</td>
371          <td class="paramname">          </td>
372          <td>&nbsp;)&nbsp;</td>
373          <td> const<code> [inline, inherited]</code></td>
374        </tr>
375      </table>
376</div>
377<div class="memdoc">
378
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.
381</div>
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>
385</div>
386<hr size="1"><address style="text-align: right;"><small>Generated on Wed Oct 7 17:34:48 2009 for mixpp by&nbsp;
387<a href="http://www.doxygen.org/index.html">
388<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
389</body>
390</html>
Note: See TracBrowser for help on using the browser.