diff options
Diffstat (limited to 'gcc-4.8/libstdc++-v3/doc/html/manual/memory.html')
| -rw-r--r-- | gcc-4.8/libstdc++-v3/doc/html/manual/memory.html | 46 | 
1 files changed, 23 insertions, 23 deletions
| diff --git a/gcc-4.8/libstdc++-v3/doc/html/manual/memory.html b/gcc-4.8/libstdc++-v3/doc/html/manual/memory.html index b31c49d..091b1a4 100644 --- a/gcc-4.8/libstdc++-v3/doc/html/manual/memory.html +++ b/gcc-4.8/libstdc++-v3/doc/html/manual/memory.html @@ -1,5 +1,5 @@  <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!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"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Memory</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="utilities.html" title="Chapter 6.  Utilities" /><link rel="prev" href="pairs.html" title="Pairs" /><link rel="next" href="traits.html" title="Traits" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Memory</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="pairs.html">Prev</a> </td><th width="60%" align="center">Chapter 6.  +<!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"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Memory</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="utilities.html" title="Chapter 6.  Utilities" /><link rel="prev" href="pairs.html" title="Pairs" /><link rel="next" href="traits.html" title="Traits" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Memory</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="pairs.html">Prev</a> </td><th width="60%" align="center">Chapter 6.     Utilities  </th><td width="20%" align="right"> <a accesskey="n" href="traits.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.util.memory"></a>Memory</h2></div></div></div><p> @@ -92,7 +92,7 @@      or loading and unloading shared objects in memory. As such, using      caching allocators on systems that do not support      <code class="function">abi::__cxa_atexit</code> is not recommended. -  </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.impl"></a>Implementation</h4></div></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idp13920976"></a>Interface Design</h5></div></div></div><p> +  </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.impl"></a>Implementation</h4></div></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm270001611968"></a>Interface Design</h5></div></div></div><p>       The only allocator interface that       is supported is the standard C++ interface. As such, all STL       containers have been adjusted, and all external allocators have @@ -105,7 +105,7 @@     </p><p>       The base class that <code class="classname">allocator</code> is derived from       may not be user-configurable. -</p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idp13924528"></a>Selecting Default Allocation Policy</h5></div></div></div><p> +</p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm270001608416"></a>Selecting Default Allocation Policy</h5></div></div></div><p>       It's difficult to pick an allocation strategy that will provide     maximum utility, without excessively penalizing some behavior. In     fact, it's difficult just deciding which typical actions to measure @@ -142,7 +142,7 @@       The current default choice for       <code class="classname">allocator</code> is       <code class="classname">__gnu_cxx::new_allocator</code>. -   </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idp13937824"></a>Disabling Memory Caching</h5></div></div></div><p> +   </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm270001595120"></a>Disabling Memory Caching</h5></div></div></div><p>        In use, <code class="classname">allocator</code> may allocate and        deallocate using implementation-specific strategies and        heuristics. Because of this, a given call to an allocator object's @@ -309,33 +309,33 @@  	 of the used and unused memory locations. It has its own  	 <a class="link" href="bitmap_allocator.html" title="Chapter 21. The bitmap_allocator">chapter</a>           in the documentation. -       </p></li></ol></div></div><div class="bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.biblio"></a>Bibliography</h4></div></div></div><div class="biblioentry"><a id="idp13992848"></a><p><span class="citetitle"><em class="citetitle"> +       </p></li></ol></div></div><div class="bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.biblio"></a>Bibliography</h4></div></div></div><div class="biblioentry"><a id="idm270000084224"></a><p><span class="citetitle"><em class="citetitle">      ISO/IEC 14882:1998 Programming languages - C++      </em>. </span>        isoc++_1998 -    <span class="pagenums">20.4 Memory. </span></p></div><div class="biblioentry"><a id="idp13994688"></a><p><span class="title"><em> -	<a class="link" href="http://www.drdobbs.com/cpp/184403759" target="_top"> +    <span class="pagenums">20.4 Memory. </span></p></div><div class="biblioentry"><a id="idm270000082384"></a><p><span class="title"><em> +	<a class="link" href="http://www.drdobbs.com/the-standard-librarian-what-are-allocato/184403759" target="_top">        The Standard Librarian: What Are Allocators Good For?  	</a>        </em>. </span><span class="author"><span class="firstname">Matt</span> <span class="surname">Austern</span>. </span><span class="publisher"><span class="publishername">  	C/C++ Users Journal -      . </span></span></p></div><div class="biblioentry"><a id="idp13998416"></a><p><span class="title"><em> +      . </span></span></p></div><div class="biblioentry"><a id="idm270000078608"></a><p><span class="title"><em>  	<a class="link" href="http://www.hoard.org/" target="_top">        The Hoard Memory Allocator  	</a> -      </em>. </span><span class="author"><span class="firstname">Emery</span> <span class="surname">Berger</span>. </span></p></div><div class="biblioentry"><a id="idp14001184"></a><p><span class="title"><em> +      </em>. </span><span class="author"><span class="firstname">Emery</span> <span class="surname">Berger</span>. </span></p></div><div class="biblioentry"><a id="idm270000075840"></a><p><span class="title"><em>  	<a class="link" href="http://people.cs.umass.edu/~emery/pubs/berger-oopsla2002.pdf" target="_top">        Reconsidering Custom Memory Allocation  	</a> -      </em>. </span><span class="author"><span class="firstname">Emery</span> <span class="surname">Berger</span>. </span><span class="author"><span class="firstname">Ben</span> <span class="surname">Zorn</span>. </span><span class="author"><span class="firstname">Kathryn</span> <span class="surname">McKinley</span>. </span><span class="copyright">Copyright © 2002 OOPSLA. </span></p></div><div class="biblioentry"><a id="idp14007344"></a><p><span class="title"><em> +      </em>. </span><span class="author"><span class="firstname">Emery</span> <span class="surname">Berger</span>. </span><span class="author"><span class="firstname">Ben</span> <span class="surname">Zorn</span>. </span><span class="author"><span class="firstname">Kathryn</span> <span class="surname">McKinley</span>. </span><span class="copyright">Copyright © 2002 OOPSLA. </span></p></div><div class="biblioentry"><a id="idm270000069680"></a><p><span class="title"><em>  	<a class="link" href="http://www.angelikalanger.com/Articles/C++Report/Allocators/Allocators.html" target="_top">        Allocator Types  	</a>        </em>. </span><span class="author"><span class="firstname">Klaus</span> <span class="surname">Kreft</span>. </span><span class="author"><span class="firstname">Angelika</span> <span class="surname">Langer</span>. </span><span class="publisher"><span class="publishername">  	C/C++ Users Journal -      . </span></span></p></div><div class="biblioentry"><a id="idp14012080"></a><p><span class="citetitle"><em class="citetitle">The C++ Programming Language</em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright © 2000 . </span><span class="pagenums">19.4 Allocators. </span><span class="publisher"><span class="publishername"> +      . </span></span></p></div><div class="biblioentry"><a id="idm270000064944"></a><p><span class="citetitle"><em class="citetitle">The C++ Programming Language</em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright © 2000 . </span><span class="pagenums">19.4 Allocators. </span><span class="publisher"><span class="publishername">  	Addison Wesley -      . </span></span></p></div><div class="biblioentry"><a id="idp14016512"></a><p><span class="citetitle"><em class="citetitle">Yalloc: A Recycling C++ Allocator</em>. </span><span class="author"><span class="firstname">Felix</span> <span class="surname">Yen</span>. </span></p></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="std.util.memory.auto_ptr"></a>auto_ptr</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="auto_ptr.limitations"></a>Limitations</h4></div></div></div><p>Explaining all of the fun and delicious things that can +      . </span></span></p></div><div class="biblioentry"><a id="idm270000060512"></a><p><span class="citetitle"><em class="citetitle">Yalloc: A Recycling C++ Allocator</em>. </span><span class="author"><span class="firstname">Felix</span> <span class="surname">Yen</span>. </span></p></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="std.util.memory.auto_ptr"></a>auto_ptr</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="auto_ptr.limitations"></a>Limitations</h4></div></div></div><p>Explaining all of the fun and delicious things that can     happen with misuse of the <code class="classname">auto_ptr</code> class     template (called <acronym class="acronym">AP</acronym> here) would take some     time. Suffice it to say that the use of <acronym class="acronym">AP</acronym> @@ -445,7 +445,7 @@ drops to zero.  Derived classes override those functions to destroy resources in a context  where the correct dynamic type is known. This is an application of the  technique known as type erasure. -  </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.impl"></a>Implementation</h4></div></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idp15512272"></a>Class Hierarchy</h5></div></div></div><p> +  </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.impl"></a>Implementation</h4></div></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm270000019344"></a>Class Hierarchy</h5></div></div></div><p>  A <code class="classname">shared_ptr<T></code> contains a pointer of  type <span class="type">T*</span> and an object of type  <code class="classname">__shared_count</code>. The shared_count contains a @@ -492,9 +492,9 @@ C++11-only features are: rvalue-ref/move support, allocator support,  aliasing constructor, make_shared & allocate_shared. Additionally,  the constructors taking <code class="classname">auto_ptr</code> parameters are  deprecated in C++11 mode. -    </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idp15534784"></a>Thread Safety</h5></div></div></div><p> +    </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm269999996832"></a>Thread Safety</h5></div></div></div><p>  The -<a class="link" href="http://boost.org/libs/smart_ptr/shared_ptr.htm#ThreadSafety" target="_top">Thread +<a class="link" href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm#ThreadSafety" target="_top">Thread  Safety</a> section of the Boost shared_ptr documentation says "shared_ptr  objects offer the same level of thread safety as built-in types."  The implementation must ensure that concurrent updates to separate shared_ptr @@ -537,7 +537,7 @@ compiler, standard library, platform etc. For the version of  shared_ptr in libstdc++ the compiler and library are fixed, which  makes things much simpler: we have an atomic CAS or we don't, see Lock  Policy below for details. -</p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idp15542080"></a>Selecting Lock Policy</h5></div></div></div><p> +</p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm269999989536"></a>Selecting Lock Policy</h5></div></div></div><p>      </p><p>  There is a single <code class="classname">_Sp_counted_base</code> class,  which is a template parameterized on the enum @@ -578,7 +578,7 @@ used when libstdc++ is built without <code class="literal">--enable-threads</cod         <code class="filename">ext/atomicity.h</code>, which detect if the program         is multi-threaded.  If only one thread of execution exists in         the program then less expensive non-atomic operations are used. -     </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idp15556704"></a>Related functions and classes</h5></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="code">dynamic_pointer_cast</code>, <code class="code">static_pointer_cast</code>, +     </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm269999974912"></a>Related functions and classes</h5></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="code">dynamic_pointer_cast</code>, <code class="code">static_pointer_cast</code>,  <code class="code">const_pointer_cast</code></span></dt><dd><p>  As noted in N2351, these functions can be implemented non-intrusively using  the alias constructor.  However the aliasing constructor is only available @@ -611,13 +611,13 @@ is called.  Users should not try to use this.  As well as the extra constructors, this implementation also needs some  members of _Sp_counted_deleter to be protected where they could otherwise  be private. -    </p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.using"></a>Use</h4></div></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idp15573056"></a>Examples</h5></div></div></div><p> +    </p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.using"></a>Use</h4></div></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm269999958496"></a>Examples</h5></div></div></div><p>        Examples of use can be found in the testsuite, under        <code class="filename">testsuite/tr1/2_general_utilities/shared_ptr</code>,        <code class="filename">testsuite/20_util/shared_ptr</code>        and        <code class="filename">testsuite/20_util/weak_ptr</code>. -    </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idp15576640"></a>Unresolved Issues</h5></div></div></div><p> +    </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm269999954912"></a>Unresolved Issues</h5></div></div></div><p>        The <span class="emphasis"><em><code class="classname">shared_ptr</code> atomic access</em></span>        clause in the C++11 standard is not implemented in GCC.      </p><p> @@ -658,25 +658,25 @@ be private.      code to work with, Peter Dimov in particular for his help and      invaluable advice on thread safety.  Phillip Jordan and Paolo      Carlini for the lock policy implementation. -  </p></div><div class="bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.biblio"></a>Bibliography</h4></div></div></div><div class="biblioentry"><a id="idp15587936"></a><p><span class="title"><em> +  </p></div><div class="bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.biblio"></a>Bibliography</h4></div></div></div><div class="biblioentry"><a id="idm269999943680"></a><p><span class="title"><em>  	<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2351.htm" target="_top">        Improving shared_ptr for C++0x, Revision 2  	</a>        </em>. </span><span class="subtitle">        N2351 -    . </span></p></div><div class="biblioentry"><a id="idp15590224"></a><p><span class="title"><em> +    . </span></p></div><div class="biblioentry"><a id="idm269999941392"></a><p><span class="title"><em>  	<a class="link" href="http://open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2456.html" target="_top">        C++ Standard Library Active Issues List  	</a>        </em>. </span><span class="subtitle">        N2456 -    . </span></p></div><div class="biblioentry"><a id="idp15592512"></a><p><span class="title"><em> +    . </span></p></div><div class="biblioentry"><a id="idm269999939104"></a><p><span class="title"><em>  	<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2461.pdf" target="_top">        Working Draft, Standard for Programming Language C++  	</a>        </em>. </span><span class="subtitle">        N2461 -    . </span></p></div><div class="biblioentry"><a id="idp15594816"></a><p><span class="title"><em> +    . </span></p></div><div class="biblioentry"><a id="idm269999936800"></a><p><span class="title"><em>  	<a class="link" href="http://boost.org/libs/smart_ptr/shared_ptr.htm" target="_top">        Boost C++ Libraries documentation, shared_ptr  	</a> | 
