<!--
    Copyright 2005-2008 Adobe Systems Incorporated
    Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt
    or a copy at http://stlab.adobe.com/licenses.html)

    Some files are held under additional license.
    Please see "http://stlab.adobe.com/licenses.html" for more information.
-->
<!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" lang="en" xml:lang="en">
<head>
    <TITLE>Adobe Software Technology Lab: auto_ptr&lt; X, Traits &gt; Class Template Reference</TITLE>
    <META HTTP-EQUIV="content-type" CONTENT="text/html;charset=ISO-8859-1"/>
    <LINK TYPE="text/css" REL="stylesheet" HREF="adobe_source.css"/>
    <LINK REL="alternate" TITLE="stlab.adobe.com RSS" HREF="http://sourceforge.net/export/rss2_projnews.php?group_id=132417&amp;rss_fulltext=1" TYPE="application/rss+xml"/>
    <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script>
</head>
<body>
<div id='content'>
<table><tr>
<td colspan='5'>
    <div id='opensource_banner'>
    <table style='width: 100%; padding: 5px;'><tr>
    <td align='left'>
        <a href='index.html' style='border: none'><img src='stlab2007.jpg' alt="stlab.adobe.com"/></a>
    </td>
    <td align='right'>
        <a href='http://www.adobe.com' style='border: none'><img src='adobe_hlogo.gif' alt="Adobe Systems Incorporated"/></a>
    </td>
    </tr></table>
    </div>
</td></tr><tr>
<td valign="top">
    <div id='navtable' height='100%'>
    <div style='margin: 5px'>
        <h4>Documentation</h4>

        <a href="group__asl__overview.html">Overview</a><br/>
        <a href="asl_readme.html">Building ASL</a><br/>
        <a href="asl_toc.html">Documentation</a><br/>
        <a href="http://stlab.adobe.com/wiki/index.php/Supplementary_ASL_Documentation">Library Wiki Docs</a><br/>
        <a href="asl_indices.html">Indices</a><br/>
        <a href="http://stlab.adobe.com/perforce/">Browse Perforce</a><br/>

        <h4>More Info</h4>

        <a href="asl_release_notes.html">Release Notes</a><br/>
        <a href="http://stlab.adobe.com/wiki/">Wiki</a><br/>
        <a href="asl_search.html">Site Search</a><br/>
        <a href="licenses.html">License</a><br/>
        <a href="success_stories.html">Success Stories</a><br/>
        <a href="asl_contributors.html">Contributors</a><br/>

        <h4>Media</h4>

        <a href="http://sourceforge.net/project/showfiles.php?group_id=132417&amp;package_id=145420">Download</a><br/>
        <a href="asl_download_perforce.html">Perforce Depots</a><br/>

        <h4>Support</h4>

        <a href="http://sourceforge.net/projects/adobe-source/">ASL SourceForge Home</a><br/>
        <a href="http://sourceforge.net/mail/?group_id=132417">Mailing Lists</a><br/>
        <a href="http://sourceforge.net/forum/?group_id=132417">Discussion Forums</a><br/>
        <a href="http://sourceforge.net/tracker/?atid=724218&amp;group_id=132417&amp;func=browse">Report Bugs</a><br/>
        <a href="http://sourceforge.net/tracker/?atid=724221&amp;group_id=132417&amp;func=browse">Suggest Features</a><br/>
        <a href="asl_contributing.html">Contribute to ASL</a><br/>

        <h4>RSS</h4>

        <a href="http://sourceforge.net/export/rss2_projnews.php?group_id=132417">Short-text news</a><br/>
        <a href="http://sourceforge.net/export/rss2_projnews.php?group_id=132417&amp;rss_fulltext=1">Full-text news</a><br/>
        <a href="http://sourceforge.net/export/rss2_projfiles.php?group_id=132417">File releases</a><br/>

        <h4>Other Adobe Projects</h4>

        <a href="http://sourceforge.net/adobe/">Open @ Adobe</a><br/>
        <a href="http://opensource.adobe.com/">Adobe Open Source</a><br/>
        <a href="http://labs.adobe.com/">Adobe Labs</a><br/>
        <a href="http://stlab.adobe.com/amg/">Adobe Media Gallery</a><br/>
        <a href="http://stlab.adobe.com/performance/">C++ Benchmarks</a><br/>

        <h4>Other Resources</h4>

        <a href="http://boost.org">Boost</a><br/>
        <a href="http://www.riaforge.com/">RIAForge</a><br/>
        <a href="http://www.sgi.com/tech/stl">SGI STL</a><br/>
    </div>
    </div>
</td>
<td id='maintable' width="100%" valign="top">

<!-- End Header -->
<!-- Generated by Doxygen 1.7.2 -->
  <div class="navpath">
    <ul>
      <li><a class="el" href="namespaceadobe.html">adobe</a>      </li>
      <li><a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a>      </li>
    </ul>
  </div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<h1>auto_ptr&lt; X, Traits &gt; Class Template Reference<br/>
<small>
[<a class="el" href="group__memory.html">Memory</a>]</small>
</h1>  </div>
</div>
<div class="contents">
<!-- doxytag: class="adobe::auto_ptr" --><!-- doxytag: inherits="auto_resource&lt; X *, Traits &gt;" -->
<p>The <code><a class="el" href="classadobe_1_1auto__ptr.html" title="The adobe::auto_ptr&lt;&gt; template adds a number of extensions to std::auto_ptr&lt;&gt;.">adobe::auto_ptr</a>&lt;&gt;</code> template adds a number of extensions to <code>std::auto_ptr&lt;&gt;</code>.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="memory_8hpp_source.html">memory.hpp</a>&gt;</code></p>

<p><a href="classadobe_1_1auto__ptr-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><b>clear_type</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><b>error_on_const_auto_type&lt; auto_ptr&lt; Y, typename traits_type::template rebind&lt; Y * &gt;::other &gt; const  &gt;</b></td></tr>
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef traits_type::element_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classadobe_1_1auto__ptr.html#a02574fcd6538ed96656939b0a9054092">element_type</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef traits_type::pointer_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classadobe_1_1auto__ptr.html#a733dfdff2b2b0c1cfa60513deeabc5d6">pointer_type</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef Traits&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classadobe_1_1auto__ptr.html#aada8c38edc7a4968494c4838ecfd99ce">traits_type</a></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classadobe_1_1auto__ptr.html#a4775e8d2ba24664807347605c261789a">auto_ptr</a> (<a class="el" href="classadobe_1_1auto__ptr.html#a733dfdff2b2b0c1cfa60513deeabc5d6">pointer_type</a> p=0)  throw ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classadobe_1_1auto__ptr.html#ab0de1504f237180789f36df75ae4677e">auto_ptr</a> (<a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a> &amp;)  throw ()</td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename Y &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classadobe_1_1auto__ptr.html#a2847d37d05c107bf8d268f6370dd1b42">auto_ptr</a> (std::auto_ptr&lt; Y &gt; r)  throw ()</td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename Y &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classadobe_1_1auto__ptr.html#ad6eb012788de2cc68c19446b54880577">auto_ptr</a> (const <a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a>&lt; Y, typename traits_type::template rebind&lt; Y * &gt;::other &gt; &amp;)  throw ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classadobe_1_1auto__ptr.html#ae5281bab050c2d379ef73fc26e5b1553">auto_ptr</a> (std::auto_ptr&lt; X &gt; r)  throw ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classadobe_1_1auto__ptr.html#ad06e392b201745b8985deb5f590c10e8">operator std::auto_ptr&lt; X &gt;</a> ()  throw ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classadobe_1_1auto__ptr.html#a02574fcd6538ed96656939b0a9054092">element_type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classadobe_1_1auto__ptr.html#abfbf061d8025ca8b9c5cf9cd8ef82b88">operator*</a> () const   throw ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classadobe_1_1auto__ptr.html#a733dfdff2b2b0c1cfa60513deeabc5d6">pointer_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classadobe_1_1auto__ptr.html#aa02aff17e8ad44033e0f937c86b00dc6">operator-&gt;</a> () const   throw ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classadobe_1_1auto__ptr.html#a8f5b742b9a6ccb3abc0da2dabab363ff">operator=</a> (const clear_type *)  throw ()</td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename Y &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a> &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classadobe_1_1auto__ptr.html#a1236d88f4331aa55bbbd341701ae351c">operator=</a> (<a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a>&lt; Y, typename traits_type::template rebind&lt; Y * &gt;::other &gt;)  throw ()</td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename Y &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a> &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classadobe_1_1auto__ptr.html#a30ba978cd74937b547d341631a625bb1">operator=</a> (std::auto_ptr&lt; Y &gt;)  throw ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classadobe_1_1auto__ptr.html#ac860dee02600e57ea658195f26e6b209">operator=</a> (<a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a> &amp;)  throw ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classadobe_1_1auto__ptr.html#a24996f62ff720a8c91c75f65ce27fa26">operator=</a> (std::auto_ptr&lt; X &gt;)  throw ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classadobe_1_1auto__ptr.html#a02574fcd6538ed96656939b0a9054092">element_type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classadobe_1_1auto__ptr.html#a7f0b260d22255dca9ff15e8951538d2e">operator[]</a> (std::size_t index) const   throw ()</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<h3>template&lt;typename X, class Traits = ptr_traits&lt;X*&gt;&gt;<br/>
 class adobe::auto_ptr&lt; X, Traits &gt;</h3>

<p>Although <code>std::auto_ptr&lt;&gt;</code> is a non-regular type, it has proven to be valueable especially when converting C or non-exception aware C++ to exception aware C++ code. It is also useful when dealing with C libraries (such as OS libraries) that by necisity return pointers.</p>
<p>However, <code>std::auto_ptr&lt;&gt;</code> has a number of limitations that make use error prone, limit when it can be used, and make it's use more combursome than necessary.</p>
<p>The <code><a class="el" href="classadobe_1_1auto__ptr.html" title="The adobe::auto_ptr&lt;&gt; template adds a number of extensions to std::auto_ptr&lt;&gt;.">auto_ptr</a>&lt;&gt;</code> includes the following not present in <code>std::auto_ptr&lt;&gt;</code>:</p>
<ul>
<li>The inclusion of ptr_traits to support alternative delete functions.</li>
<li>Proper support for array types.</li>
<li>Support for assignment from function results.</li>
<li>Safe bool casts.</li>
<li>Assignment and construction from NULL.</li>
</ul>
<p>Also, <code><a class="el" href="classadobe_1_1auto__resource.html" title="The template class auto_resource&lt; X, Traits &gt; provides similar functionality to auto_ptr for re...">auto_resource</a>&lt;&gt;</code> is provided for non-pointer and opaque pointer references.</p>
<p><b>Rationals:</b></p>
<p>Rational for not going with boost: scoped_ptr interface: The interface to boost:scoped_ptr is a constrained subset of <a class="el" href="classadobe_1_1auto__ptr.html" title="The adobe::auto_ptr&lt;&gt; template adds a number of extensions to std::auto_ptr&lt;&gt;.">auto_ptr</a> with out any improvements. I'm not a fan of providing a whole new interface to prevent the user from performing some operations.</p>
<p>Rational for traits instead of policies:</p>
<ul>
<li>Advantages of policies<ul>
<li>allows for per-instance state.</li>
<li>would allow for use with boost::function.</li>
</ul>
</li>
<li>Disadvanteages<ul>
<li>no real world examples to demonstrate the advantages.</li>
<li>complicates implementation to properly handle exceptions from throwing when assigning policies.</li>
<li>prohibits use of no-throw in declarations (may not be an actual disadvantage).</li>
<li>would require more complex interface for constructors.</li>
<li>would require swap be added to the interface to achieve a non-throwing swap and it is unclear how swap could be generally implemented.</li>
</ul>
</li>
</ul>
<p>In total I thought the advantages didn't warrant the effort. If someone come demonstrate a concrete instance where there would be a strong advantage I'd reconsider.</p>
<p>Differences between photoshop linear types and adobe:: types:</p>
<ul>
<li>traits_type replaces deallocator and provides custom null checks</li>
<li>Safe bool casts.</li>
<li>Assignment and construction from NULL.</li>
<li>template based constructor, assignment, and conversion</li>
</ul>
<ul>
<li>linear_resource -&gt; <a class="el" href="classadobe_1_1auto__resource.html" title="The template class auto_resource&lt; X, Traits &gt; provides similar functionality to auto_ptr for re...">adobe::auto_resource</a></li>
<li>linear_base_ptr -&gt; <a class="el" href="classadobe_1_1auto__ptr.html" title="The adobe::auto_ptr&lt;&gt; template adds a number of extensions to std::auto_ptr&lt;&gt;.">adobe::auto_ptr</a></li>
<li>linear_array&lt;T&gt; -&gt; <a class="el" href="classadobe_1_1auto__ptr.html" title="The adobe::auto_ptr&lt;&gt; template adds a number of extensions to std::auto_ptr&lt;&gt;.">adobe::auto_ptr</a>&lt;T[]&gt;</li>
<li>linear_ptr -&gt; <a class="el" href="classadobe_1_1auto__ptr.html" title="The adobe::auto_ptr&lt;&gt; template adds a number of extensions to std::auto_ptr&lt;&gt;.">adobe::auto_ptr</a> </li>
</ul>

<p>Definition at line <a class="el" href="memory_8hpp_source.html#l00398">398</a> of file <a class="el" href="memory_8hpp_source.html">memory.hpp</a>.</p>
<hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="a02574fcd6538ed96656939b0a9054092"></a><!-- doxytag: member="adobe::auto_ptr::element_type" ref="a02574fcd6538ed96656939b0a9054092" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef traits_type::element_type <a class="el" href="classadobe_1_1auto__ptr.html#a02574fcd6538ed96656939b0a9054092">element_type</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented from <a class="el" href="classadobe_1_1auto__resource.html#a02574fcd6538ed96656939b0a9054092">auto_resource&lt; X *, Traits &gt;</a>.</p>

<p>Definition at line <a class="el" href="memory_8hpp_source.html#l00405">405</a> of file <a class="el" href="memory_8hpp_source.html">memory.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="a733dfdff2b2b0c1cfa60513deeabc5d6"></a><!-- doxytag: member="adobe::auto_ptr::pointer_type" ref="a733dfdff2b2b0c1cfa60513deeabc5d6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef traits_type::pointer_type <a class="el" href="classadobe_1_1auto__ptr.html#a733dfdff2b2b0c1cfa60513deeabc5d6">pointer_type</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented from <a class="el" href="classadobe_1_1auto__resource.html#a733dfdff2b2b0c1cfa60513deeabc5d6">auto_resource&lt; X *, Traits &gt;</a>.</p>

<p>Definition at line <a class="el" href="memory_8hpp_source.html#l00406">406</a> of file <a class="el" href="memory_8hpp_source.html">memory.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="aada8c38edc7a4968494c4838ecfd99ce"></a><!-- doxytag: member="adobe::auto_ptr::traits_type" ref="aada8c38edc7a4968494c4838ecfd99ce" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef Traits <a class="el" href="classadobe_1_1auto__ptr.html#aada8c38edc7a4968494c4838ecfd99ce">traits_type</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented from <a class="el" href="classadobe_1_1auto__resource.html#aada8c38edc7a4968494c4838ecfd99ce">auto_resource&lt; X *, Traits &gt;</a>.</p>

<p>Definition at line <a class="el" href="memory_8hpp_source.html#l00404">404</a> of file <a class="el" href="memory_8hpp_source.html">memory.hpp</a>.</p>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a4775e8d2ba24664807347605c261789a"></a><!-- doxytag: member="adobe::auto_ptr::auto_ptr" ref="a4775e8d2ba24664807347605c261789a" args="(pointer_type p=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classadobe_1_1auto__ptr.html#a733dfdff2b2b0c1cfa60513deeabc5d6">pointer_type</a>&#160;</td>
          <td class="paramname"> <em>p</em> = <code>0</code>&#160;)</td>
          <td>  throw ()<code> [explicit]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="memory_8hpp_source.html#l00529">529</a> of file <a class="el" href="memory_8hpp_source.html">memory.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="ab0de1504f237180789f36df75ae4677e"></a><!-- doxytag: member="adobe::auto_ptr::auto_ptr" ref="ab0de1504f237180789f36df75ae4677e" args="(auto_ptr &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a>&lt; X, Traits &gt; &amp;&#160;</td>
          <td class="paramname"> <em>r</em>&#160;)</td>
          <td>  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="memory_8hpp_source.html#l00534">534</a> of file <a class="el" href="memory_8hpp_source.html">memory.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="ad6eb012788de2cc68c19446b54880577"></a><!-- doxytag: member="adobe::auto_ptr::auto_ptr" ref="ad6eb012788de2cc68c19446b54880577" args="(const auto_ptr&lt; Y, typename traits_type::template rebind&lt; Y * &gt;::other &gt; &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a>&lt; Y, typename traits_type::template rebind&lt; Y * &gt;::other &gt; &amp;&#160;</td>
          <td class="paramname"> <em>r</em>&#160;)</td>
          <td>  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="memory_8hpp_source.html#l00540">540</a> of file <a class="el" href="memory_8hpp_source.html">memory.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="ae5281bab050c2d379ef73fc26e5b1553"></a><!-- doxytag: member="adobe::auto_ptr::auto_ptr" ref="ae5281bab050c2d379ef73fc26e5b1553" args="(std::auto_ptr&lt; X &gt; r)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a> </td>
          <td>(</td>
          <td class="paramtype">std::auto_ptr&lt; X &gt;&#160;</td>
          <td class="paramname"> <em>r</em>&#160;)</td>
          <td>  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="memory_8hpp_source.html#l00572">572</a> of file <a class="el" href="memory_8hpp_source.html">memory.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="a2847d37d05c107bf8d268f6370dd1b42"></a><!-- doxytag: member="adobe::auto_ptr::auto_ptr" ref="a2847d37d05c107bf8d268f6370dd1b42" args="(std::auto_ptr&lt; Y &gt; r)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a> </td>
          <td>(</td>
          <td class="paramtype">std::auto_ptr&lt; Y &gt;&#160;</td>
          <td class="paramname"> <em>r</em>&#160;)</td>
          <td>  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="memory_8hpp_source.html#l00578">578</a> of file <a class="el" href="memory_8hpp_source.html">memory.hpp</a>.</p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="ad06e392b201745b8985deb5f590c10e8"></a><!-- doxytag: member="adobe::auto_ptr::operator std::auto_ptr&lt; X &gt;" ref="ad06e392b201745b8985deb5f590c10e8" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">operator std::auto_ptr&lt; X &gt; </td>
          <td>(</td>
          <td class="paramname">&#160;)</td>
          <td>  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="memory_8hpp_source.html#l00426">426</a> of file <a class="el" href="memory_8hpp_source.html">memory.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="abfbf061d8025ca8b9c5cf9cd8ef82b88"></a><!-- doxytag: member="adobe::auto_ptr::operator*" ref="abfbf061d8025ca8b9c5cf9cd8ef82b88" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a>&lt; X, Traits &gt;::<a class="el" href="classadobe_1_1auto__ptr.html#a02574fcd6538ed96656939b0a9054092">element_type</a> &amp; operator* </td>
          <td>(</td>
          <td class="paramname">&#160;)</td>
          <td> const  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="memory_8hpp_source.html#l00601">601</a> of file <a class="el" href="memory_8hpp_source.html">memory.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="aa02aff17e8ad44033e0f937c86b00dc6"></a><!-- doxytag: member="adobe::auto_ptr::operator&#45;&gt;" ref="aa02aff17e8ad44033e0f937c86b00dc6" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a>&lt; X, Traits &gt;::<a class="el" href="classadobe_1_1auto__ptr.html#a733dfdff2b2b0c1cfa60513deeabc5d6">pointer_type</a> operator-&gt; </td>
          <td>(</td>
          <td class="paramname">&#160;)</td>
          <td> const  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="memory_8hpp_source.html#l00608">608</a> of file <a class="el" href="memory_8hpp_source.html">memory.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="ac860dee02600e57ea658195f26e6b209"></a><!-- doxytag: member="adobe::auto_ptr::operator=" ref="ac860dee02600e57ea658195f26e6b209" args="(auto_ptr &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a>&lt; X, Traits &gt; &amp; operator= </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a>&lt; X, Traits &gt; &amp;&#160;</td>
          <td class="paramname"> <em>r</em>&#160;)</td>
          <td>  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="memory_8hpp_source.html#l00545">545</a> of file <a class="el" href="memory_8hpp_source.html">memory.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="a24996f62ff720a8c91c75f65ce27fa26"></a><!-- doxytag: member="adobe::auto_ptr::operator=" ref="a24996f62ff720a8c91c75f65ce27fa26" args="(std::auto_ptr&lt; X &gt;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a>&lt; X, Traits &gt; &amp; operator= </td>
          <td>(</td>
          <td class="paramtype">std::auto_ptr&lt; X &gt;&#160;</td>
          <td class="paramname"> <em>r</em>&#160;)</td>
          <td>  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="memory_8hpp_source.html#l00583">583</a> of file <a class="el" href="memory_8hpp_source.html">memory.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="a30ba978cd74937b547d341631a625bb1"></a><!-- doxytag: member="adobe::auto_ptr::operator=" ref="a30ba978cd74937b547d341631a625bb1" args="(std::auto_ptr&lt; Y &gt;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a>&lt; X, Traits &gt; &amp; operator= </td>
          <td>(</td>
          <td class="paramtype">std::auto_ptr&lt; Y &gt;&#160;</td>
          <td class="paramname"> <em>r</em>&#160;)</td>
          <td>  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="memory_8hpp_source.html#l00591">591</a> of file <a class="el" href="memory_8hpp_source.html">memory.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="a1236d88f4331aa55bbbd341701ae351c"></a><!-- doxytag: member="adobe::auto_ptr::operator=" ref="a1236d88f4331aa55bbbd341701ae351c" args="(auto_ptr&lt; Y, typename traits_type::template rebind&lt; Y * &gt;::other &gt;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a>&lt; X, Traits &gt; &amp; operator= </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a>&lt; Y, typename traits_type::template rebind&lt; Y * &gt;::other &gt;&#160;</td>
          <td class="paramname"> <em>r</em>&#160;)</td>
          <td>  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="memory_8hpp_source.html#l00553">553</a> of file <a class="el" href="memory_8hpp_source.html">memory.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="a8f5b742b9a6ccb3abc0da2dabab363ff"></a><!-- doxytag: member="adobe::auto_ptr::operator=" ref="a8f5b742b9a6ccb3abc0da2dabab363ff" args="(const clear_type *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a>&lt; X, Traits &gt; &amp; operator= </td>
          <td>(</td>
          <td class="paramtype">const clear_type *&#160;</td>
          <td class="paramname">&#160;)</td>
          <td>  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="memory_8hpp_source.html#l00563">563</a> of file <a class="el" href="memory_8hpp_source.html">memory.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="a7f0b260d22255dca9ff15e8951538d2e"></a><!-- doxytag: member="adobe::auto_ptr::operator[]" ref="a7f0b260d22255dca9ff15e8951538d2e" args="(std::size_t index) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classadobe_1_1auto__ptr.html">auto_ptr</a>&lt; X, Traits &gt;::<a class="el" href="classadobe_1_1auto__ptr.html#a02574fcd6538ed96656939b0a9054092">element_type</a> &amp; operator[] </td>
          <td>(</td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"> <em>index</em>&#160;)</td>
          <td> const  throw ()</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="memory_8hpp_source.html#l00615">615</a> of file <a class="el" href="memory_8hpp_source.html">memory.hpp</a>.</p>

</div>
</div>
</div>

<!-- Begin Footer -->
</td></tr>
</table>
</div> <!-- content -->
<div class='footerdiv'>
    <div id='footersub'>
        <ul>
            <li><a href="http://www.adobe.com/go/gftray_foot_aboutadobe">Company</a>&nbsp;|&nbsp;</li>
            <li><a href="http://www.adobe.com/go/gftray_foot_privacy_security">Online Privacy Policy</a>&nbsp;|&nbsp;</li>
            <li><a href="http://www.adobe.com/go/gftray_foot_terms">Terms of Use</a>&nbsp;|&nbsp;</li>
    
            <li><a href="http://www.adobe.com/go/gftray_foot_contact_adobe">Contact Us</a>&nbsp;|&nbsp;</li>
            <li><a href="http://www.adobe.com/go/gftray_foot_accessibility">Accessibility</a>&nbsp;|&nbsp;</li>
            <li><a href="http://www.adobe.com/go/gftray_foot_report_piracy">Report Piracy</a>&nbsp;|&nbsp;</li>
            <li><a href="http://www.adobe.com/go/gftray_foot_permissions_trademarks">Permissions &amp; Trademarks</a>&nbsp;|&nbsp;</li>
            <li><a href="http://www.adobe.com/go/gftray_foot_product_license_agreements">Product License Agreements</a>&nbsp;|&nbsp;</li>
    
            <li><a href="http://www.adobe.com/go/gftray_foot_feedback">Send Feedback</a></li>
        </ul>
        <div>
            <p>Copyright &#169; 2006-2007 Adobe Systems Incorporated.</p>
            <p>Use of this website signifies your agreement to the <a href="http://www.adobe.com/go/gftray_foot_terms">Terms of Use</a> and <a href="http://www.adobe.com/go/gftray_foot_privacy_security">Online Privacy Policy</a>.</p>
            <p>Search powered by <a href="http://www.google.com/" target="new">Google</a></p>
        </div>
	</div>
</div>
<script type="text/javascript">
_uacct = "UA-396569-1";
urchinTracker();
</script>
</body>
</html>
