root/library/doc/html/classbdm_1_1shared__ptr.html @ 541

Revision 538, 18.2 kB (checked in by smidl, 15 years ago)

Documentation regenerated

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::shared_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.8 -->
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_1shared__ptr.html">shared_ptr</a>
67  </div>
68</div>
69<div class="contents">
70<h1>bdm::shared_ptr&lt; T &gt; Class Template Reference</h1><!-- doxytag: class="bdm::shared_ptr" -->A naive implementation of roughly a subset of the std::tr1:<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> spec. 
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_1shared__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"><a class="anchor" name="66a4d41031e37618f1a9bb3c81814c11"></a><!-- doxytag: member="bdm::shared_ptr::shared_ptr" ref="66a4d41031e37618f1a9bb3c81814c11" args="()" -->
81&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1shared__ptr.html#66a4d41031e37618f1a9bb3c81814c11">shared_ptr</a> ()</td></tr>
82
83<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates an empty <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> - one that doesn't point anywhere. <br></td></tr>
84<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#c8b7f0a813173581530c80d7ac4fc7c2">shared_ptr</a> (T *p)</td></tr>
85
86<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#357702d12bfd608a08b46e4a194aa4b5">shared_ptr</a> (const <a class="el" href="classbdm_1_1shared__ptr.html">shared_ptr</a>&lt; T &gt; &amp;other)</td></tr>
87
88<tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename U &gt; </td></tr>
89<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classbdm_1_1shared__ptr.html#affa5b17385493f4102c52cf75d3b509">shared_ptr</a> (const <a class="el" href="classbdm_1_1shared__ptr.html">shared_ptr</a>&lt; U &gt; &amp;other)</td></tr>
90
91<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="55263b1c8efbd3f8fddf703e2c457f6c"></a><!-- doxytag: member="bdm::shared_ptr::operator=" ref="55263b1c8efbd3f8fddf703e2c457f6c" args="(const shared_ptr&lt; T &gt; &amp;other)" -->
92<a class="el" href="classbdm_1_1shared__ptr.html">shared_ptr</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="classbdm_1_1shared__ptr.html">shared_ptr</a>&lt; T &gt; &amp;other)</td></tr>
93
94<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>
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">T &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1shared__ptr.html#de38de837267becf5eed2839fea42c45">operator*</a> ()</td></tr>
99
100<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>
101
102<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>
103
104<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>
105
106<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="338dbc6aa9fd95175abdc2df3ae2c284"></a><!-- doxytag: member="bdm::shared_ptr::unique" ref="338dbc6aa9fd95175abdc2df3ae2c284" args="() const " -->
107bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>unique</b> () const </td></tr>
108
109<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8e52b8887a4408c52b5263a5717343f2"></a><!-- doxytag: member="bdm::shared_ptr::use_count" ref="8e52b8887a4408c52b5263a5717343f2" args="() const " -->
110long&nbsp;</td><td class="memItemRight" valign="bottom"><b>use_count</b> () const </td></tr>
111
112<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6cac71bb600f9f7c6fbed9335fd22d37"></a><!-- doxytag: member="bdm::shared_ptr::operator bool" ref="6cac71bb600f9f7c6fbed9335fd22d37" args="() const " -->
113&nbsp;</td><td class="memItemRight" valign="bottom"><b>operator bool</b> () const </td></tr>
114
115<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fca7fd588f8de50e7590357305b00984"></a><!-- doxytag: member="bdm::shared_ptr::swap" ref="fca7fd588f8de50e7590357305b00984" args="(shared_ptr &amp;other)" -->
116void&nbsp;</td><td class="memItemRight" valign="bottom"><b>swap</b> (<a class="el" href="classbdm_1_1shared__ptr.html">shared_ptr</a> &amp;other)</td></tr>
117
118<tr><td colspan="2"><br><h2>Friends</h2></td></tr>
119<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9a4da829475f0cf1809fc6ef555ffe06"></a><!-- doxytag: member="bdm::shared_ptr::shared_ptr" ref="9a4da829475f0cf1809fc6ef555ffe06" args="" -->
120class&nbsp;</td><td class="memItemRight" valign="bottom"><b>shared_ptr</b></td></tr>
121
122</table>
123<hr><a name="_details"></a><h2>Detailed Description</h2>
124<h3>template&lt;typename T&gt;<br>
125 class bdm::shared_ptr&lt; T &gt;</h3>
126
127A naive implementation of roughly a subset of the std::tr1:<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> spec.
128<p>
129Really just roughly - it ignores memory exceptions, for example; also note I didn't read the spec.<p>
130The standard template would naturally be preferable, _if_ it was included in the standard libraries of all supported compilers - but as of 2009, that's still a problem... <hr><h2>Constructor &amp; Destructor Documentation</h2>
131<a class="anchor" name="c8b7f0a813173581530c80d7ac4fc7c2"></a><!-- doxytag: member="bdm::shared_ptr::shared_ptr" ref="c8b7f0a813173581530c80d7ac4fc7c2" args="(T *p)" -->
132<div class="memitem">
133<div class="memproto">
134<div class="memtemplate">
135template&lt;typename T&gt; </div>
136      <table class="memname">
137        <tr>
138          <td class="memname"><a class="el" href="classbdm_1_1shared__ptr.html">bdm::shared_ptr</a>&lt; T &gt;::<a class="el" href="classbdm_1_1shared__ptr.html">shared_ptr</a>           </td>
139          <td>(</td>
140          <td class="paramtype">T *&nbsp;</td>
141          <td class="paramname"> <em>p</em>          </td>
142          <td>&nbsp;)&nbsp;</td>
143          <td><code> [inline]</code></td>
144        </tr>
145      </table>
146</div>
147<div class="memdoc">
148
149<p>
150Constructs a <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> that owns the pointer p (unless p is NULL, in which case this constructor creates an empty <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>). When p isn't null, it must have been alllocated by new!
151</div>
152</div><p>
153<a class="anchor" name="357702d12bfd608a08b46e4a194aa4b5"></a><!-- doxytag: member="bdm::shared_ptr::shared_ptr" ref="357702d12bfd608a08b46e4a194aa4b5" args="(const shared_ptr&lt; T &gt; &amp;other)" -->
154<div class="memitem">
155<div class="memproto">
156<div class="memtemplate">
157template&lt;typename T&gt; </div>
158      <table class="memname">
159        <tr>
160          <td class="memname"><a class="el" href="classbdm_1_1shared__ptr.html">bdm::shared_ptr</a>&lt; T &gt;::<a class="el" href="classbdm_1_1shared__ptr.html">shared_ptr</a>           </td>
161          <td>(</td>
162          <td class="paramtype">const <a class="el" href="classbdm_1_1shared__ptr.html">shared_ptr</a>&lt; T &gt; &amp;&nbsp;</td>
163          <td class="paramname"> <em>other</em>          </td>
164          <td>&nbsp;)&nbsp;</td>
165          <td><code> [inline]</code></td>
166        </tr>
167      </table>
168</div>
169<div class="memdoc">
170
171<p>
172If other is empty, constructs an empty <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>; otherwise, constructs a <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> that shares ownership with other.
173</div>
174</div><p>
175<a class="anchor" name="affa5b17385493f4102c52cf75d3b509"></a><!-- doxytag: member="bdm::shared_ptr::shared_ptr" ref="affa5b17385493f4102c52cf75d3b509" args="(const shared_ptr&lt; U &gt; &amp;other)" -->
176<div class="memitem">
177<div class="memproto">
178<div class="memtemplate">
179template&lt;typename T&gt; </div>
180<div class="memtemplate">
181template&lt;typename U &gt; </div>
182      <table class="memname">
183        <tr>
184          <td class="memname"><a class="el" href="classbdm_1_1shared__ptr.html">bdm::shared_ptr</a>&lt; T &gt;::<a class="el" href="classbdm_1_1shared__ptr.html">shared_ptr</a>           </td>
185          <td>(</td>
186          <td class="paramtype">const <a class="el" href="classbdm_1_1shared__ptr.html">shared_ptr</a>&lt; U &gt; &amp;&nbsp;</td>
187          <td class="paramname"> <em>other</em>          </td>
188          <td>&nbsp;)&nbsp;</td>
189          <td><code> [inline]</code></td>
190        </tr>
191      </table>
192</div>
193<div class="memdoc">
194
195<p>
196If other is empty, constructs an empty <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>; otherwise, constructs a <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> that shares ownership with other.
197</div>
198</div><p>
199<hr><h2>Member Function Documentation</h2>
200<a class="anchor" name="fff45e4841b2921cd42ce0691f8c1196"></a><!-- doxytag: member="bdm::shared_ptr::get" ref="fff45e4841b2921cd42ce0691f8c1196" args="() const " -->
201<div class="memitem">
202<div class="memproto">
203<div class="memtemplate">
204template&lt;typename T&gt; </div>
205      <table class="memname">
206        <tr>
207          <td class="memname">const T* <a class="el" href="classbdm_1_1shared__ptr.html">bdm::shared_ptr</a>&lt; T &gt;::get           </td>
208          <td>(</td>
209          <td class="paramname">          </td>
210          <td>&nbsp;)&nbsp;</td>
211          <td> const<code> [inline]</code></td>
212        </tr>
213      </table>
214</div>
215<div class="memdoc">
216
217<p>
218Returns the stored pointer (which remains owned by this instance).
219</div>
220</div><p>
221<a class="anchor" name="37ebcfb6750dd7b5630f1d2354c07a96"></a><!-- doxytag: member="bdm::shared_ptr::get" ref="37ebcfb6750dd7b5630f1d2354c07a96" args="()" -->
222<div class="memitem">
223<div class="memproto">
224<div class="memtemplate">
225template&lt;typename T&gt; </div>
226      <table class="memname">
227        <tr>
228          <td class="memname">T* <a class="el" href="classbdm_1_1shared__ptr.html">bdm::shared_ptr</a>&lt; T &gt;::get           </td>
229          <td>(</td>
230          <td class="paramname">          </td>
231          <td>&nbsp;)&nbsp;</td>
232          <td><code> [inline]</code></td>
233        </tr>
234      </table>
235</div>
236<div class="memdoc">
237
238<p>
239Returns the stored pointer (which remains owned by this instance).
240<p>Referenced by <a class="el" href="bdmbase_8cpp-source.html#l00309">bdm::mepdf::from_setting()</a>, and <a class="el" href="bdmbase_8h-source.html#l00725">bdm::mepdf::mepdf()</a>.</p>
241
242</div>
243</div><p>
244<a class="anchor" name="de000a72fe73804aa26962432f264800"></a><!-- doxytag: member="bdm::shared_ptr::operator*" ref="de000a72fe73804aa26962432f264800" args="() const " -->
245<div class="memitem">
246<div class="memproto">
247<div class="memtemplate">
248template&lt;typename T&gt; </div>
249      <table class="memname">
250        <tr>
251          <td class="memname">const T&amp; <a class="el" href="classbdm_1_1shared__ptr.html">bdm::shared_ptr</a>&lt; T &gt;::operator*           </td>
252          <td>(</td>
253          <td class="paramname">          </td>
254          <td>&nbsp;)&nbsp;</td>
255          <td> const<code> [inline]</code></td>
256        </tr>
257      </table>
258</div>
259<div class="memdoc">
260
261<p>
262Returns a reference to the object pointed to by the stored pointer. This method may only be called when the stored pointer isn't NULL.
263</div>
264</div><p>
265<a class="anchor" name="de38de837267becf5eed2839fea42c45"></a><!-- doxytag: member="bdm::shared_ptr::operator*" ref="de38de837267becf5eed2839fea42c45" args="()" -->
266<div class="memitem">
267<div class="memproto">
268<div class="memtemplate">
269template&lt;typename T&gt; </div>
270      <table class="memname">
271        <tr>
272          <td class="memname">T&amp; <a class="el" href="classbdm_1_1shared__ptr.html">bdm::shared_ptr</a>&lt; T &gt;::operator*           </td>
273          <td>(</td>
274          <td class="paramname">          </td>
275          <td>&nbsp;)&nbsp;</td>
276          <td><code> [inline]</code></td>
277        </tr>
278      </table>
279</div>
280<div class="memdoc">
281
282<p>
283Returns a reference to the object pointed to by the stored pointer. This method may only be called when the stored pointer isn't NULL.
284</div>
285</div><p>
286<a class="anchor" name="d89ec7ceb318241d833c7d278444396d"></a><!-- doxytag: member="bdm::shared_ptr::operator&#45;&gt;" ref="d89ec7ceb318241d833c7d278444396d" args="() const " -->
287<div class="memitem">
288<div class="memproto">
289<div class="memtemplate">
290template&lt;typename T&gt; </div>
291      <table class="memname">
292        <tr>
293          <td class="memname">const T* <a class="el" href="classbdm_1_1shared__ptr.html">bdm::shared_ptr</a>&lt; T &gt;::operator-&gt;           </td>
294          <td>(</td>
295          <td class="paramname">          </td>
296          <td>&nbsp;)&nbsp;</td>
297          <td> const<code> [inline]</code></td>
298        </tr>
299      </table>
300</div>
301<div class="memdoc">
302
303<p>
304Returns the stored pointer (which remains owned by this instance). This method may only be called when the stored pointer isn't NULL.
305</div>
306</div><p>
307<a class="anchor" name="bcaae812868eacbad050beda465d2327"></a><!-- doxytag: member="bdm::shared_ptr::operator&#45;&gt;" ref="bcaae812868eacbad050beda465d2327" args="()" -->
308<div class="memitem">
309<div class="memproto">
310<div class="memtemplate">
311template&lt;typename T&gt; </div>
312      <table class="memname">
313        <tr>
314          <td class="memname">T* <a class="el" href="classbdm_1_1shared__ptr.html">bdm::shared_ptr</a>&lt; T &gt;::operator-&gt;           </td>
315          <td>(</td>
316          <td class="paramname">          </td>
317          <td>&nbsp;)&nbsp;</td>
318          <td><code> [inline]</code></td>
319        </tr>
320      </table>
321</div>
322<div class="memdoc">
323
324<p>
325Returns the stored pointer (which remains owned by this instance). This method may only be called when the stored pointer isn't NULL.
326</div>
327</div><p>
328<hr>The documentation for this class was generated from the following file:<ul>
329<li><a class="el" href="shared__ptr_8h-source.html">shared_ptr.h</a></ul>
330</div>
331<hr size="1"><address style="text-align: right;"><small>Generated on Sun Aug 16 17:58:19 2009 for mixpp by&nbsp;
332<a href="http://www.doxygen.org/index.html">
333<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
334</body>
335</html>
Note: See TracBrowser for help on using the browser.