intrusive_ptr::reset added

[SVN r37406]
This commit is contained in:
Peter Dimov
2007-04-09 21:35:07 +00:00
parent ce72827dc7
commit 26f83e75ef
2 changed files with 12 additions and 1 deletions

View File

@ -105,6 +105,11 @@ public:
return *this; return *this;
} }
void reset( T * rhs )
{
this_type( rhs ).swap( *this );
}
T * get() const T * get() const
{ {
return p_; return p_;

View File

@ -61,7 +61,8 @@
intrusive_ptr &amp; <A href="#assignment" >operator=</A>(intrusive_ptr const &amp; r); intrusive_ptr &amp; <A href="#assignment" >operator=</A>(intrusive_ptr const &amp; r);
template&lt;class Y&gt; intrusive_ptr &amp; <A href="#assignment" >operator=</A>(intrusive_ptr&lt;Y&gt; const &amp; r); template&lt;class Y&gt; intrusive_ptr &amp; <A href="#assignment" >operator=</A>(intrusive_ptr&lt;Y&gt; const &amp; r);
template&lt;class Y&gt; intrusive_ptr &amp; <A href="#assignment" >operator=</A>(T * r); intrusive_ptr &amp; <A href="#assignment" >operator=</A>(T * r);
void <a href="#reset" >reset</a>(T * r);
T &amp; <A href="#indirection" >operator*</A>() const; // never throws T &amp; <A href="#indirection" >operator*</A>() const; // never throws
T * <A href="#indirection" >operator-&gt;</A>() const; // never throws T * <A href="#indirection" >operator-&gt;</A>() const; // never throws
@ -146,6 +147,11 @@ intrusive_ptr &amp; operator=(T * r);</pre>
<P><B>Effects:</B> Equivalent to <code>intrusive_ptr(r).swap(*this)</code>.</P> <P><B>Effects:</B> Equivalent to <code>intrusive_ptr(r).swap(*this)</code>.</P>
<P><B>Returns:</B> <code>*this</code>.</P> <P><B>Returns:</B> <code>*this</code>.</P>
</BLOCKQUOTE> </BLOCKQUOTE>
<H3><a name="reset">reset</a></H3>
<pre>void reset(T * r);</pre>
<BLOCKQUOTE>
<P><B>Effects:</B> Equivalent to <code>intrusive_ptr(r).swap(*this)</code>.</P>
</BLOCKQUOTE>
<h3><a name="indirection">indirection</a></h3> <h3><a name="indirection">indirection</a></h3>
<pre>T &amp; operator*() const; // never throws</pre> <pre>T &amp; operator*() const; // never throws</pre>
<blockquote> <blockquote>