mirror of git://gcc.gnu.org/git/gcc.git
using.xml: Update.
2010-02-18 Benjamin Kosnik <bkoz@redhat.com> * doc/xml/manual/using.xml: Update. * doc/xml/manual/status_cxx1998.xml: Same. * doc/xml/manual/status_cxx200x.xml: Add link. * doc/html/*: Regenerate. * testsuite/17_intro/freestanding.cc: Add. From-SVN: r156871
This commit is contained in:
parent
584fd146d2
commit
bb7dcd0ef3
|
|
@ -1,3 +1,12 @@
|
||||||
|
2010-02-18 Benjamin Kosnik <bkoz@redhat.com>
|
||||||
|
|
||||||
|
* doc/xml/manual/using.xml: Update.
|
||||||
|
* doc/xml/manual/status_cxx1998.xml: Same.
|
||||||
|
* doc/xml/manual/status_cxx200x.xml: Add link.
|
||||||
|
* doc/html/*: Regenerate.
|
||||||
|
|
||||||
|
* testsuite/17_intro/freestanding.cc: Add.
|
||||||
|
|
||||||
2010-02-18 Paolo Carlini <paolo.carlini@oracle.com>
|
2010-02-18 Paolo Carlini <paolo.carlini@oracle.com>
|
||||||
|
|
||||||
* libsupc++/typeinfo: Add system_header pragma.
|
* libsupc++/typeinfo: Add system_header pragma.
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
<a class="ulink" href="http://www.fsf.org/" target="_top">FSF
|
<a class="ulink" href="http://www.fsf.org/" target="_top">FSF
|
||||||
</a>
|
</a>
|
||||||
</p></div><div><div class="legalnotice" title="Legal Notice"><a id="id530139"></a><p>
|
</p></div><div><div class="legalnotice" title="Legal Notice"><a id="id561368"></a><p>
|
||||||
<a class="link" href="manual/license.html" title="License">License
|
<a class="link" href="manual/license.html" title="License">License
|
||||||
</a>
|
</a>
|
||||||
</p></div></div></div><hr /></div><p>
|
</p></div></div></div><hr /></div><p>
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
2008
|
2008
|
||||||
|
|
||||||
<a class="ulink" href="http://www.fsf.org" target="_top">FSF</a>
|
<a class="ulink" href="http://www.fsf.org" target="_top">FSF</a>
|
||||||
</p></div></div><hr /></div><div class="qandaset" title="Frequently Asked Questions"><a id="id500848"></a><dl><dt>1. <a href="faq.html#faq.info">General Information</a></dt><dd><dl><dt>1.1. <a href="faq.html#faq.what">
|
</p></div></div><hr /></div><div class="qandaset" title="Frequently Asked Questions"><a id="id571249"></a><dl><dt>1. <a href="faq.html#faq.info">General Information</a></dt><dd><dl><dt>1.1. <a href="faq.html#faq.what">
|
||||||
What is libstdc++?
|
What is libstdc++?
|
||||||
</a></dt><dt>1.2. <a href="faq.html#faq.why">
|
</a></dt><dt>1.2. <a href="faq.html#faq.why">
|
||||||
Why should I use libstdc++?
|
Why should I use libstdc++?
|
||||||
|
|
|
||||||
|
|
@ -464,56 +464,56 @@ gcc test.c -g -O2 -L. -lone -ltwo /usr/lib/libstdc++.so.5 /usr/lib/libstdc++.so.
|
||||||
<a class="ulink" href="http://gcc.gnu.org/PR24660" target="_top">24660: versioning weak symbols in libstdc++</a>
|
<a class="ulink" href="http://gcc.gnu.org/PR24660" target="_top">24660: versioning weak symbols in libstdc++</a>
|
||||||
</p><p>
|
</p><p>
|
||||||
<a class="ulink" href="http://gcc.gnu.org/PR19664" target="_top">19664: libstdc++ headers should have pop/push of the visibility around the declarations</a>
|
<a class="ulink" href="http://gcc.gnu.org/PR19664" target="_top">19664: libstdc++ headers should have pop/push of the visibility around the declarations</a>
|
||||||
</p></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="abi.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry" title="ABIcheck, a vague idea of checking ABI compatibility"><a id="id514064"></a><p><span class="title"><i>
|
</p></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="abi.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry" title="ABIcheck, a vague idea of checking ABI compatibility"><a id="id725008"></a><p><span class="title"><i>
|
||||||
ABIcheck, a vague idea of checking ABI compatibility
|
ABIcheck, a vague idea of checking ABI compatibility
|
||||||
</i>. </span><span class="biblioid">
|
</i>. </span><span class="biblioid">
|
||||||
<a class="ulink" href="http://abicheck.sourceforge.net/" target="_top">
|
<a class="ulink" href="http://abicheck.sourceforge.net/" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="C++ ABI Reference"><a id="id638062"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry" title="C++ ABI Reference"><a id="id725026"></a><p><span class="title"><i>
|
||||||
C++ ABI Reference
|
C++ ABI Reference
|
||||||
</i>. </span><span class="biblioid">
|
</i>. </span><span class="biblioid">
|
||||||
<a class="ulink" href="http://www.codesourcery.com/public/cxx-abi/" target="_top">
|
<a class="ulink" href="http://www.codesourcery.com/public/cxx-abi/" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="Intel® Compilers for Linux* -Compatibility with the GNU Compilers"><a id="id638079"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry" title="Intel® Compilers for Linux* -Compatibility with the GNU Compilers"><a id="id725043"></a><p><span class="title"><i>
|
||||||
Intel® Compilers for Linux* -Compatibility with the GNU Compilers
|
Intel® Compilers for Linux* -Compatibility with the GNU Compilers
|
||||||
</i>. </span><span class="biblioid">
|
</i>. </span><span class="biblioid">
|
||||||
<a class="ulink" href="http://www.intel.com/cd/software/products/asmo-na/eng/284736.htm" target="_top">
|
<a class="ulink" href="http://www.intel.com/cd/software/products/asmo-na/eng/284736.htm" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="Sun Solaris 2.9 : Linker and Libraries Guide (document 816-1386)"><a id="id638095"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry" title="Sun Solaris 2.9 : Linker and Libraries Guide (document 816-1386)"><a id="id725060"></a><p><span class="title"><i>
|
||||||
Sun Solaris 2.9 : Linker and Libraries Guide (document 816-1386)
|
Sun Solaris 2.9 : Linker and Libraries Guide (document 816-1386)
|
||||||
</i>. </span><span class="biblioid">
|
</i>. </span><span class="biblioid">
|
||||||
<a class="ulink" href="http://docs.sun.com/app/docs/doc/817-1984" target="_top">
|
<a class="ulink" href="http://docs.sun.com/app/docs/doc/817-1984" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="Sun Solaris 2.9 : C++ Migration Guide (document 816-2459)"><a id="id638112"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry" title="Sun Solaris 2.9 : C++ Migration Guide (document 816-2459)"><a id="id725077"></a><p><span class="title"><i>
|
||||||
Sun Solaris 2.9 : C++ Migration Guide (document 816-2459)
|
Sun Solaris 2.9 : C++ Migration Guide (document 816-2459)
|
||||||
</i>. </span><span class="biblioid">
|
</i>. </span><span class="biblioid">
|
||||||
<a class="ulink" href="http://docs.sun.com/app/docs/doc/819-5266" target="_top">
|
<a class="ulink" href="http://docs.sun.com/app/docs/doc/819-5266" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="How to Write Shared Libraries"><a id="id638129"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry" title="How to Write Shared Libraries"><a id="id725094"></a><p><span class="title"><i>
|
||||||
How to Write Shared Libraries
|
How to Write Shared Libraries
|
||||||
</i>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="biblioid">
|
</i>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="biblioid">
|
||||||
<a class="ulink" href="http://people.redhat.com/drepper/dsohowto.pdf" target="_top">
|
<a class="ulink" href="http://people.redhat.com/drepper/dsohowto.pdf" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="C++ ABI for the ARM Architecture"><a id="id638157"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry" title="C++ ABI for the ARM Architecture"><a id="id725122"></a><p><span class="title"><i>
|
||||||
C++ ABI for the ARM Architecture
|
C++ ABI for the ARM Architecture
|
||||||
</i>. </span><span class="biblioid">
|
</i>. </span><span class="biblioid">
|
||||||
<a class="ulink" href="http://www.arm.com/miscPDFs/8033.pdf" target="_top">
|
<a class="ulink" href="http://www.arm.com/miscPDFs/8033.pdf" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="Dynamic Shared Objects: Survey and Issues"><a id="id638174"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry" title="Dynamic Shared Objects: Survey and Issues"><a id="id651420"></a><p><span class="title"><i>
|
||||||
Dynamic Shared Objects: Survey and Issues
|
Dynamic Shared Objects: Survey and Issues
|
||||||
</i>. </span><span class="subtitle">
|
</i>. </span><span class="subtitle">
|
||||||
ISO C++ J16/06-0046
|
ISO C++ J16/06-0046
|
||||||
. </span><span class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span>. </span><span class="biblioid">
|
. </span><span class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span>. </span><span class="biblioid">
|
||||||
<a class="ulink" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1976.html" target="_top">
|
<a class="ulink" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1976.html" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="Versioning With Namespaces"><a id="id638207"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry" title="Versioning With Namespaces"><a id="id651453"></a><p><span class="title"><i>
|
||||||
Versioning With Namespaces
|
Versioning With Namespaces
|
||||||
</i>. </span><span class="subtitle">
|
</i>. </span><span class="subtitle">
|
||||||
ISO C++ J16/06-0083
|
ISO C++ J16/06-0083
|
||||||
. </span><span class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span>. </span><span class="biblioid">
|
. </span><span class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span>. </span><span class="biblioid">
|
||||||
<a class="ulink" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2013.html" target="_top">
|
<a class="ulink" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2013.html" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="Binary Compatibility of Shared Libraries Implemented in C++ on GNU/Linux Systems"><a id="id638240"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry" title="Binary Compatibility of Shared Libraries Implemented in C++ on GNU/Linux Systems"><a id="id651486"></a><p><span class="title"><i>
|
||||||
Binary Compatibility of Shared Libraries Implemented in C++ on GNU/Linux Systems
|
Binary Compatibility of Shared Libraries Implemented in C++ on GNU/Linux Systems
|
||||||
</i>. </span><span class="subtitle">
|
</i>. </span><span class="subtitle">
|
||||||
SYRCoSE 2009
|
SYRCoSE 2009
|
||||||
|
|
|
||||||
|
|
@ -5,5 +5,5 @@
|
||||||
|
|
||||||
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt08ch19s02.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt09pr02.html">Next</a></td></tr></table><hr /></div><div class="part" title="Part IX. Algorithms"><div class="titlepage"><div><div><h1 class="title"><a id="manual.algorithms"></a>Part IX.
|
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt08ch19s02.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt09pr02.html">Next</a></td></tr></table><hr /></div><div class="part" title="Part IX. Algorithms"><div class="titlepage"><div><div><h1 class="title"><a id="manual.algorithms"></a>Part IX.
|
||||||
Algorithms
|
Algorithms
|
||||||
<a id="id530067" class="indexterm"></a>
|
<a id="id638163" class="indexterm"></a>
|
||||||
</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="preface"><a href="bk01pt09pr02.html"></a></span></dt><dt><span class="chapter"><a href="bk01pt09ch20.html">20. Mutating</a></span></dt><dd><dl><dt><span class="sect1"><a href="bk01pt09ch20.html#algorithms.mutating.swap"><code class="function">swap</code></a></span></dt><dd><dl><dt><span class="sect2"><a href="bk01pt09ch20.html#algorithms.swap.specializations">Specializations</a></span></dt></dl></dd></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt08ch19s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="spine.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt09pr02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">One Past the End </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></body></html>
|
</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="preface"><a href="bk01pt09pr02.html"></a></span></dt><dt><span class="chapter"><a href="bk01pt09ch20.html">20. Mutating</a></span></dt><dd><dl><dt><span class="sect1"><a href="bk01pt09ch20.html#algorithms.mutating.swap"><code class="function">swap</code></a></span></dt><dd><dl><dt><span class="sect2"><a href="bk01pt09ch20.html#algorithms.swap.specializations">Specializations</a></span></dt></dl></dd></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt08ch19s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="spine.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt09pr02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">One Past the End </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></body></html>
|
||||||
|
|
|
||||||
|
|
@ -75,11 +75,11 @@ _Alloc_traits</code> have been removed.
|
||||||
<span class="type">__alloc</span> to select an underlying allocator that
|
<span class="type">__alloc</span> to select an underlying allocator that
|
||||||
satisfied memory allocation requests. The selection of this
|
satisfied memory allocation requests. The selection of this
|
||||||
underlying allocator was not user-configurable.
|
underlying allocator was not user-configurable.
|
||||||
</p><div class="table"><a id="id621452"></a><p class="title"><b>Table B.1. Extension Allocators</b></p><div class="table-contents"><table summary="Extension Allocators" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left">Allocator (3.4)</th><th align="left">Header (3.4)</th><th align="left">Allocator (3.[0-3])</th><th align="left">Header (3.[0-3])</th></tr></thead><tbody><tr><td align="left"><code class="classname">__gnu_cxx::new_allocator<T></code></td><td align="left"><code class="filename">ext/new_allocator.h</code></td><td align="left"><code class="classname">std::__new_alloc</code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::malloc_allocator<T></code></td><td align="left"><code class="filename">ext/malloc_allocator.h</code></td><td align="left"><code class="classname">std::__malloc_alloc_template<int></code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::debug_allocator<T></code></td><td align="left"><code class="filename">ext/debug_allocator.h</code></td><td align="left"><code class="classname">std::debug_alloc<T></code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::__pool_alloc<T></code></td><td align="left"><code class="filename">ext/pool_allocator.h</code></td><td align="left"><code class="classname">std::__default_alloc_template<bool,int></code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::__mt_alloc<T></code></td><td align="left"><code class="filename">ext/mt_allocator.h</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left"><code class="classname">__gnu_cxx::bitmap_allocator<T></code></td><td align="left"><code class="filename">ext/bitmap_allocator.h</code></td><td align="left"> </td><td align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><p> Releases after gcc-3.4 have continued to add to the collection
|
</p><div class="table"><a id="id653273"></a><p class="title"><b>Table B.1. Extension Allocators</b></p><div class="table-contents"><table summary="Extension Allocators" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left">Allocator (3.4)</th><th align="left">Header (3.4)</th><th align="left">Allocator (3.[0-3])</th><th align="left">Header (3.[0-3])</th></tr></thead><tbody><tr><td align="left"><code class="classname">__gnu_cxx::new_allocator<T></code></td><td align="left"><code class="filename">ext/new_allocator.h</code></td><td align="left"><code class="classname">std::__new_alloc</code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::malloc_allocator<T></code></td><td align="left"><code class="filename">ext/malloc_allocator.h</code></td><td align="left"><code class="classname">std::__malloc_alloc_template<int></code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::debug_allocator<T></code></td><td align="left"><code class="filename">ext/debug_allocator.h</code></td><td align="left"><code class="classname">std::debug_alloc<T></code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::__pool_alloc<T></code></td><td align="left"><code class="filename">ext/pool_allocator.h</code></td><td align="left"><code class="classname">std::__default_alloc_template<bool,int></code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::__mt_alloc<T></code></td><td align="left"><code class="filename">ext/mt_allocator.h</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left"><code class="classname">__gnu_cxx::bitmap_allocator<T></code></td><td align="left"><code class="filename">ext/bitmap_allocator.h</code></td><td align="left"> </td><td align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><p> Releases after gcc-3.4 have continued to add to the collection
|
||||||
of available allocators. All of these new allocators are
|
of available allocators. All of these new allocators are
|
||||||
standard-style. The following table includes details, along with
|
standard-style. The following table includes details, along with
|
||||||
the first released version of GCC that included the extension allocator.
|
the first released version of GCC that included the extension allocator.
|
||||||
</p><div class="table"><a id="id574587"></a><p class="title"><b>Table B.2. Extension Allocators Continued</b></p><div class="table-contents"><table summary="Extension Allocators Continued" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left">Allocator</th><th align="left">Include</th><th align="left">Version</th></tr></thead><tbody><tr><td align="left"><code class="classname">__gnu_cxx::array_allocator<T></code></td><td align="left"><code class="filename">ext/array_allocator.h</code></td><td align="left">4.0.0</td></tr><tr><td align="left"><code class="classname">__gnu_cxx::throw_allocator<T></code></td><td align="left"><code class="filename">ext/throw_allocator.h</code></td><td align="left">4.2.0</td></tr></tbody></table></div></div><br class="table-break" /><p>
|
</p><div class="table"><a id="id594438"></a><p class="title"><b>Table B.2. Extension Allocators Continued</b></p><div class="table-contents"><table summary="Extension Allocators Continued" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left">Allocator</th><th align="left">Include</th><th align="left">Version</th></tr></thead><tbody><tr><td align="left"><code class="classname">__gnu_cxx::array_allocator<T></code></td><td align="left"><code class="filename">ext/array_allocator.h</code></td><td align="left">4.0.0</td></tr><tr><td align="left"><code class="classname">__gnu_cxx::throw_allocator<T></code></td><td align="left"><code class="filename">ext/throw_allocator.h</code></td><td align="left">4.2.0</td></tr></tbody></table></div></div><br class="table-break" /><p>
|
||||||
Debug mode first appears.
|
Debug mode first appears.
|
||||||
</p><p>
|
</p><p>
|
||||||
Precompiled header support <acronym class="acronym">PCH</acronym> support.
|
Precompiled header support <acronym class="acronym">PCH</acronym> support.
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt12ch41s03.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="source_organization.html">Next</a></td></tr></table><hr /></div><div class="appendix" title="Appendix A. Contributing"><div class="titlepage"><div><div><h2 class="title"><a id="appendix.contrib"></a>Appendix A.
|
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt12ch41s03.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="source_organization.html">Next</a></td></tr></table><hr /></div><div class="appendix" title="Appendix A. Contributing"><div class="titlepage"><div><div><h2 class="title"><a id="appendix.contrib"></a>Appendix A.
|
||||||
Contributing
|
Contributing
|
||||||
<a id="id623874" class="indexterm"></a>
|
<a id="id598653" class="indexterm"></a>
|
||||||
</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="appendix_contributing.html#contrib.list">Contributor Checklist</a></span></dt><dd><dl><dt><span class="sect2"><a href="appendix_contributing.html#list.reading">Reading</a></span></dt><dt><span class="sect2"><a href="appendix_contributing.html#list.copyright">Assignment</a></span></dt><dt><span class="sect2"><a href="appendix_contributing.html#list.getting">Getting Sources</a></span></dt><dt><span class="sect2"><a href="appendix_contributing.html#list.patches">Submitting Patches</a></span></dt></dl></dd><dt><span class="sect1"><a href="source_organization.html">Directory Layout and Source Conventions</a></span></dt><dt><span class="sect1"><a href="source_code_style.html">Coding Style</a></span></dt><dd><dl><dt><span class="sect2"><a href="source_code_style.html#coding_style.bad_identifiers">Bad Identifiers</a></span></dt><dt><span class="sect2"><a href="source_code_style.html#coding_style.example">By Example</a></span></dt></dl></dd><dt><span class="sect1"><a href="documentation_style.html">Documentation Style</a></span></dt><dd><dl><dt><span class="sect2"><a href="documentation_style.html#doc_style.doxygen">Doxygen</a></span></dt><dt><span class="sect2"><a href="documentation_style.html#doc_style.docbook">Docbook</a></span></dt></dl></dd><dt><span class="sect1"><a href="source_design_notes.html">Design Notes</a></span></dt></dl></div><p>
|
</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="appendix_contributing.html#contrib.list">Contributor Checklist</a></span></dt><dd><dl><dt><span class="sect2"><a href="appendix_contributing.html#list.reading">Reading</a></span></dt><dt><span class="sect2"><a href="appendix_contributing.html#list.copyright">Assignment</a></span></dt><dt><span class="sect2"><a href="appendix_contributing.html#list.getting">Getting Sources</a></span></dt><dt><span class="sect2"><a href="appendix_contributing.html#list.patches">Submitting Patches</a></span></dt></dl></dd><dt><span class="sect1"><a href="source_organization.html">Directory Layout and Source Conventions</a></span></dt><dt><span class="sect1"><a href="source_code_style.html">Coding Style</a></span></dt><dd><dl><dt><span class="sect2"><a href="source_code_style.html#coding_style.bad_identifiers">Bad Identifiers</a></span></dt><dt><span class="sect2"><a href="source_code_style.html#coding_style.example">By Example</a></span></dt></dl></dd><dt><span class="sect1"><a href="documentation_style.html">Documentation Style</a></span></dt><dd><dl><dt><span class="sect2"><a href="documentation_style.html#doc_style.doxygen">Doxygen</a></span></dt><dt><span class="sect2"><a href="documentation_style.html#doc_style.docbook">Docbook</a></span></dt></dl></dd><dt><span class="sect1"><a href="source_design_notes.html">Design Notes</a></span></dt></dl></div><p>
|
||||||
The GNU C++ Library follows an open development model. Active
|
The GNU C++ Library follows an open development model. Active
|
||||||
contributors are assigned maintainer-ship responsibility, and given
|
contributors are assigned maintainer-ship responsibility, and given
|
||||||
|
|
@ -87,7 +87,7 @@
|
||||||
implementation.
|
implementation.
|
||||||
</p></li><li class="listitem"><p>
|
</p></li><li class="listitem"><p>
|
||||||
A ChangeLog entry as plain text; see the various
|
A ChangeLog entry as plain text; see the various
|
||||||
ChangeLog files for format and content. If using you are
|
ChangeLog files for format and content. If you are
|
||||||
using emacs as your editor, simply position the insertion
|
using emacs as your editor, simply position the insertion
|
||||||
point at the beginning of your change and hit CX-4a to bring
|
point at the beginning of your change and hit CX-4a to bring
|
||||||
up the appropriate ChangeLog entry. See--magic! Similar
|
up the appropriate ChangeLog entry. See--magic! Similar
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="backwards.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="appendix_gpl.html">Next</a></td></tr></table><hr /></div><div class="appendix" title="Appendix C. Free Software Needs Free Documentation"><div class="titlepage"><div><div><h2 class="title"><a id="appendix.free"></a>Appendix C.
|
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="backwards.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="appendix_gpl.html">Next</a></td></tr></table><hr /></div><div class="appendix" title="Appendix C. Free Software Needs Free Documentation"><div class="titlepage"><div><div><h2 class="title"><a id="appendix.free"></a>Appendix C.
|
||||||
Free Software Needs Free Documentation
|
Free Software Needs Free Documentation
|
||||||
<a id="id515923" class="indexterm"></a>
|
<a id="id702684" class="indexterm"></a>
|
||||||
</h2></div></div></div><p>
|
</h2></div></div></div><p>
|
||||||
The biggest deficiency in free operating systems is not in the
|
The biggest deficiency in free operating systems is not in the
|
||||||
software--it is the lack of good free manuals that we can include in
|
software--it is the lack of good free manuals that we can include in
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,7 @@
|
||||||
</p><p>
|
</p><p>
|
||||||
The precise terms and conditions for copying, distribution and modification
|
The precise terms and conditions for copying, distribution and modification
|
||||||
follow.
|
follow.
|
||||||
</p><h2><a id="id637422"></a>
|
</p><h2><a id="id703002"></a>
|
||||||
TERMS AND CONDITIONS
|
TERMS AND CONDITIONS
|
||||||
</h2><h2><a id="gpl-3-definitions"></a>
|
</h2><h2><a id="gpl-3-definitions"></a>
|
||||||
0. Definitions.
|
0. Definitions.
|
||||||
|
|
@ -617,7 +617,7 @@
|
||||||
waiver of all civil liability in connection with the Program, unless a
|
waiver of all civil liability in connection with the Program, unless a
|
||||||
warranty or assumption of liability accompanies a copy of the Program in
|
warranty or assumption of liability accompanies a copy of the Program in
|
||||||
return for a fee.
|
return for a fee.
|
||||||
</p><h2><a id="id555627"></a>
|
</p><h2><a id="id635999"></a>
|
||||||
END OF TERMS AND CONDITIONS
|
END OF TERMS AND CONDITIONS
|
||||||
</h2><h2><a id="HowToApply"></a>
|
</h2><h2><a id="HowToApply"></a>
|
||||||
How to Apply These Terms to Your New Programs
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -48,7 +48,7 @@
|
||||||
<code class="code">end()</code>, then the item being inserted should have
|
<code class="code">end()</code>, then the item being inserted should have
|
||||||
a key greater than all the other keys in the container. The
|
a key greater than all the other keys in the container. The
|
||||||
item will be inserted at the end of the container, becoming
|
item will be inserted at the end of the container, becoming
|
||||||
the new entry at <code class="code">end()</code>.
|
the new entry before <code class="code">end()</code>.
|
||||||
</p></li><li class="listitem"><p>
|
</p></li><li class="listitem"><p>
|
||||||
neither <code class="code">begin()</code> nor <code class="code">end()</code>, then:
|
neither <code class="code">begin()</code> nor <code class="code">end()</code>, then:
|
||||||
Let <code class="code">h</code> be the entry in the container pointed to
|
Let <code class="code">h</code> be the entry in the container pointed to
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,8 @@ ISO Standard (e.g., statistical analysis). While there are a lot of
|
||||||
really useful things that are used by a lot of people, the Standards
|
really useful things that are used by a lot of people, the Standards
|
||||||
Committee couldn't include everything, and so a lot of those
|
Committee couldn't include everything, and so a lot of those
|
||||||
<span class="quote">“<span class="quote">obvious</span>”</span> classes didn't get included.
|
<span class="quote">“<span class="quote">obvious</span>”</span> classes didn't get included.
|
||||||
</p><p>Known Issues include many of the limitations of its immediate ancestor.</p><p>Portability notes and known implementation limitations are as follows.</p><div class="sect3" title="No ios_base"><div class="titlepage"><div><div><h4 class="title"><a id="id626149"></a>No <code class="code">ios_base</code></h4></div></div></div><p> At least some older implementations don't have <code class="code">std::ios_base</code>, so you should use <code class="code">std::ios::badbit</code>, <code class="code">std::ios::failbit</code> and <code class="code">std::ios::eofbit</code> and <code class="code">std::ios::goodbit</code>.
|
</p><p>Known Issues include many of the limitations of its immediate ancestor.</p><p>Portability notes and known implementation limitations are as follows.</p><div class="sect3" title="No ios_base"><div class="titlepage"><div><div><h4 class="title"><a id="id646429"></a>No <code class="code">ios_base</code></h4></div></div></div><p> At least some older implementations don't have <code class="code">std::ios_base</code>, so you should use <code class="code">std::ios::badbit</code>, <code class="code">std::ios::failbit</code> and <code class="code">std::ios::eofbit</code> and <code class="code">std::ios::goodbit</code>.
|
||||||
</p></div><div class="sect3" title="No cout in ostream.h, no cin in istream.h"><div class="titlepage"><div><div><h4 class="title"><a id="id626181"></a>No <code class="code">cout</code> in <code class="code">ostream.h</code>, no <code class="code">cin</code> in <code class="code">istream.h</code></h4></div></div></div><p>
|
</p></div><div class="sect3" title="No cout in ostream.h, no cin in istream.h"><div class="titlepage"><div><div><h4 class="title"><a id="id646461"></a>No <code class="code">cout</code> in <code class="code">ostream.h</code>, no <code class="code">cin</code> in <code class="code">istream.h</code></h4></div></div></div><p>
|
||||||
In earlier versions of the standard,
|
In earlier versions of the standard,
|
||||||
<code class="filename">fstream.h</code>,
|
<code class="filename">fstream.h</code>,
|
||||||
<code class="filename">ostream.h</code>
|
<code class="filename">ostream.h</code>
|
||||||
|
|
@ -44,7 +44,7 @@ considered replaced and rewritten.
|
||||||
archived. The code is considered replaced and rewritten.
|
archived. The code is considered replaced and rewritten.
|
||||||
</p><p>
|
</p><p>
|
||||||
Portability notes and known implementation limitations are as follows.
|
Portability notes and known implementation limitations are as follows.
|
||||||
</p><div class="sect3" title="Namespace std:: not supported"><div class="titlepage"><div><div><h4 class="title"><a id="id626279"></a>Namespace <code class="code">std::</code> not supported</h4></div></div></div><p>
|
</p><div class="sect3" title="Namespace std:: not supported"><div class="titlepage"><div><div><h4 class="title"><a id="id646559"></a>Namespace <code class="code">std::</code> not supported</h4></div></div></div><p>
|
||||||
Some care is required to support C++ compiler and or library
|
Some care is required to support C++ compiler and or library
|
||||||
implementation that do not have the standard library in
|
implementation that do not have the standard library in
|
||||||
<code class="code">namespace std</code>.
|
<code class="code">namespace std</code>.
|
||||||
|
|
@ -108,7 +108,7 @@ AC_DEFUN([AC_CXX_NAMESPACE_STD], [
|
||||||
AC_DEFINE(HAVE_NAMESPACE_STD,,[Define if g++ supports namespace std. ])
|
AC_DEFINE(HAVE_NAMESPACE_STD,,[Define if g++ supports namespace std. ])
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
</pre></div><div class="sect3" title="Illegal iterator usage"><div class="titlepage"><div><div><h4 class="title"><a id="id626402"></a>Illegal iterator usage</h4></div></div></div><p>
|
</pre></div><div class="sect3" title="Illegal iterator usage"><div class="titlepage"><div><div><h4 class="title"><a id="id699742"></a>Illegal iterator usage</h4></div></div></div><p>
|
||||||
The following illustrate implementation-allowed illegal iterator
|
The following illustrate implementation-allowed illegal iterator
|
||||||
use, and then correct use.
|
use, and then correct use.
|
||||||
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
|
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
|
||||||
|
|
@ -121,7 +121,7 @@ AC_DEFUN([AC_CXX_NAMESPACE_STD], [
|
||||||
</p></li><li class="listitem"><p>
|
</p></li><li class="listitem"><p>
|
||||||
<code class="code">if (iterator)</code> won't work any more => use
|
<code class="code">if (iterator)</code> won't work any more => use
|
||||||
<code class="code">if (iterator != iterator_type())</code>
|
<code class="code">if (iterator != iterator_type())</code>
|
||||||
</p></li></ul></div></div><div class="sect3" title="isspace from cctype is a macro"><div class="titlepage"><div><div><h4 class="title"><a id="id642728"></a><code class="code">isspace</code> from <code class="filename">cctype</code> is a macro
|
</p></li></ul></div></div><div class="sect3" title="isspace from cctype is a macro"><div class="titlepage"><div><div><h4 class="title"><a id="id699804"></a><code class="code">isspace</code> from <code class="filename">cctype</code> is a macro
|
||||||
</h4></div></div></div><p>
|
</h4></div></div></div><p>
|
||||||
Glibc 2.0.x and 2.1.x define <code class="filename">ctype.h</code> functionality as macros
|
Glibc 2.0.x and 2.1.x define <code class="filename">ctype.h</code> functionality as macros
|
||||||
(isspace, isalpha etc.).
|
(isspace, isalpha etc.).
|
||||||
|
|
@ -154,7 +154,7 @@ std:: (__ctype_b[(int) ( ( 'X' ) )] & (unsigned short int) _ISspace ) ;
|
||||||
(<code class="filename">ctype.h</code>) and the
|
(<code class="filename">ctype.h</code>) and the
|
||||||
definitions in namespace <code class="code">std::</code>
|
definitions in namespace <code class="code">std::</code>
|
||||||
(<code class="code"><cctype></code>).
|
(<code class="code"><cctype></code>).
|
||||||
</p></div><div class="sect3" title="No vector::at, deque::at, string::at"><div class="titlepage"><div><div><h4 class="title"><a id="id642822"></a>No <code class="code">vector::at</code>, <code class="code">deque::at</code>, <code class="code">string::at</code></h4></div></div></div><p>
|
</p></div><div class="sect3" title="No vector::at, deque::at, string::at"><div class="titlepage"><div><div><h4 class="title"><a id="id699897"></a>No <code class="code">vector::at</code>, <code class="code">deque::at</code>, <code class="code">string::at</code></h4></div></div></div><p>
|
||||||
One solution is to add an autoconf-test for this:
|
One solution is to add an autoconf-test for this:
|
||||||
</p><pre class="programlisting">
|
</p><pre class="programlisting">
|
||||||
AC_MSG_CHECKING(for container::at)
|
AC_MSG_CHECKING(for container::at)
|
||||||
|
|
@ -180,7 +180,7 @@ AC_DEFINE(HAVE_CONTAINER_AT)],
|
||||||
</pre><p>
|
</pre><p>
|
||||||
If you are using other (non-GNU) compilers it might be a good idea
|
If you are using other (non-GNU) compilers it might be a good idea
|
||||||
to check for <code class="code">string::at</code> separately.
|
to check for <code class="code">string::at</code> separately.
|
||||||
</p></div><div class="sect3" title="No std::char_traits<char>::eof"><div class="titlepage"><div><div><h4 class="title"><a id="id642860"></a>No <code class="code">std::char_traits<char>::eof</code></h4></div></div></div><p>
|
</p></div><div class="sect3" title="No std::char_traits<char>::eof"><div class="titlepage"><div><div><h4 class="title"><a id="id716937"></a>No <code class="code">std::char_traits<char>::eof</code></h4></div></div></div><p>
|
||||||
Use some kind of autoconf test, plus this:
|
Use some kind of autoconf test, plus this:
|
||||||
</p><pre class="programlisting">
|
</p><pre class="programlisting">
|
||||||
#ifdef HAVE_CHAR_TRAITS
|
#ifdef HAVE_CHAR_TRAITS
|
||||||
|
|
@ -188,7 +188,7 @@ AC_DEFINE(HAVE_CONTAINER_AT)],
|
||||||
#else
|
#else
|
||||||
#define CPP_EOF EOF
|
#define CPP_EOF EOF
|
||||||
#endif
|
#endif
|
||||||
</pre></div><div class="sect3" title="No string::clear"><div class="titlepage"><div><div><h4 class="title"><a id="id642878"></a>No <code class="code">string::clear</code></h4></div></div></div><p>
|
</pre></div><div class="sect3" title="No string::clear"><div class="titlepage"><div><div><h4 class="title"><a id="id716955"></a>No <code class="code">string::clear</code></h4></div></div></div><p>
|
||||||
There are two functions for deleting the contents of a string:
|
There are two functions for deleting the contents of a string:
|
||||||
<code class="code">clear</code> and <code class="code">erase</code> (the latter returns the
|
<code class="code">clear</code> and <code class="code">erase</code> (the latter returns the
|
||||||
string).
|
string).
|
||||||
|
|
@ -206,12 +206,12 @@ erase(size_type __pos = 0, size_type __n = npos)
|
||||||
Unfortunately, <code class="code">clear</code> is not implemented in this
|
Unfortunately, <code class="code">clear</code> is not implemented in this
|
||||||
version, so you should use <code class="code">erase</code> (which is probably
|
version, so you should use <code class="code">erase</code> (which is probably
|
||||||
faster than <code class="code">operator=(charT*)</code>).
|
faster than <code class="code">operator=(charT*)</code>).
|
||||||
</p></div><div class="sect3" title="Removal of ostream::form and istream::scan extensions"><div class="titlepage"><div><div><h4 class="title"><a id="id642924"></a>
|
</p></div><div class="sect3" title="Removal of ostream::form and istream::scan extensions"><div class="titlepage"><div><div><h4 class="title"><a id="id717001"></a>
|
||||||
Removal of <code class="code">ostream::form</code> and <code class="code">istream::scan</code>
|
Removal of <code class="code">ostream::form</code> and <code class="code">istream::scan</code>
|
||||||
extensions
|
extensions
|
||||||
</h4></div></div></div><p>
|
</h4></div></div></div><p>
|
||||||
These are no longer supported. Please use stringstreams instead.
|
These are no longer supported. Please use stringstreams instead.
|
||||||
</p></div><div class="sect3" title="No basic_stringbuf, basic_stringstream"><div class="titlepage"><div><div><h4 class="title"><a id="id642943"></a>No <code class="code">basic_stringbuf</code>, <code class="code">basic_stringstream</code></h4></div></div></div><p>
|
</p></div><div class="sect3" title="No basic_stringbuf, basic_stringstream"><div class="titlepage"><div><div><h4 class="title"><a id="id717020"></a>No <code class="code">basic_stringbuf</code>, <code class="code">basic_stringstream</code></h4></div></div></div><p>
|
||||||
Although the ISO standard <code class="code">i/ostringstream</code>-classes are
|
Although the ISO standard <code class="code">i/ostringstream</code>-classes are
|
||||||
provided, (<code class="filename">sstream</code>), for
|
provided, (<code class="filename">sstream</code>), for
|
||||||
compatibility with older implementations the pre-ISO
|
compatibility with older implementations the pre-ISO
|
||||||
|
|
@ -299,14 +299,14 @@ any = temp;
|
||||||
Another example of using stringstreams is in <a class="link" href="bk01pt05ch13s05.html" title="Shrink to Fit">this howto</a>.
|
Another example of using stringstreams is in <a class="link" href="bk01pt05ch13s05.html" title="Shrink to Fit">this howto</a>.
|
||||||
</p><p> There is additional information in the libstdc++-v2 info files, in
|
</p><p> There is additional information in the libstdc++-v2 info files, in
|
||||||
particular <span class="quote">“<span class="quote">info iostream</span>”</span>.
|
particular <span class="quote">“<span class="quote">info iostream</span>”</span>.
|
||||||
</p></div><div class="sect3" title="Little or no wide character support"><div class="titlepage"><div><div><h4 class="title"><a id="id569620"></a>Little or no wide character support</h4></div></div></div><p>
|
</p></div><div class="sect3" title="Little or no wide character support"><div class="titlepage"><div><div><h4 class="title"><a id="id717171"></a>Little or no wide character support</h4></div></div></div><p>
|
||||||
Classes <code class="classname">wstring</code> and
|
Classes <code class="classname">wstring</code> and
|
||||||
<code class="classname">char_traits<wchar_t></code> are
|
<code class="classname">char_traits<wchar_t></code> are
|
||||||
not supported.
|
not supported.
|
||||||
</p></div><div class="sect3" title="No templatized iostreams"><div class="titlepage"><div><div><h4 class="title"><a id="id569639"></a>No templatized iostreams</h4></div></div></div><p>
|
</p></div><div class="sect3" title="No templatized iostreams"><div class="titlepage"><div><div><h4 class="title"><a id="id717190"></a>No templatized iostreams</h4></div></div></div><p>
|
||||||
Classes <code class="classname">wfilebuf</code> and
|
Classes <code class="classname">wfilebuf</code> and
|
||||||
<code class="classname">wstringstream</code> are not supported.
|
<code class="classname">wstringstream</code> are not supported.
|
||||||
</p></div><div class="sect3" title="Thread safety issues"><div class="titlepage"><div><div><h4 class="title"><a id="id569658"></a>Thread safety issues</h4></div></div></div><p>
|
</p></div><div class="sect3" title="Thread safety issues"><div class="titlepage"><div><div><h4 class="title"><a id="id717209"></a>Thread safety issues</h4></div></div></div><p>
|
||||||
Earlier GCC releases had a somewhat different approach to
|
Earlier GCC releases had a somewhat different approach to
|
||||||
threading configuration and proper compilation. Before GCC 3.0,
|
threading configuration and proper compilation. Before GCC 3.0,
|
||||||
configuration of the threading model was dictated by compiler
|
configuration of the threading model was dictated by compiler
|
||||||
|
|
@ -364,7 +364,7 @@ libstdc++-v3.
|
||||||
of the SGI STL (version 3.3), with extensive changes.
|
of the SGI STL (version 3.3), with extensive changes.
|
||||||
</p><p>A more formal description of the V3 goals can be found in the
|
</p><p>A more formal description of the V3 goals can be found in the
|
||||||
official <a class="link" href="source_design_notes.html" title="Design Notes">design document</a>.
|
official <a class="link" href="source_design_notes.html" title="Design Notes">design document</a>.
|
||||||
</p><p>Portability notes and known implementation limitations are as follows.</p><div class="sect3" title="Pre-ISO headers moved to backwards or removed"><div class="titlepage"><div><div><h4 class="title"><a id="id569775"></a>Pre-ISO headers moved to backwards or removed</h4></div></div></div><p> The pre-ISO C++ headers
|
</p><p>Portability notes and known implementation limitations are as follows.</p><div class="sect3" title="Pre-ISO headers moved to backwards or removed"><div class="titlepage"><div><div><h4 class="title"><a id="id706015"></a>Pre-ISO headers moved to backwards or removed</h4></div></div></div><p> The pre-ISO C++ headers
|
||||||
(<code class="code">iostream.h</code>, <code class="code">defalloc.h</code> etc.) are
|
(<code class="code">iostream.h</code>, <code class="code">defalloc.h</code> etc.) are
|
||||||
available, unlike previous libstdc++ versions, but inclusion
|
available, unlike previous libstdc++ versions, but inclusion
|
||||||
generates a warning that you are using deprecated headers.
|
generates a warning that you are using deprecated headers.
|
||||||
|
|
@ -436,7 +436,7 @@ like <code class="filename">vector.h</code> can be replaced with <code class="fi
|
||||||
directive <code class="code">using namespace std;</code> can be put at the global
|
directive <code class="code">using namespace std;</code> can be put at the global
|
||||||
scope. This should be enough to get this code compiling, assuming the
|
scope. This should be enough to get this code compiling, assuming the
|
||||||
other usage is correct.
|
other usage is correct.
|
||||||
</p></div><div class="sect3" title="Extension headers hash_map, hash_set moved to ext or backwards"><div class="titlepage"><div><div><h4 class="title"><a id="id569857"></a>Extension headers hash_map, hash_set moved to ext or backwards</h4></div></div></div><p>At this time most of the features of the SGI STL extension have been
|
</p></div><div class="sect3" title="Extension headers hash_map, hash_set moved to ext or backwards"><div class="titlepage"><div><div><h4 class="title"><a id="id706097"></a>Extension headers hash_map, hash_set moved to ext or backwards</h4></div></div></div><p>At this time most of the features of the SGI STL extension have been
|
||||||
replaced by standardized libraries.
|
replaced by standardized libraries.
|
||||||
In particular, the unordered_map and unordered_set containers of TR1
|
In particular, the unordered_map and unordered_set containers of TR1
|
||||||
are suitable replacement for the non-standard hash_map and hash_set
|
are suitable replacement for the non-standard hash_map and hash_set
|
||||||
|
|
@ -508,7 +508,7 @@ AC_DEFUN([AC_HEADER_EXT_HASH_SET], [
|
||||||
AC_DEFINE(HAVE_EXT_HASH_SET,,[Define if ext/hash_set is present. ])
|
AC_DEFINE(HAVE_EXT_HASH_SET,,[Define if ext/hash_set is present. ])
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
</pre></div><div class="sect3" title="No ios::nocreate/ios::noreplace."><div class="titlepage"><div><div><h4 class="title"><a id="id569960"></a>No <code class="code">ios::nocreate/ios::noreplace</code>.
|
</pre></div><div class="sect3" title="No ios::nocreate/ios::noreplace."><div class="titlepage"><div><div><h4 class="title"><a id="id706200"></a>No <code class="code">ios::nocreate/ios::noreplace</code>.
|
||||||
</h4></div></div></div><p> The existence of <code class="code">ios::nocreate</code> being used for
|
</h4></div></div></div><p> The existence of <code class="code">ios::nocreate</code> being used for
|
||||||
input-streams has been confirmed, most probably because the author
|
input-streams has been confirmed, most probably because the author
|
||||||
thought it would be more correct to specify nocreate explicitly. So
|
thought it would be more correct to specify nocreate explicitly. So
|
||||||
|
|
@ -519,7 +519,7 @@ open the file for reading, check if it has been opened, and then
|
||||||
decide whether you want to create/replace or not. To my knowledge,
|
decide whether you want to create/replace or not. To my knowledge,
|
||||||
even older implementations support <code class="code">app</code>, <code class="code">ate</code>
|
even older implementations support <code class="code">app</code>, <code class="code">ate</code>
|
||||||
and <code class="code">trunc</code> (except for <code class="code">app</code> ?).
|
and <code class="code">trunc</code> (except for <code class="code">app</code> ?).
|
||||||
</p></div><div class="sect3" title="No stream::attach(int fd)"><div class="titlepage"><div><div><h4 class="title"><a id="id515552"></a>
|
</p></div><div class="sect3" title="No stream::attach(int fd)"><div class="titlepage"><div><div><h4 class="title"><a id="id703184"></a>
|
||||||
No <code class="code">stream::attach(int fd)</code>
|
No <code class="code">stream::attach(int fd)</code>
|
||||||
</h4></div></div></div><p>
|
</h4></div></div></div><p>
|
||||||
Phil Edwards writes: It was considered and rejected for the ISO
|
Phil Edwards writes: It was considered and rejected for the ISO
|
||||||
|
|
@ -542,7 +542,7 @@ No <code class="code">stream::attach(int fd)</code>
|
||||||
For another example of this, refer to
|
For another example of this, refer to
|
||||||
<a class="ulink" href="http://www.josuttis.com/cppcode/fdstream.html" target="_top">fdstream example</a>
|
<a class="ulink" href="http://www.josuttis.com/cppcode/fdstream.html" target="_top">fdstream example</a>
|
||||||
by Nicolai Josuttis.
|
by Nicolai Josuttis.
|
||||||
</p></div><div class="sect3" title="Support for C++98 dialect."><div class="titlepage"><div><div><h4 class="title"><a id="id515616"></a>
|
</p></div><div class="sect3" title="Support for C++98 dialect."><div class="titlepage"><div><div><h4 class="title"><a id="id703247"></a>
|
||||||
Support for C++98 dialect.
|
Support for C++98 dialect.
|
||||||
</h4></div></div></div><p>Check for complete library coverage of the C++1998/2003 standard.
|
</h4></div></div></div><p>Check for complete library coverage of the C++1998/2003 standard.
|
||||||
</p><pre class="programlisting">
|
</p><pre class="programlisting">
|
||||||
|
|
@ -610,7 +610,7 @@ AC_DEFUN([AC_HEADER_STDCXX_98], [
|
||||||
AC_DEFINE(STDCXX_98_HEADERS,,[Define if ISO C++ 1998 header files are present. ])
|
AC_DEFINE(STDCXX_98_HEADERS,,[Define if ISO C++ 1998 header files are present. ])
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
</pre></div><div class="sect3" title="Support for C++TR1 dialect."><div class="titlepage"><div><div><h4 class="title"><a id="id515643"></a>
|
</pre></div><div class="sect3" title="Support for C++TR1 dialect."><div class="titlepage"><div><div><h4 class="title"><a id="id703275"></a>
|
||||||
Support for C++TR1 dialect.
|
Support for C++TR1 dialect.
|
||||||
</h4></div></div></div><p>Check for library coverage of the TR1 standard.
|
</h4></div></div></div><p>Check for library coverage of the TR1 standard.
|
||||||
</p><pre class="programlisting">
|
</p><pre class="programlisting">
|
||||||
|
|
@ -687,7 +687,7 @@ AC_DEFUN([AC_HEADER_TR1_UNORDERED_SET], [
|
||||||
AC_DEFINE(HAVE_TR1_UNORDERED_SET,,[Define if tr1/unordered_set is present. ])
|
AC_DEFINE(HAVE_TR1_UNORDERED_SET,,[Define if tr1/unordered_set is present. ])
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
</pre></div><div class="sect3" title="Support for C++0x dialect."><div class="titlepage"><div><div><h4 class="title"><a id="id515687"></a>
|
</pre></div><div class="sect3" title="Support for C++0x dialect."><div class="titlepage"><div><div><h4 class="title"><a id="id703319"></a>
|
||||||
Support for C++0x dialect.
|
Support for C++0x dialect.
|
||||||
</h4></div></div></div><p>Check for baseline language coverage in the compiler for the C++0xstandard.
|
</h4></div></div></div><p>Check for baseline language coverage in the compiler for the C++0xstandard.
|
||||||
</p><pre class="programlisting">
|
</p><pre class="programlisting">
|
||||||
|
|
@ -899,27 +899,27 @@ AC_DEFUN([AC_HEADER_UNORDERED_SET], [
|
||||||
AC_DEFINE(HAVE_UNORDERED_SET,,[Define if unordered_set is present. ])
|
AC_DEFINE(HAVE_UNORDERED_SET,,[Define if unordered_set is present. ])
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
</pre></div><div class="sect3" title="Container::iterator_type is not necessarily Container::value_type*"><div class="titlepage"><div><div><h4 class="title"><a id="id515764"></a>
|
</pre></div><div class="sect3" title="Container::iterator_type is not necessarily Container::value_type*"><div class="titlepage"><div><div><h4 class="title"><a id="id703396"></a>
|
||||||
Container::iterator_type is not necessarily Container::value_type*
|
Container::iterator_type is not necessarily Container::value_type*
|
||||||
</h4></div></div></div><p>
|
</h4></div></div></div><p>
|
||||||
This is a change in behavior from the previous version. Now, most
|
This is a change in behavior from the previous version. Now, most
|
||||||
<span class="type">iterator_type</span> typedefs in container classes are POD
|
<span class="type">iterator_type</span> typedefs in container classes are POD
|
||||||
objects, not <span class="type">value_type</span> pointers.
|
objects, not <span class="type">value_type</span> pointers.
|
||||||
</p></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="backwards.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry" title="Migrating to GCC 4.1"><a id="id515794"></a><p>[<abbr class="abbrev">
|
</p></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="backwards.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry" title="Migrating to GCC 4.1"><a id="id703425"></a><p>[<abbr class="abbrev">
|
||||||
kegel41
|
kegel41
|
||||||
</abbr>] <span class="title"><i>
|
</abbr>] <span class="title"><i>
|
||||||
Migrating to GCC 4.1
|
Migrating to GCC 4.1
|
||||||
</i>. </span><span class="author"><span class="firstname">Dan</span> <span class="surname">Kegel</span>. </span><span class="biblioid">
|
</i>. </span><span class="author"><span class="firstname">Dan</span> <span class="surname">Kegel</span>. </span><span class="biblioid">
|
||||||
<a class="ulink" href="http://www.kegel.com/gcc/gcc4.html" target="_top">
|
<a class="ulink" href="http://www.kegel.com/gcc/gcc4.html" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="Building the Whole Debian Archive with GCC 4.1: A Summary"><a id="id515826"></a><p>[<abbr class="abbrev">
|
. </span></p></div><div class="biblioentry" title="Building the Whole Debian Archive with GCC 4.1: A Summary"><a id="id703458"></a><p>[<abbr class="abbrev">
|
||||||
kegel41
|
kegel41
|
||||||
</abbr>] <span class="title"><i>
|
</abbr>] <span class="title"><i>
|
||||||
Building the Whole Debian Archive with GCC 4.1: A Summary
|
Building the Whole Debian Archive with GCC 4.1: A Summary
|
||||||
</i>. </span><span class="author"><span class="firstname">Martin</span> <span class="surname">Michlmayr</span>. </span><span class="biblioid">
|
</i>. </span><span class="author"><span class="firstname">Martin</span> <span class="surname">Michlmayr</span>. </span><span class="biblioid">
|
||||||
<a class="ulink" href="http://lists.debian.org/debian-gcc/2006/03/msg00405.html" target="_top">
|
<a class="ulink" href="http://lists.debian.org/debian-gcc/2006/03/msg00405.html" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="Migration guide for GCC-3.2"><a id="id515859"></a><p>[<abbr class="abbrev">
|
. </span></p></div><div class="biblioentry" title="Migration guide for GCC-3.2"><a id="id703491"></a><p>[<abbr class="abbrev">
|
||||||
lbl32
|
lbl32
|
||||||
</abbr>] <span class="title"><i>
|
</abbr>] <span class="title"><i>
|
||||||
Migration guide for GCC-3.2
|
Migration guide for GCC-3.2
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,7 @@ else return false.</p></li></ol></div><p>
|
||||||
</p><p>
|
</p><p>
|
||||||
Consider a block of size 64 ints. In memory, it would look like this:
|
Consider a block of size 64 ints. In memory, it would look like this:
|
||||||
(assume a 32-bit system where, size_t is a 32-bit entity).
|
(assume a 32-bit system where, size_t is a 32-bit entity).
|
||||||
</p><div class="table"><a id="id575954"></a><p class="title"><b>Table 33.1. Bitmap Allocator Memory Map</b></p><div class="table-contents"><table summary="Bitmap Allocator Memory Map" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><tbody><tr><td align="left">268</td><td align="left">0</td><td align="left">4294967295</td><td align="left">4294967295</td><td align="left">Data -> Space for 64 ints</td></tr></tbody></table></div></div><br class="table-break" /><p>
|
</p><div class="table"><a id="id620814"></a><p class="title"><b>Table 33.1. Bitmap Allocator Memory Map</b></p><div class="table-contents"><table summary="Bitmap Allocator Memory Map" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><tbody><tr><td align="left">268</td><td align="left">0</td><td align="left">4294967295</td><td align="left">4294967295</td><td align="left">Data -> Space for 64 ints</td></tr></tbody></table></div></div><br class="table-break" /><p>
|
||||||
The first Column(268) represents the size of the Block in bytes as
|
The first Column(268) represents the size of the Block in bytes as
|
||||||
seen by the Bitmap Allocator. Internally, a global free list is
|
seen by the Bitmap Allocator. Internally, a global free list is
|
||||||
used to keep track of the free blocks used and given back by the
|
used to keep track of the free blocks used and given back by the
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@
|
||||||
that space savings.
|
that space savings.
|
||||||
</p><p>
|
</p><p>
|
||||||
The problem is that <code class="code">vector<bool></code> doesn't
|
The problem is that <code class="code">vector<bool></code> doesn't
|
||||||
behave like a normal vector anymore. There have been recent
|
behave like a normal vector anymore. There have been
|
||||||
journal articles which discuss the problems (the ones by Herb
|
journal articles which discuss the problems (the ones by Herb
|
||||||
Sutter in the May and July/August 1999 issues of C++ Report cover
|
Sutter in the May and July/August 1999 issues of C++ Report cover
|
||||||
it well). Future revisions of the ISO C++ Standard will change
|
it well). Future revisions of the ISO C++ Standard will change
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?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">
|
<!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>Index</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><link rel="home" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="spine.html" title="The GNU C++ Library" /><link rel="prev" href="appendix_gfdl.html" title="Appendix E. GNU Free Documentation License" /><link rel="next" href="../bk02.html" title="" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Index</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="appendix_gfdl.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="../bk02.html">Next</a></td></tr></table><hr /></div><div class="index" title="Index"><div class="titlepage"><div><div><h2 class="title"><a id="id644893"></a>Index</h2></div></div></div><div class="index"><div class="indexdiv"><h3>A</h3><dl><dt>Algorithms, <a class="indexterm" href="algorithms.html">
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Index</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><link rel="home" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="spine.html" title="The GNU C++ Library" /><link rel="prev" href="appendix_gfdl.html" title="Appendix E. GNU Free Documentation License" /><link rel="next" href="../bk02.html" title="" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Index</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="appendix_gfdl.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="../bk02.html">Next</a></td></tr></table><hr /></div><div class="index" title="Index"><div class="titlepage"><div><div><h2 class="title"><a id="id649926"></a>Index</h2></div></div></div><div class="index"><div class="indexdiv"><h3>A</h3><dl><dt>Algorithms, <a class="indexterm" href="algorithms.html">
|
||||||
Algorithms
|
Algorithms
|
||||||
|
|
||||||
</a></dt><dt>Appendix</dt><dd><dl><dt>Contributing, <a class="indexterm" href="appendix_contributing.html">
|
</a></dt><dt>Appendix</dt><dd><dl><dt>Contributing, <a class="indexterm" href="appendix_contributing.html">
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title></title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="home" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="support.html" title="Part II. Support" /><link rel="prev" href="support.html" title="Part II. Support" /><link rel="next" href="fundamental_types.html" title="Chapter 4. Types" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="support.html">Prev</a> </td><th width="60%" align="center">Part II.
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title></title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="home" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="support.html" title="Part II. Support" /><link rel="prev" href="support.html" title="Part II. Support" /><link rel="next" href="fundamental_types.html" title="Chapter 4. Types" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="support.html">Prev</a> </td><th width="60%" align="center">Part II.
|
||||||
Support
|
Support
|
||||||
|
|
||||||
</th><td width="20%" align="right"> <a accesskey="n" href="fundamental_types.html">Next</a></td></tr></table><hr /></div><div class="preface"><div class="titlepage"><div><div><h2 class="title"><a id="id535237"></a></h2></div></div></div><p>
|
</th><td width="20%" align="right"> <a accesskey="n" href="fundamental_types.html">Next</a></td></tr></table><hr /></div><div class="preface"><div class="titlepage"><div><div><h2 class="title"><a id="id616146"></a></h2></div></div></div><p>
|
||||||
This part deals with the functions called and objects created
|
This part deals with the functions called and objects created
|
||||||
automatically during the course of a program's existence.
|
automatically during the course of a program's existence.
|
||||||
</p><p>
|
</p><p>
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title></title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><meta name="keywords" content=" ISO C++ , library , algorithm " /><link rel="home" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="algorithms.html" title="Part IX. Algorithms" /><link rel="prev" href="algorithms.html" title="Part IX. Algorithms" /><link rel="next" href="bk01pt09ch20.html" title="Chapter 20. Mutating" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="algorithms.html">Prev</a> </td><th width="60%" align="center">Part IX.
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title></title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><meta name="keywords" content=" ISO C++ , library , algorithm " /><link rel="home" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="algorithms.html" title="Part IX. Algorithms" /><link rel="prev" href="algorithms.html" title="Part IX. Algorithms" /><link rel="next" href="bk01pt09ch20.html" title="Chapter 20. Mutating" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="algorithms.html">Prev</a> </td><th width="60%" align="center">Part IX.
|
||||||
Algorithms
|
Algorithms
|
||||||
|
|
||||||
</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt09ch20.html">Next</a></td></tr></table><hr /></div><div class="preface"><div class="titlepage"><div><div><h2 class="title"><a id="id530076"></a></h2></div></div></div><p>
|
</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt09ch20.html">Next</a></td></tr></table><hr /></div><div class="preface"><div class="titlepage"><div><div><h2 class="title"><a id="id638172"></a></h2></div></div></div><p>
|
||||||
The neatest accomplishment of the algorithms chapter is that all the
|
The neatest accomplishment of the algorithms chapter is that all the
|
||||||
work is done via iterators, not containers directly. This means two
|
work is done via iterators, not containers directly. This means two
|
||||||
important things:
|
important things:
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,6 @@
|
||||||
mode or with debug mode. The
|
mode or with debug mode. The
|
||||||
following table provides the names and headers of the debugging
|
following table provides the names and headers of the debugging
|
||||||
containers:
|
containers:
|
||||||
</p><div class="table"><a id="id572066"></a><p class="title"><b>Table 30.1. Debugging Containers</b></p><div class="table-contents"><table summary="Debugging Containers" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left">Container</th><th align="left">Header</th><th align="left">Debug container</th><th align="left">Debug header</th></tr></thead><tbody><tr><td align="left"><code class="classname">std::bitset</code></td><td align="left"><code class="filename">bitset</code></td><td align="left"><code class="classname">__gnu_debug::bitset</code></td><td align="left"><code class="filename">bitset</code></td></tr><tr><td align="left"><code class="classname">std::deque</code></td><td align="left"><code class="filename">deque</code></td><td align="left"><code class="classname">__gnu_debug::deque</code></td><td align="left"><code class="filename">deque</code></td></tr><tr><td align="left"><code class="classname">std::list</code></td><td align="left"><code class="filename">list</code></td><td align="left"><code class="classname">__gnu_debug::list</code></td><td align="left"><code class="filename">list</code></td></tr><tr><td align="left"><code class="classname">std::map</code></td><td align="left"><code class="filename">map</code></td><td align="left"><code class="classname">__gnu_debug::map</code></td><td align="left"><code class="filename">map</code></td></tr><tr><td align="left"><code class="classname">std::multimap</code></td><td align="left"><code class="filename">map</code></td><td align="left"><code class="classname">__gnu_debug::multimap</code></td><td align="left"><code class="filename">map</code></td></tr><tr><td align="left"><code class="classname">std::multiset</code></td><td align="left"><code class="filename">set</code></td><td align="left"><code class="classname">__gnu_debug::multiset</code></td><td align="left"><code class="filename">set</code></td></tr><tr><td align="left"><code class="classname">std::set</code></td><td align="left"><code class="filename">set</code></td><td align="left"><code class="classname">__gnu_debug::set</code></td><td align="left"><code class="filename">set</code></td></tr><tr><td align="left"><code class="classname">std::string</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="classname">__gnu_debug::string</code></td><td align="left"><code class="filename">string</code></td></tr><tr><td align="left"><code class="classname">std::wstring</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="classname">__gnu_debug::wstring</code></td><td align="left"><code class="filename">string</code></td></tr><tr><td align="left"><code class="classname">std::basic_string</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="classname">__gnu_debug::basic_string</code></td><td align="left"><code class="filename">string</code></td></tr><tr><td align="left"><code class="classname">std::vector</code></td><td align="left"><code class="filename">vector</code></td><td align="left"><code class="classname">__gnu_debug::vector</code></td><td align="left"><code class="filename">vector</code></td></tr></tbody></table></div></div><br class="table-break" /><p>In addition, when compiling in C++0x mode, these additional
|
</p><div class="table"><a id="id705570"></a><p class="title"><b>Table 30.1. Debugging Containers</b></p><div class="table-contents"><table summary="Debugging Containers" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left">Container</th><th align="left">Header</th><th align="left">Debug container</th><th align="left">Debug header</th></tr></thead><tbody><tr><td align="left"><code class="classname">std::bitset</code></td><td align="left"><code class="filename">bitset</code></td><td align="left"><code class="classname">__gnu_debug::bitset</code></td><td align="left"><code class="filename">bitset</code></td></tr><tr><td align="left"><code class="classname">std::deque</code></td><td align="left"><code class="filename">deque</code></td><td align="left"><code class="classname">__gnu_debug::deque</code></td><td align="left"><code class="filename">deque</code></td></tr><tr><td align="left"><code class="classname">std::list</code></td><td align="left"><code class="filename">list</code></td><td align="left"><code class="classname">__gnu_debug::list</code></td><td align="left"><code class="filename">list</code></td></tr><tr><td align="left"><code class="classname">std::map</code></td><td align="left"><code class="filename">map</code></td><td align="left"><code class="classname">__gnu_debug::map</code></td><td align="left"><code class="filename">map</code></td></tr><tr><td align="left"><code class="classname">std::multimap</code></td><td align="left"><code class="filename">map</code></td><td align="left"><code class="classname">__gnu_debug::multimap</code></td><td align="left"><code class="filename">map</code></td></tr><tr><td align="left"><code class="classname">std::multiset</code></td><td align="left"><code class="filename">set</code></td><td align="left"><code class="classname">__gnu_debug::multiset</code></td><td align="left"><code class="filename">set</code></td></tr><tr><td align="left"><code class="classname">std::set</code></td><td align="left"><code class="filename">set</code></td><td align="left"><code class="classname">__gnu_debug::set</code></td><td align="left"><code class="filename">set</code></td></tr><tr><td align="left"><code class="classname">std::string</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="classname">__gnu_debug::string</code></td><td align="left"><code class="filename">string</code></td></tr><tr><td align="left"><code class="classname">std::wstring</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="classname">__gnu_debug::wstring</code></td><td align="left"><code class="filename">string</code></td></tr><tr><td align="left"><code class="classname">std::basic_string</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="classname">__gnu_debug::basic_string</code></td><td align="left"><code class="filename">string</code></td></tr><tr><td align="left"><code class="classname">std::vector</code></td><td align="left"><code class="filename">vector</code></td><td align="left"><code class="classname">__gnu_debug::vector</code></td><td align="left"><code class="filename">vector</code></td></tr></tbody></table></div></div><br class="table-break" /><p>In addition, when compiling in C++0x mode, these additional
|
||||||
containers have additional debug capability.
|
containers have additional debug capability.
|
||||||
</p><div class="table"><a id="id639572"></a><p class="title"><b>Table 30.2. Debugging Containers C++0x</b></p><div class="table-contents"><table summary="Debugging Containers C++0x" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left">Container</th><th align="left">Header</th><th align="left">Debug container</th><th align="left">Debug header</th></tr></thead><tbody><tr><td align="left"><code class="classname">std::unordered_map</code></td><td align="left"><code class="filename">unordered_map</code></td><td align="left"><code class="classname">__gnu_debug::unordered_map</code></td><td align="left"><code class="filename">unordered_map</code></td></tr><tr><td align="left"><code class="classname">std::unordered_multimap</code></td><td align="left"><code class="filename">unordered_map</code></td><td align="left"><code class="classname">__gnu_debug::unordered_multimap</code></td><td align="left"><code class="filename">unordered_map</code></td></tr><tr><td align="left"><code class="classname">std::unordered_set</code></td><td align="left"><code class="filename">unordered_set</code></td><td align="left"><code class="classname">__gnu_debug::unordered_set</code></td><td align="left"><code class="filename">unordered_set</code></td></tr><tr><td align="left"><code class="classname">std::unordered_multiset</code></td><td align="left"><code class="filename">unordered_set</code></td><td align="left"><code class="classname">__gnu_debug::unordered_multiset</code></td><td align="left"><code class="filename">unordered_set</code></td></tr></tbody></table></div></div><br class="table-break" /></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt12ch30s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="debug_mode.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt12ch30s04.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Semantics </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Design</td></tr></table></div></body></html>
|
</p><div class="table"><a id="id607020"></a><p class="title"><b>Table 30.2. Debugging Containers C++0x</b></p><div class="table-contents"><table summary="Debugging Containers C++0x" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left">Container</th><th align="left">Header</th><th align="left">Debug container</th><th align="left">Debug header</th></tr></thead><tbody><tr><td align="left"><code class="classname">std::unordered_map</code></td><td align="left"><code class="filename">unordered_map</code></td><td align="left"><code class="classname">__gnu_debug::unordered_map</code></td><td align="left"><code class="filename">unordered_map</code></td></tr><tr><td align="left"><code class="classname">std::unordered_multimap</code></td><td align="left"><code class="filename">unordered_map</code></td><td align="left"><code class="classname">__gnu_debug::unordered_multimap</code></td><td align="left"><code class="filename">unordered_map</code></td></tr><tr><td align="left"><code class="classname">std::unordered_set</code></td><td align="left"><code class="filename">unordered_set</code></td><td align="left"><code class="classname">__gnu_debug::unordered_set</code></td><td align="left"><code class="filename">unordered_set</code></td></tr><tr><td align="left"><code class="classname">std::unordered_multiset</code></td><td align="left"><code class="filename">unordered_set</code></td><td align="left"><code class="classname">__gnu_debug::unordered_multiset</code></td><td align="left"><code class="filename">unordered_set</code></td></tr></tbody></table></div></div><br class="table-break" /></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt12ch30s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="debug_mode.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt12ch30s04.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Semantics </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Design</td></tr></table></div></body></html>
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?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">
|
<!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>Design</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><meta name="keywords" content=" C++ , library , profile " /><meta name="keywords" content=" ISO C++ , library " /><link rel="home" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="profile_mode.html" title="Chapter 32. Profile Mode" /><link rel="prev" href="profile_mode.html" title="Chapter 32. Profile Mode" /><link rel="next" href="bk01pt12ch32s03.html" title="Extensions for Custom Containers" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="profile_mode.html">Prev</a> </td><th width="60%" align="center">Chapter 32. Profile Mode</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt12ch32s03.html">Next</a></td></tr></table><hr /></div><div class="sect1" title="Design"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.profile_mode.design"></a>Design</h2></div></div></div><p>
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Design</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><meta name="keywords" content=" C++ , library , profile " /><meta name="keywords" content=" ISO C++ , library " /><link rel="home" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="profile_mode.html" title="Chapter 32. Profile Mode" /><link rel="prev" href="profile_mode.html" title="Chapter 32. Profile Mode" /><link rel="next" href="bk01pt12ch32s03.html" title="Extensions for Custom Containers" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="profile_mode.html">Prev</a> </td><th width="60%" align="center">Chapter 32. Profile Mode</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt12ch32s03.html">Next</a></td></tr></table><hr /></div><div class="sect1" title="Design"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.profile_mode.design"></a>Design</h2></div></div></div><p>
|
||||||
</p><div class="table"><a id="id638904"></a><p class="title"><b>Table 32.1. Code Location</b></p><div class="table-contents"><table summary="Code Location" border="1"><colgroup><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left">Code Location</th><th align="left">Use</th></tr></thead><tbody><tr><td align="left"><code class="code">libstdc++-v3/include/std/*</code></td><td align="left">Preprocessor code to redirect to profile extension headers.</td></tr><tr><td align="left"><code class="code">libstdc++-v3/include/profile/*</code></td><td align="left">Profile extension public headers (map, vector, ...).</td></tr><tr><td align="left"><code class="code">libstdc++-v3/include/profile/impl/*</code></td><td align="left">Profile extension internals. Implementation files are
|
</p><div class="table"><a id="id594983"></a><p class="title"><b>Table 32.1. Code Location</b></p><div class="table-contents"><table summary="Code Location" border="1"><colgroup><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left">Code Location</th><th align="left">Use</th></tr></thead><tbody><tr><td align="left"><code class="code">libstdc++-v3/include/std/*</code></td><td align="left">Preprocessor code to redirect to profile extension headers.</td></tr><tr><td align="left"><code class="code">libstdc++-v3/include/profile/*</code></td><td align="left">Profile extension public headers (map, vector, ...).</td></tr><tr><td align="left"><code class="code">libstdc++-v3/include/profile/impl/*</code></td><td align="left">Profile extension internals. Implementation files are
|
||||||
only included from <code class="code">impl/profiler.h</code>, which is the only
|
only included from <code class="code">impl/profiler.h</code>, which is the only
|
||||||
file included from the public headers.</td></tr></tbody></table></div></div><br class="table-break" /><p>
|
file included from the public headers.</td></tr></tbody></table></div></div><br class="table-break" /><p>
|
||||||
</p><div class="sect2" title="Wrapper Model"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.wrapper"></a>Wrapper Model</h3></div></div></div><p>
|
</p><div class="sect2" title="Wrapper Model"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.wrapper"></a>Wrapper Model</h3></div></div></div><p>
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@
|
||||||
A high accuracy means that the diagnostic is unlikely to be wrong.
|
A high accuracy means that the diagnostic is unlikely to be wrong.
|
||||||
These grades are not perfect. They are just meant to guide users with
|
These grades are not perfect. They are just meant to guide users with
|
||||||
specific needs or time budgets.
|
specific needs or time budgets.
|
||||||
</p><div class="table"><a id="id535845"></a><p class="title"><b>Table 32.2. Diagnostics</b></p><div class="table-contents"><table summary="Diagnostics" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left">Group</th><th align="left">Flag</th><th align="left">Benefit</th><th align="left">Cost</th><th align="left">Freq.</th><th align="left">Implemented</th></tr></thead><tbody><tr><td align="left"><a class="ulink" href="#manual.ext.profile_mode.analysis.containers" target="_top">
|
</p><div class="table"><a id="id626153"></a><p class="title"><b>Table 32.2. Diagnostics</b></p><div class="table-contents"><table summary="Diagnostics" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left">Group</th><th align="left">Flag</th><th align="left">Benefit</th><th align="left">Cost</th><th align="left">Freq.</th><th align="left">Implemented</th></tr></thead><tbody><tr><td align="left"><a class="ulink" href="#manual.ext.profile_mode.analysis.containers" target="_top">
|
||||||
CONTAINERS</a></td><td align="left"><a class="ulink" href="#manual.ext.profile_mode.analysis.hashtable_too_small" target="_top">
|
CONTAINERS</a></td><td align="left"><a class="ulink" href="#manual.ext.profile_mode.analysis.hashtable_too_small" target="_top">
|
||||||
HASHTABLE_TOO_SMALL</a></td><td align="left">10</td><td align="left">1</td><td align="left"> </td><td align="left">10</td><td align="left">yes</td></tr><tr><td align="left"> </td><td align="left"><a class="ulink" href="#manual.ext.profile_mode.analysis.hashtable_too_large" target="_top">
|
HASHTABLE_TOO_SMALL</a></td><td align="left">10</td><td align="left">1</td><td align="left"> </td><td align="left">10</td><td align="left">yes</td></tr><tr><td align="left"> </td><td align="left"><a class="ulink" href="#manual.ext.profile_mode.analysis.hashtable_too_large" target="_top">
|
||||||
HASHTABLE_TOO_LARGE</a></td><td align="left">5</td><td align="left">1</td><td align="left"> </td><td align="left">10</td><td align="left">yes</td></tr><tr><td align="left"> </td><td align="left"><a class="ulink" href="#manual.ext.profile_mode.analysis.inefficient_hash" target="_top">
|
HASHTABLE_TOO_LARGE</a></td><td align="left">5</td><td align="left">1</td><td align="left"> </td><td align="left">10</td><td align="left">yes</td></tr><tr><td align="left"> </td><td align="left"><a class="ulink" href="#manual.ext.profile_mode.analysis.inefficient_hash" target="_top">
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title></title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="home" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="extensions.html" title="Part XII. Extensions" /><link rel="prev" href="extensions.html" title="Part XII. Extensions" /><link rel="next" href="ext_compile_checks.html" title="Chapter 29. Compile Time Checks" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="extensions.html">Prev</a> </td><th width="60%" align="center">Part XII.
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title></title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="home" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="extensions.html" title="Part XII. Extensions" /><link rel="prev" href="extensions.html" title="Part XII. Extensions" /><link rel="next" href="ext_compile_checks.html" title="Chapter 29. Compile Time Checks" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="extensions.html">Prev</a> </td><th width="60%" align="center">Part XII.
|
||||||
Extensions
|
Extensions
|
||||||
|
|
||||||
</th><td width="20%" align="right"> <a accesskey="n" href="ext_compile_checks.html">Next</a></td></tr></table><hr /></div><div class="preface"><div class="titlepage"><div><div><h2 class="title"><a id="id556681"></a></h2></div></div></div><p>
|
</th><td width="20%" align="right"> <a accesskey="n" href="ext_compile_checks.html">Next</a></td></tr></table><hr /></div><div class="preface"><div class="titlepage"><div><div><h2 class="title"><a id="id684983"></a></h2></div></div></div><p>
|
||||||
Here we will make an attempt at describing the non-Standard extensions to
|
Here we will make an attempt at describing the non-Standard extensions to
|
||||||
the library. Some of these are from SGI's STL, some of these are GNU's,
|
the library. Some of these are from SGI's STL, some of these are GNU's,
|
||||||
and some just seemed to appear on the doorstep.
|
and some just seemed to appear on the doorstep.
|
||||||
|
|
|
||||||
|
|
@ -337,41 +337,41 @@ codecvt usage.
|
||||||
</p></li><li class="listitem"><p>
|
</p></li><li class="listitem"><p>
|
||||||
wchar_t/char internal buffers and conversions between
|
wchar_t/char internal buffers and conversions between
|
||||||
internal/external buffers?
|
internal/external buffers?
|
||||||
</p></li></ul></div></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="facet.codecvt.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry" title="The GNU C Library"><a id="id538686"></a><p><span class="title"><i>
|
</p></li></ul></div></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="facet.codecvt.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry" title="The GNU C Library"><a id="id686680"></a><p><span class="title"><i>
|
||||||
The GNU C Library
|
The GNU C Library
|
||||||
</i>. </span><span class="author"><span class="firstname">Roland</span> <span class="surname">McGrath</span>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2007 FSF. </span><span class="pagenums">Chapters 6 Character Set Handling and 7 Locales and Internationalization. </span></p></div><div class="biblioentry" title="Correspondence"><a id="id537558"></a><p><span class="title"><i>
|
</i>. </span><span class="author"><span class="firstname">Roland</span> <span class="surname">McGrath</span>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2007 FSF. </span><span class="pagenums">Chapters 6 Character Set Handling and 7 Locales and Internationalization. </span></p></div><div class="biblioentry" title="Correspondence"><a id="id693504"></a><p><span class="title"><i>
|
||||||
Correspondence
|
Correspondence
|
||||||
</i>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2002 . </span></p></div><div class="biblioentry" title="ISO/IEC 14882:1998 Programming languages - C++"><a id="id560564"></a><p><span class="title"><i>
|
</i>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2002 . </span></p></div><div class="biblioentry" title="ISO/IEC 14882:1998 Programming languages - C++"><a id="id612636"></a><p><span class="title"><i>
|
||||||
ISO/IEC 14882:1998 Programming languages - C++
|
ISO/IEC 14882:1998 Programming languages - C++
|
||||||
</i>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry" title="ISO/IEC 9899:1999 Programming languages - C"><a id="id560582"></a><p><span class="title"><i>
|
</i>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry" title="ISO/IEC 9899:1999 Programming languages - C"><a id="id612655"></a><p><span class="title"><i>
|
||||||
ISO/IEC 9899:1999 Programming languages - C
|
ISO/IEC 9899:1999 Programming languages - C
|
||||||
</i>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry" title="The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004)"><a id="id627715"></a><p><span class="title"><i>
|
</i>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry" title="The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004)"><a id="id699030"></a><p><span class="title"><i>
|
||||||
The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004)
|
The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004)
|
||||||
</i>. </span><span class="copyright">Copyright © 1999
|
</i>. </span><span class="copyright">Copyright © 1999
|
||||||
The Open Group/The Institute of Electrical and Electronics Engineers, Inc.. </span><span class="biblioid">
|
The Open Group/The Institute of Electrical and Electronics Engineers, Inc.. </span><span class="biblioid">
|
||||||
<a class="ulink" href="http://www.unix.org/version3/ieee_std.html" target="_top">
|
<a class="ulink" href="http://www.unix.org/version3/ieee_std.html" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="The C++ Programming Language, Special Edition"><a id="id627742"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry" title="The C++ Programming Language, Special Edition"><a id="id699056"></a><p><span class="title"><i>
|
||||||
The C++ Programming Language, Special Edition
|
The C++ Programming Language, Special Edition
|
||||||
</i>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley, Inc.. </span><span class="pagenums">Appendix D. </span><span class="publisher"><span class="publishername">
|
</i>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley, Inc.. </span><span class="pagenums">Appendix D. </span><span class="publisher"><span class="publishername">
|
||||||
Addison Wesley
|
Addison Wesley
|
||||||
. </span></span></p></div><div class="biblioentry" title="Standard C++ IOStreams and Locales"><a id="id635620"></a><p><span class="title"><i>
|
. </span></span></p></div><div class="biblioentry" title="Standard C++ IOStreams and Locales"><a id="id698403"></a><p><span class="title"><i>
|
||||||
Standard C++ IOStreams and Locales
|
Standard C++ IOStreams and Locales
|
||||||
</i>. </span><span class="subtitle">
|
</i>. </span><span class="subtitle">
|
||||||
Advanced Programmer's Guide and Reference
|
Advanced Programmer's Guide and Reference
|
||||||
. </span><span class="author"><span class="firstname">Angelika</span> <span class="surname">Langer</span>. </span><span class="author"><span class="firstname">Klaus</span> <span class="surname">Kreft</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley Longman, Inc.. </span><span class="publisher"><span class="publishername">
|
. </span><span class="author"><span class="firstname">Angelika</span> <span class="surname">Langer</span>. </span><span class="author"><span class="firstname">Klaus</span> <span class="surname">Kreft</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley Longman, Inc.. </span><span class="publisher"><span class="publishername">
|
||||||
Addison Wesley Longman
|
Addison Wesley Longman
|
||||||
. </span></span></p></div><div class="biblioentry" title="A brief description of Normative Addendum 1"><a id="id562185"></a><p><span class="title"><i>
|
. </span></span></p></div><div class="biblioentry" title="A brief description of Normative Addendum 1"><a id="id661653"></a><p><span class="title"><i>
|
||||||
A brief description of Normative Addendum 1
|
A brief description of Normative Addendum 1
|
||||||
</i>. </span><span class="author"><span class="firstname">Clive</span> <span class="surname">Feather</span>. </span><span class="pagenums">Extended Character Sets. </span><span class="biblioid">
|
</i>. </span><span class="author"><span class="firstname">Clive</span> <span class="surname">Feather</span>. </span><span class="pagenums">Extended Character Sets. </span><span class="biblioid">
|
||||||
<a class="ulink" href="http://www.lysator.liu.se/c/na1.html" target="_top">
|
<a class="ulink" href="http://www.lysator.liu.se/c/na1.html" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="The Unicode HOWTO"><a id="id539337"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry" title="The Unicode HOWTO"><a id="id661684"></a><p><span class="title"><i>
|
||||||
The Unicode HOWTO
|
The Unicode HOWTO
|
||||||
</i>. </span><span class="author"><span class="firstname">Bruno</span> <span class="surname">Haible</span>. </span><span class="biblioid">
|
</i>. </span><span class="author"><span class="firstname">Bruno</span> <span class="surname">Haible</span>. </span><span class="biblioid">
|
||||||
<a class="ulink" href="http://tldp.org/HOWTO/Unicode-HOWTO.html" target="_top">
|
<a class="ulink" href="http://tldp.org/HOWTO/Unicode-HOWTO.html" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="UTF-8 and Unicode FAQ for Unix/Linux"><a id="id538977"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry" title="UTF-8 and Unicode FAQ for Unix/Linux"><a id="id662453"></a><p><span class="title"><i>
|
||||||
UTF-8 and Unicode FAQ for Unix/Linux
|
UTF-8 and Unicode FAQ for Unix/Linux
|
||||||
</i>. </span><span class="author"><span class="firstname">Markus</span> <span class="surname">Khun</span>. </span><span class="biblioid">
|
</i>. </span><span class="author"><span class="firstname">Markus</span> <span class="surname">Khun</span>. </span><span class="biblioid">
|
||||||
<a class="ulink" href="http://www.cl.cam.ac.uk/~mgk25/unicode.html" target="_top">
|
<a class="ulink" href="http://www.cl.cam.ac.uk/~mgk25/unicode.html" target="_top">
|
||||||
|
|
|
||||||
|
|
@ -5,5 +5,5 @@
|
||||||
|
|
||||||
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="messages.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="sequences.html">Next</a></td></tr></table><hr /></div><div class="part" title="Part VII. Containers"><div class="titlepage"><div><div><h1 class="title"><a id="manual.containers"></a>Part VII.
|
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="messages.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="sequences.html">Next</a></td></tr></table><hr /></div><div class="part" title="Part VII. Containers"><div class="titlepage"><div><div><h1 class="title"><a id="manual.containers"></a>Part VII.
|
||||||
Containers
|
Containers
|
||||||
<a id="id580306" class="indexterm"></a>
|
<a id="id611655" class="indexterm"></a>
|
||||||
</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="sequences.html">16. Sequences</a></span></dt><dd><dl><dt><span class="sect1"><a href="sequences.html#containers.sequences.list">list</a></span></dt><dd><dl><dt><span class="sect2"><a href="sequences.html#sequences.list.size">list::size() is O(n)</a></span></dt></dl></dd><dt><span class="sect1"><a href="vector.html">vector</a></span></dt><dd><dl><dt><span class="sect2"><a href="vector.html#sequences.vector.management">Space Overhead Management</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="associative.html">17. Associative</a></span></dt><dd><dl><dt><span class="sect1"><a href="associative.html#containers.associative.insert_hints">Insertion Hints</a></span></dt><dt><span class="sect1"><a href="bitset.html">bitset</a></span></dt><dd><dl><dt><span class="sect2"><a href="bitset.html#associative.bitset.size_variable">Size Variable</a></span></dt><dt><span class="sect2"><a href="bitset.html#associative.bitset.type_string">Type String</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="containers_and_c.html">18. Interacting with C</a></span></dt><dd><dl><dt><span class="sect1"><a href="containers_and_c.html#containers.c.vs_array">Containers vs. Arrays</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="messages.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="spine.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="sequences.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">messages </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 16. Sequences</td></tr></table></div></body></html>
|
</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="sequences.html">16. Sequences</a></span></dt><dd><dl><dt><span class="sect1"><a href="sequences.html#containers.sequences.list">list</a></span></dt><dd><dl><dt><span class="sect2"><a href="sequences.html#sequences.list.size">list::size() is O(n)</a></span></dt></dl></dd><dt><span class="sect1"><a href="vector.html">vector</a></span></dt><dd><dl><dt><span class="sect2"><a href="vector.html#sequences.vector.management">Space Overhead Management</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="associative.html">17. Associative</a></span></dt><dd><dl><dt><span class="sect1"><a href="associative.html#containers.associative.insert_hints">Insertion Hints</a></span></dt><dt><span class="sect1"><a href="bitset.html">bitset</a></span></dt><dd><dl><dt><span class="sect2"><a href="bitset.html#associative.bitset.size_variable">Size Variable</a></span></dt><dt><span class="sect2"><a href="bitset.html#associative.bitset.type_string">Type String</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="containers_and_c.html">18. Interacting with C</a></span></dt><dd><dl><dt><span class="sect1"><a href="containers_and_c.html#containers.c.vs_array">Containers vs. Arrays</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="messages.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="spine.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="sequences.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">messages </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 16. Sequences</td></tr></table></div></body></html>
|
||||||
|
|
|
||||||
|
|
@ -5,5 +5,5 @@
|
||||||
|
|
||||||
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="verbose_termination.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="exceptions.html">Next</a></td></tr></table><hr /></div><div class="part" title="Part III. Diagnostics"><div class="titlepage"><div><div><h1 class="title"><a id="manual.diagnostics"></a>Part III.
|
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="verbose_termination.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="exceptions.html">Next</a></td></tr></table><hr /></div><div class="part" title="Part III. Diagnostics"><div class="titlepage"><div><div><h1 class="title"><a id="manual.diagnostics"></a>Part III.
|
||||||
Diagnostics
|
Diagnostics
|
||||||
<a id="id626552" class="indexterm"></a>
|
<a id="id622040" class="indexterm"></a>
|
||||||
</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="exceptions.html">7. Exceptions</a></span></dt><dd><dl><dt><span class="sect1"><a href="exceptions.html#manual.diagnostics.exceptions.hierarchy">Exception Classes</a></span></dt><dt><span class="sect1"><a href="bk01pt03ch07s02.html">Adding Data to Exceptions</a></span></dt></dl></dd><dt><span class="chapter"><a href="bk01pt03ch08.html">8. Concept Checking</a></span></dt></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="verbose_termination.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="spine.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="exceptions.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Verbose Terminate Handler </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 7. Exceptions</td></tr></table></div></body></html>
|
</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="exceptions.html">7. Exceptions</a></span></dt><dd><dl><dt><span class="sect1"><a href="exceptions.html#manual.diagnostics.exceptions.hierarchy">Exception Classes</a></span></dt><dt><span class="sect1"><a href="bk01pt03ch07s02.html">Adding Data to Exceptions</a></span></dt></dl></dd><dt><span class="chapter"><a href="bk01pt03ch08.html">8. Concept Checking</a></span></dt></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="verbose_termination.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="spine.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="exceptions.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Verbose Terminate Handler </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 7. Exceptions</td></tr></table></div></body></html>
|
||||||
|
|
|
||||||
|
|
@ -56,18 +56,20 @@
|
||||||
other container-like types should read similarly to these
|
other container-like types should read similarly to these
|
||||||
member functions.
|
member functions.
|
||||||
</p><p>
|
</p><p>
|
||||||
These points accompany the first list in section 3.1 of the
|
Some commentary to accompany
|
||||||
Doxygen manual:
|
the first list in the <a class="ulink" href="http://www.stack.nl/~dimitri/doxygen/docblocks.html" target="_top">Special
|
||||||
</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Use the Javadoc style...</p></li><li class="listitem"><p>
|
Documentation Blocks</a> section of
|
||||||
|
the Doxygen manual:
|
||||||
|
</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>For longer comments, use the Javadoc style...</p></li><li class="listitem"><p>
|
||||||
...not the Qt style. The intermediate *'s are preferred.
|
...not the Qt style. The intermediate *'s are preferred.
|
||||||
</p></li><li class="listitem"><p>
|
</p></li><li class="listitem"><p>
|
||||||
Use the triple-slash style only for one-line comments (the
|
Use the triple-slash style only for one-line comments (the
|
||||||
<span class="quote">“<span class="quote">brief</span>”</span> mode). Very recent versions of Doxygen permit
|
<span class="quote">“<span class="quote">brief</span>”</span> mode).
|
||||||
full-mode comments in triple-slash blocks, but the
|
|
||||||
formatting still comes out wonky.
|
|
||||||
</p></li><li class="listitem"><p>
|
</p></li><li class="listitem"><p>
|
||||||
This is disgusting. Don't do this.
|
This is disgusting. Don't do this.
|
||||||
</p></li></ol></div><p>
|
</p></li></ol></div><p>
|
||||||
|
Some specific guidelines:
|
||||||
|
</p><p>
|
||||||
Use the @-style of commands, not the !-style. Please be
|
Use the @-style of commands, not the !-style. Please be
|
||||||
careful about whitespace in your markup comments. Most of the
|
careful about whitespace in your markup comments. Most of the
|
||||||
time it doesn't matter; doxygen absorbs most whitespace, and
|
time it doesn't matter; doxygen absorbs most whitespace, and
|
||||||
|
|
@ -84,7 +86,25 @@
|
||||||
such as the names of function parameters. Use @e for emphasis
|
such as the names of function parameters. Use @e for emphasis
|
||||||
when necessary. Use @c to refer to other standard names.
|
when necessary. Use @c to refer to other standard names.
|
||||||
(Examples of all these abound in the present code.)
|
(Examples of all these abound in the present code.)
|
||||||
</p></div></div><div class="sect2" title="Docbook"><div class="titlepage"><div><div><h3 class="title"><a id="doc_style.docbook"></a>Docbook</h3></div></div></div><div class="sect3" title="Prerequisites"><div class="titlepage"><div><div><h4 class="title"><a id="docbook.prereq"></a>Prerequisites</h4></div></div></div><p>
|
</p><p>
|
||||||
|
Complicated math functions should use the multi-line
|
||||||
|
format. An example from <code class="filename">random.h</code>:
|
||||||
|
</p><p>
|
||||||
|
</p><div class="literallayout"><p><br />
|
||||||
|
/**<br />
|
||||||
|
* @brief A model of a linear congruential random number generator.<br />
|
||||||
|
*<br />
|
||||||
|
* @f[<br />
|
||||||
|
* x_{i+1}\leftarrow(ax_{i} + c) \bmod m <br />
|
||||||
|
* @f]<br />
|
||||||
|
*/<br />
|
||||||
|
</p></div><p>
|
||||||
|
</p><p>
|
||||||
|
Be careful about using certain, special characters when
|
||||||
|
writing Doxygen comments. Single and double quotes, and
|
||||||
|
separators in filenames are two common trouble spots. When in
|
||||||
|
doubt, consult the following table.
|
||||||
|
</p><div class="table"><a id="id645775"></a><p class="title"><b>Table A.1. HTML to Doxygen markup comparison</b></p><div class="table-contents"><table summary="HTML to Doxygen markup comparison" border="1"><colgroup><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left">HTML</th><th align="left">Doxygen</th></tr></thead><tbody><tr><td align="left">\</td><td align="left">\\</td></tr><tr><td align="left">"</td><td align="left">\"</td></tr><tr><td align="left">'</td><td align="left">\'</td></tr><tr><td align="left"><i></td><td align="left">@a word</td></tr><tr><td align="left"><b></td><td align="left">@b word</td></tr><tr><td align="left"><code></td><td align="left">@c word</td></tr><tr><td align="left"><em></td><td align="left">@a word</td></tr><tr><td align="left"><em></td><td align="left"><em>two words or more</em></td></tr></tbody></table></div></div><br class="table-break" /></div></div><div class="sect2" title="Docbook"><div class="titlepage"><div><div><h3 class="title"><a id="doc_style.docbook"></a>Docbook</h3></div></div></div><div class="sect3" title="Prerequisites"><div class="titlepage"><div><div><h4 class="title"><a id="docbook.prereq"></a>Prerequisites</h4></div></div></div><p>
|
||||||
Editing the DocBook sources requires an XML editor. Many
|
Editing the DocBook sources requires an XML editor. Many
|
||||||
exist: some notable options
|
exist: some notable options
|
||||||
include <span class="command"><strong>emacs</strong></span>, <span class="application">Kate</span>,
|
include <span class="command"><strong>emacs</strong></span>, <span class="application">Kate</span>,
|
||||||
|
|
@ -211,11 +231,11 @@ Complete details on Docbook markup can be found in the DocBook Element
|
||||||
Reference, <a class="ulink" href="http://www.docbook.org/tdg/en/html/part2.html" target="_top">online</a>. An
|
Reference, <a class="ulink" href="http://www.docbook.org/tdg/en/html/part2.html" target="_top">online</a>. An
|
||||||
incomplete reference for HTML to Docbook conversion is detailed in the
|
incomplete reference for HTML to Docbook conversion is detailed in the
|
||||||
table below.
|
table below.
|
||||||
</p><div class="table"><a id="id638510"></a><p class="title"><b>Table A.1. HTML to Docbook XML markup comparison</b></p><div class="table-contents"><table summary="HTML to Docbook XML markup comparison" border="1"><colgroup><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left">HTML</th><th align="left">XML</th></tr></thead><tbody><tr><td align="left"><p></td><td align="left"><para></td></tr><tr><td align="left"><pre></td><td align="left"><computeroutput>, <programlisting>,
|
</p><div class="table"><a id="id724766"></a><p class="title"><b>Table A.2. HTML to Docbook XML markup comparison</b></p><div class="table-contents"><table summary="HTML to Docbook XML markup comparison" border="1"><colgroup><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left">HTML</th><th align="left">Docbook</th></tr></thead><tbody><tr><td align="left"><p></td><td align="left"><para></td></tr><tr><td align="left"><pre></td><td align="left"><computeroutput>, <programlisting>,
|
||||||
<literallayout></td></tr><tr><td align="left"><ul></td><td align="left"><itemizedlist></td></tr><tr><td align="left"><ol></td><td align="left"><orderedlist></td></tr><tr><td align="left"><il></td><td align="left"><listitem></td></tr><tr><td align="left"><dl></td><td align="left"><variablelist></td></tr><tr><td align="left"><dt></td><td align="left"><term></td></tr><tr><td align="left"><dd></td><td align="left"><listitem></td></tr><tr><td align="left"><a href=""></td><td align="left"><ulink url=""></td></tr><tr><td align="left"><code></td><td align="left"><literal>, <programlisting></td></tr><tr><td align="left"><strong></td><td align="left"><emphasis></td></tr><tr><td align="left"><em></td><td align="left"><emphasis></td></tr><tr><td align="left">"</td><td align="left"><quote></td></tr></tbody></table></div></div><br class="table-break" /><p>
|
<literallayout></td></tr><tr><td align="left"><ul></td><td align="left"><itemizedlist></td></tr><tr><td align="left"><ol></td><td align="left"><orderedlist></td></tr><tr><td align="left"><il></td><td align="left"><listitem></td></tr><tr><td align="left"><dl></td><td align="left"><variablelist></td></tr><tr><td align="left"><dt></td><td align="left"><term></td></tr><tr><td align="left"><dd></td><td align="left"><listitem></td></tr><tr><td align="left"><a href=""></td><td align="left"><ulink url=""></td></tr><tr><td align="left"><code></td><td align="left"><literal>, <programlisting></td></tr><tr><td align="left"><strong></td><td align="left"><emphasis></td></tr><tr><td align="left"><em></td><td align="left"><emphasis></td></tr><tr><td align="left">"</td><td align="left"><quote></td></tr></tbody></table></div></div><br class="table-break" /><p>
|
||||||
And examples of detailed markup for which there are no real HTML
|
And examples of detailed markup for which there are no real HTML
|
||||||
equivalents are listed in the table below.
|
equivalents are listed in the table below.
|
||||||
</p><div class="table"><a id="id514390"></a><p class="title"><b>Table A.2. Docbook XML Element Use</b></p><div class="table-contents"><table summary="Docbook XML Element Use" border="1"><colgroup><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left">Element</th><th align="left">Use</th></tr></thead><tbody><tr><td align="left"><structname></td><td align="left"><structname>char_traits</structname></td></tr><tr><td align="left"><classname></td><td align="left"><classname>string</classname></td></tr><tr><td align="left"><function></td><td align="left">
|
</p><div class="table"><a id="id631420"></a><p class="title"><b>Table A.3. Docbook XML Element Use</b></p><div class="table-contents"><table summary="Docbook XML Element Use" border="1"><colgroup><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left">Element</th><th align="left">Use</th></tr></thead><tbody><tr><td align="left"><structname></td><td align="left"><structname>char_traits</structname></td></tr><tr><td align="left"><classname></td><td align="left"><classname>string</classname></td></tr><tr><td align="left"><function></td><td align="left">
|
||||||
<p><function>clear()</function></p>
|
<p><function>clear()</function></p>
|
||||||
<p><function>fs.clear()</function></p>
|
<p><function>fs.clear()</function></p>
|
||||||
</td></tr><tr><td align="left"><type></td><td align="left"><type>long long</type></td></tr><tr><td align="left"><varname></td><td align="left"><varname>fs</varname></td></tr><tr><td align="left"><literal></td><td align="left">
|
</td></tr><tr><td align="left"><type></td><td align="left"><type>long long</type></td></tr><tr><td align="left"><varname></td><td align="left"><varname>fs</varname></td></tr><tr><td align="left"><literal></td><td align="left">
|
||||||
|
|
@ -227,4 +247,5 @@ table below.
|
||||||
</td></tr><tr><td align="left"><command></td><td align="left"><command>g++</command></td></tr><tr><td align="left"><errortext></td><td align="left"><errortext>In instantiation of</errortext></td></tr><tr><td align="left"><filename></td><td align="left">
|
</td></tr><tr><td align="left"><command></td><td align="left"><command>g++</command></td></tr><tr><td align="left"><errortext></td><td align="left"><errortext>In instantiation of</errortext></td></tr><tr><td align="left"><filename></td><td align="left">
|
||||||
<p><filename class="headerfile">ctype.h</filename></p>
|
<p><filename class="headerfile">ctype.h</filename></p>
|
||||||
<p><filename class="directory">/home/gcc/build</filename></p>
|
<p><filename class="directory">/home/gcc/build</filename></p>
|
||||||
|
<p><filename class="libraryfile">libstdc++.so</filename></p>
|
||||||
</td></tr></tbody></table></div></div><br class="table-break" /></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="source_code_style.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="appendix_contributing.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="source_design_notes.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Coding Style </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Design Notes</td></tr></table></div></body></html>
|
</td></tr></tbody></table></div></div><br class="table-break" /></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="source_code_style.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="appendix_contributing.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="source_design_notes.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Coding Style </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Design Notes</td></tr></table></div></body></html>
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -3,7 +3,7 @@
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 15. Facets aka Categories</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="home" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="localization.html" title="Part VI. Localization" /><link rel="prev" href="locales.html" title="Chapter 14. Locales" /><link rel="next" href="codecvt.html" title="codecvt" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 15. Facets aka Categories</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="locales.html">Prev</a> </td><th width="60%" align="center">Part VI.
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 15. Facets aka Categories</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="home" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="localization.html" title="Part VI. Localization" /><link rel="prev" href="locales.html" title="Chapter 14. Locales" /><link rel="next" href="codecvt.html" title="codecvt" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 15. Facets aka Categories</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="locales.html">Prev</a> </td><th width="60%" align="center">Part VI.
|
||||||
Localization
|
Localization
|
||||||
|
|
||||||
</th><td width="20%" align="right"> <a accesskey="n" href="codecvt.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 15. Facets aka Categories"><div class="titlepage"><div><div><h2 class="title"><a id="manual.localization.facet"></a>Chapter 15. Facets aka Categories</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="facets.html#manual.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="sect2"><a href="facets.html#facet.ctype.impl">Implementation</a></span></dt><dt><span class="sect2"><a href="facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="sect1"><a href="codecvt.html">codecvt</a></span></dt><dd><dl><dt><span class="sect2"><a href="codecvt.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="sect2"><a href="codecvt.html#facet.codecvt.design">Design</a></span></dt><dt><span class="sect2"><a href="codecvt.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="sect2"><a href="codecvt.html#facet.codecvt.use">Use</a></span></dt><dt><span class="sect2"><a href="codecvt.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="sect1"><a href="messages.html">messages</a></span></dt><dd><dl><dt><span class="sect2"><a href="messages.html#facet.messages.req">Requirements</a></span></dt><dt><span class="sect2"><a href="messages.html#facet.messages.design">Design</a></span></dt><dt><span class="sect2"><a href="messages.html#facet.messages.impl">Implementation</a></span></dt><dt><span class="sect2"><a href="messages.html#facet.messages.use">Use</a></span></dt><dt><span class="sect2"><a href="messages.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></div><div class="sect1" title="ctype"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.localization.facet.ctype"></a>ctype</h2></div></div></div><div class="sect2" title="Implementation"><div class="titlepage"><div><div><h3 class="title"><a id="facet.ctype.impl"></a>Implementation</h3></div></div></div><div class="sect3" title="Specializations"><div class="titlepage"><div><div><h4 class="title"><a id="id544969"></a>Specializations</h4></div></div></div><p>
|
</th><td width="20%" align="right"> <a accesskey="n" href="codecvt.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 15. Facets aka Categories"><div class="titlepage"><div><div><h2 class="title"><a id="manual.localization.facet"></a>Chapter 15. Facets aka Categories</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="facets.html#manual.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="sect2"><a href="facets.html#facet.ctype.impl">Implementation</a></span></dt><dt><span class="sect2"><a href="facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="sect1"><a href="codecvt.html">codecvt</a></span></dt><dd><dl><dt><span class="sect2"><a href="codecvt.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="sect2"><a href="codecvt.html#facet.codecvt.design">Design</a></span></dt><dt><span class="sect2"><a href="codecvt.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="sect2"><a href="codecvt.html#facet.codecvt.use">Use</a></span></dt><dt><span class="sect2"><a href="codecvt.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="sect1"><a href="messages.html">messages</a></span></dt><dd><dl><dt><span class="sect2"><a href="messages.html#facet.messages.req">Requirements</a></span></dt><dt><span class="sect2"><a href="messages.html#facet.messages.design">Design</a></span></dt><dt><span class="sect2"><a href="messages.html#facet.messages.impl">Implementation</a></span></dt><dt><span class="sect2"><a href="messages.html#facet.messages.use">Use</a></span></dt><dt><span class="sect2"><a href="messages.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></div><div class="sect1" title="ctype"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.localization.facet.ctype"></a>ctype</h2></div></div></div><div class="sect2" title="Implementation"><div class="titlepage"><div><div><h3 class="title"><a id="facet.ctype.impl"></a>Implementation</h3></div></div></div><div class="sect3" title="Specializations"><div class="titlepage"><div><div><h4 class="title"><a id="id602134"></a>Specializations</h4></div></div></div><p>
|
||||||
For the required specialization codecvt<wchar_t, char, mbstate_t> ,
|
For the required specialization codecvt<wchar_t, char, mbstate_t> ,
|
||||||
conversions are made between the internal character set (always UCS4
|
conversions are made between the internal character set (always UCS4
|
||||||
on GNU/Linux) and whatever the currently selected locale for the
|
on GNU/Linux) and whatever the currently selected locale for the
|
||||||
|
|
@ -50,25 +50,25 @@ characters.
|
||||||
</p></li><li class="listitem"><p>
|
</p></li><li class="listitem"><p>
|
||||||
Rename abstract base class. See if just smash-overriding is a
|
Rename abstract base class. See if just smash-overriding is a
|
||||||
better approach. Clarify, add sanity to naming.
|
better approach. Clarify, add sanity to naming.
|
||||||
</p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="facet.ctype.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry" title="The GNU C Library"><a id="id527974"></a><p><span class="title"><i>
|
</p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="facet.ctype.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry" title="The GNU C Library"><a id="id721212"></a><p><span class="title"><i>
|
||||||
The GNU C Library
|
The GNU C Library
|
||||||
</i>. </span><span class="author"><span class="firstname">Roland</span> <span class="surname">McGrath</span>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2007 FSF. </span><span class="pagenums">Chapters 6 Character Set Handling and 7 Locales and Internationalization. </span></p></div><div class="biblioentry" title="Correspondence"><a id="id537855"></a><p><span class="title"><i>
|
</i>. </span><span class="author"><span class="firstname">Roland</span> <span class="surname">McGrath</span>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2007 FSF. </span><span class="pagenums">Chapters 6 Character Set Handling and 7 Locales and Internationalization. </span></p></div><div class="biblioentry" title="Correspondence"><a id="id611041"></a><p><span class="title"><i>
|
||||||
Correspondence
|
Correspondence
|
||||||
</i>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2002 . </span></p></div><div class="biblioentry" title="ISO/IEC 14882:1998 Programming languages - C++"><a id="id552882"></a><p><span class="title"><i>
|
</i>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2002 . </span></p></div><div class="biblioentry" title="ISO/IEC 14882:1998 Programming languages - C++"><a id="id612309"></a><p><span class="title"><i>
|
||||||
ISO/IEC 14882:1998 Programming languages - C++
|
ISO/IEC 14882:1998 Programming languages - C++
|
||||||
</i>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry" title="ISO/IEC 9899:1999 Programming languages - C"><a id="id539564"></a><p><span class="title"><i>
|
</i>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry" title="ISO/IEC 9899:1999 Programming languages - C"><a id="id612328"></a><p><span class="title"><i>
|
||||||
ISO/IEC 9899:1999 Programming languages - C
|
ISO/IEC 9899:1999 Programming languages - C
|
||||||
</i>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry" title="The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004)"><a id="id539583"></a><p><span class="title"><i>
|
</i>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry" title="The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004)"><a id="id626861"></a><p><span class="title"><i>
|
||||||
The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004)
|
The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004)
|
||||||
</i>. </span><span class="copyright">Copyright © 1999
|
</i>. </span><span class="copyright">Copyright © 1999
|
||||||
The Open Group/The Institute of Electrical and Electronics Engineers, Inc.. </span><span class="biblioid">
|
The Open Group/The Institute of Electrical and Electronics Engineers, Inc.. </span><span class="biblioid">
|
||||||
<a class="ulink" href="http://www.unix.org/version3/ieee_std.html" target="_top">
|
<a class="ulink" href="http://www.unix.org/version3/ieee_std.html" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="The C++ Programming Language, Special Edition"><a id="id575089"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry" title="The C++ Programming Language, Special Edition"><a id="id626888"></a><p><span class="title"><i>
|
||||||
The C++ Programming Language, Special Edition
|
The C++ Programming Language, Special Edition
|
||||||
</i>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley, Inc.. </span><span class="pagenums">Appendix D. </span><span class="publisher"><span class="publishername">
|
</i>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley, Inc.. </span><span class="pagenums">Appendix D. </span><span class="publisher"><span class="publishername">
|
||||||
Addison Wesley
|
Addison Wesley
|
||||||
. </span></span></p></div><div class="biblioentry" title="Standard C++ IOStreams and Locales"><a id="id603109"></a><p><span class="title"><i>
|
. </span></span></p></div><div class="biblioentry" title="Standard C++ IOStreams and Locales"><a id="id655841"></a><p><span class="title"><i>
|
||||||
Standard C++ IOStreams and Locales
|
Standard C++ IOStreams and Locales
|
||||||
</i>. </span><span class="subtitle">
|
</i>. </span><span class="subtitle">
|
||||||
Advanced Programmer's Guide and Reference
|
Advanced Programmer's Guide and Reference
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -5,5 +5,5 @@
|
||||||
|
|
||||||
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt10ch23s02.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="iostream_objects.html">Next</a></td></tr></table><hr /></div><div class="part" title="Part XI. Input and Output"><div class="titlepage"><div><div><h1 class="title"><a id="manual.io"></a>Part XI.
|
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt10ch23s02.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="iostream_objects.html">Next</a></td></tr></table><hr /></div><div class="part" title="Part XI. Input and Output"><div class="titlepage"><div><div><h1 class="title"><a id="manual.io"></a>Part XI.
|
||||||
Input and Output
|
Input and Output
|
||||||
<a id="id611601" class="indexterm"></a>
|
<a id="id592157" class="indexterm"></a>
|
||||||
</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="iostream_objects.html">24. Iostream Objects</a></span></dt><dt><span class="chapter"><a href="streambufs.html">25. Stream Buffers</a></span></dt><dd><dl><dt><span class="sect1"><a href="streambufs.html#io.streambuf.derived">Derived streambuf Classes</a></span></dt><dt><span class="sect1"><a href="bk01pt11ch25s02.html">Buffering</a></span></dt></dl></dd><dt><span class="chapter"><a href="stringstreams.html">26. Memory Based Streams</a></span></dt><dd><dl><dt><span class="sect1"><a href="stringstreams.html#manual.io.memstreams.compat">Compatibility With strstream</a></span></dt></dl></dd><dt><span class="chapter"><a href="fstreams.html">27. File Based Streams</a></span></dt><dd><dl><dt><span class="sect1"><a href="fstreams.html#manual.io.filestreams.copying_a_file">Copying a File</a></span></dt><dt><span class="sect1"><a href="bk01pt11ch27s02.html">Binary Input and Output</a></span></dt></dl></dd><dt><span class="chapter"><a href="io_and_c.html">28. Interacting with C</a></span></dt><dd><dl><dt><span class="sect1"><a href="io_and_c.html#manual.io.c.FILE">Using FILE* and file descriptors</a></span></dt><dt><span class="sect1"><a href="bk01pt11ch28s02.html">Performance</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt10ch23s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="spine.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="iostream_objects.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">C99 </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 24. Iostream Objects</td></tr></table></div></body></html>
|
</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="iostream_objects.html">24. Iostream Objects</a></span></dt><dt><span class="chapter"><a href="streambufs.html">25. Stream Buffers</a></span></dt><dd><dl><dt><span class="sect1"><a href="streambufs.html#io.streambuf.derived">Derived streambuf Classes</a></span></dt><dt><span class="sect1"><a href="bk01pt11ch25s02.html">Buffering</a></span></dt></dl></dd><dt><span class="chapter"><a href="stringstreams.html">26. Memory Based Streams</a></span></dt><dd><dl><dt><span class="sect1"><a href="stringstreams.html#manual.io.memstreams.compat">Compatibility With strstream</a></span></dt></dl></dd><dt><span class="chapter"><a href="fstreams.html">27. File Based Streams</a></span></dt><dd><dl><dt><span class="sect1"><a href="fstreams.html#manual.io.filestreams.copying_a_file">Copying a File</a></span></dt><dt><span class="sect1"><a href="bk01pt11ch27s02.html">Binary Input and Output</a></span></dt></dl></dd><dt><span class="chapter"><a href="io_and_c.html">28. Interacting with C</a></span></dt><dd><dl><dt><span class="sect1"><a href="io_and_c.html#manual.io.c.FILE">Using FILE* and file descriptors</a></span></dt><dt><span class="sect1"><a href="bk01pt11ch28s02.html">Performance</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt10ch23s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="spine.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="iostream_objects.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">C99 </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 24. Iostream Objects</td></tr></table></div></body></html>
|
||||||
|
|
|
||||||
|
|
@ -5,5 +5,5 @@
|
||||||
|
|
||||||
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bitset.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt08ch19.html">Next</a></td></tr></table><hr /></div><div class="part" title="Part VIII. Iterators"><div class="titlepage"><div><div><h1 class="title"><a id="manual.iterators"></a>Part VIII.
|
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bitset.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt08ch19.html">Next</a></td></tr></table><hr /></div><div class="part" title="Part VIII. Iterators"><div class="titlepage"><div><div><h1 class="title"><a id="manual.iterators"></a>Part VIII.
|
||||||
Iterators
|
Iterators
|
||||||
<a id="id629101" class="indexterm"></a>
|
<a id="id678897" class="indexterm"></a>
|
||||||
</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="bk01pt08ch19.html">19. Predefined</a></span></dt><dd><dl><dt><span class="sect1"><a href="bk01pt08ch19.html#iterators.predefined.vs_pointers">Iterators vs. Pointers</a></span></dt><dt><span class="sect1"><a href="bk01pt08ch19s02.html">One Past the End</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bitset.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="spine.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt08ch19.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">bitset </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 19. Predefined</td></tr></table></div></body></html>
|
</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="bk01pt08ch19.html">19. Predefined</a></span></dt><dd><dl><dt><span class="sect1"><a href="bk01pt08ch19.html#iterators.predefined.vs_pointers">Iterators vs. Pointers</a></span></dt><dt><span class="sect1"><a href="bk01pt08ch19s02.html">One Past the End</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bitset.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="spine.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt08ch19.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">bitset </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 19. Predefined</td></tr></table></div></body></html>
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,8 @@ class facet
|
||||||
</em></span>
|
</em></span>
|
||||||
</p></blockquote></div><p>
|
</p></blockquote></div><p>
|
||||||
Facets actually implement locale functionality. For instance, a facet
|
Facets actually implement locale functionality. For instance, a facet
|
||||||
called numpunct is the data objects that can be used to query for the
|
called numpunct is the data object that can be used to query for the
|
||||||
thousands separator is in the German locale.
|
thousands separator in the locale.
|
||||||
</p><p>
|
</p><p>
|
||||||
Literally, a facet is strictly defined:
|
Literally, a facet is strictly defined:
|
||||||
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
|
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
|
||||||
|
|
@ -398,25 +398,25 @@ global locale" (emphasis Paolo), that is:
|
||||||
What should non-required facet instantiations do? If the
|
What should non-required facet instantiations do? If the
|
||||||
generic implementation is provided, then how to end-users
|
generic implementation is provided, then how to end-users
|
||||||
provide specializations?
|
provide specializations?
|
||||||
</p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="locales.locale.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry" title="The GNU C Library"><a id="id590205"></a><p><span class="title"><i>
|
</p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="locales.locale.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry" title="The GNU C Library"><a id="id645730"></a><p><span class="title"><i>
|
||||||
The GNU C Library
|
The GNU C Library
|
||||||
</i>. </span><span class="author"><span class="firstname">Roland</span> <span class="surname">McGrath</span>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2007 FSF. </span><span class="pagenums">Chapters 6 Character Set Handling and 7 Locales and Internationalization. </span></p></div><div class="biblioentry" title="Correspondence"><a id="id609371"></a><p><span class="title"><i>
|
</i>. </span><span class="author"><span class="firstname">Roland</span> <span class="surname">McGrath</span>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2007 FSF. </span><span class="pagenums">Chapters 6 Character Set Handling and 7 Locales and Internationalization. </span></p></div><div class="biblioentry" title="Correspondence"><a id="id610693"></a><p><span class="title"><i>
|
||||||
Correspondence
|
Correspondence
|
||||||
</i>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2002 . </span></p></div><div class="biblioentry" title="ISO/IEC 14882:1998 Programming languages - C++"><a id="id604200"></a><p><span class="title"><i>
|
</i>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2002 . </span></p></div><div class="biblioentry" title="ISO/IEC 14882:1998 Programming languages - C++"><a id="id638635"></a><p><span class="title"><i>
|
||||||
ISO/IEC 14882:1998 Programming languages - C++
|
ISO/IEC 14882:1998 Programming languages - C++
|
||||||
</i>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry" title="ISO/IEC 9899:1999 Programming languages - C"><a id="id604218"></a><p><span class="title"><i>
|
</i>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry" title="ISO/IEC 9899:1999 Programming languages - C"><a id="id617195"></a><p><span class="title"><i>
|
||||||
ISO/IEC 9899:1999 Programming languages - C
|
ISO/IEC 9899:1999 Programming languages - C
|
||||||
</i>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry" title="The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004)"><a id="id604237"></a><p><span class="title"><i>
|
</i>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry" title="The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004)"><a id="id617213"></a><p><span class="title"><i>
|
||||||
The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004)
|
The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004)
|
||||||
</i>. </span><span class="copyright">Copyright © 1999
|
</i>. </span><span class="copyright">Copyright © 1999
|
||||||
The Open Group/The Institute of Electrical and Electronics Engineers, Inc.. </span><span class="biblioid">
|
The Open Group/The Institute of Electrical and Electronics Engineers, Inc.. </span><span class="biblioid">
|
||||||
<a class="ulink" href="http://www.unix.org/version3/ieee_std.html" target="_top">
|
<a class="ulink" href="http://www.unix.org/version3/ieee_std.html" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="The C++ Programming Language, Special Edition"><a id="id537801"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry" title="The C++ Programming Language, Special Edition"><a id="id713713"></a><p><span class="title"><i>
|
||||||
The C++ Programming Language, Special Edition
|
The C++ Programming Language, Special Edition
|
||||||
</i>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley, Inc.. </span><span class="pagenums">Appendix D. </span><span class="publisher"><span class="publishername">
|
</i>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley, Inc.. </span><span class="pagenums">Appendix D. </span><span class="publisher"><span class="publishername">
|
||||||
Addison Wesley
|
Addison Wesley
|
||||||
. </span></span></p></div><div class="biblioentry" title="Standard C++ IOStreams and Locales"><a id="id610792"></a><p><span class="title"><i>
|
. </span></span></p></div><div class="biblioentry" title="Standard C++ IOStreams and Locales"><a id="id653680"></a><p><span class="title"><i>
|
||||||
Standard C++ IOStreams and Locales
|
Standard C++ IOStreams and Locales
|
||||||
</i>. </span><span class="subtitle">
|
</i>. </span><span class="subtitle">
|
||||||
Advanced Programmer's Guide and Reference
|
Advanced Programmer's Guide and Reference
|
||||||
|
|
|
||||||
|
|
@ -5,5 +5,5 @@
|
||||||
|
|
||||||
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt05ch13s06.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="locales.html">Next</a></td></tr></table><hr /></div><div class="part" title="Part VI. Localization"><div class="titlepage"><div><div><h1 class="title"><a id="manual.localization"></a>Part VI.
|
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt05ch13s06.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="locales.html">Next</a></td></tr></table><hr /></div><div class="part" title="Part VI. Localization"><div class="titlepage"><div><div><h1 class="title"><a id="manual.localization"></a>Part VI.
|
||||||
Localization
|
Localization
|
||||||
<a id="id524362" class="indexterm"></a>
|
<a id="id655346" class="indexterm"></a>
|
||||||
</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="locales.html">14. Locales</a></span></dt><dd><dl><dt><span class="sect1"><a href="locales.html#manual.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="sect2"><a href="locales.html#locales.locale.req">Requirements</a></span></dt><dt><span class="sect2"><a href="locales.html#locales.locale.design">Design</a></span></dt><dt><span class="sect2"><a href="locales.html#locales.locale.impl">Implementation</a></span></dt><dt><span class="sect2"><a href="locales.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="facets.html">15. Facets aka Categories</a></span></dt><dd><dl><dt><span class="sect1"><a href="facets.html#manual.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="sect2"><a href="facets.html#facet.ctype.impl">Implementation</a></span></dt><dt><span class="sect2"><a href="facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="sect1"><a href="codecvt.html">codecvt</a></span></dt><dd><dl><dt><span class="sect2"><a href="codecvt.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="sect2"><a href="codecvt.html#facet.codecvt.design">Design</a></span></dt><dt><span class="sect2"><a href="codecvt.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="sect2"><a href="codecvt.html#facet.codecvt.use">Use</a></span></dt><dt><span class="sect2"><a href="codecvt.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="sect1"><a href="messages.html">messages</a></span></dt><dd><dl><dt><span class="sect2"><a href="messages.html#facet.messages.req">Requirements</a></span></dt><dt><span class="sect2"><a href="messages.html#facet.messages.design">Design</a></span></dt><dt><span class="sect2"><a href="messages.html#facet.messages.impl">Implementation</a></span></dt><dt><span class="sect2"><a href="messages.html#facet.messages.use">Use</a></span></dt><dt><span class="sect2"><a href="messages.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt05ch13s06.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="spine.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="locales.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">CString (MFC) </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 14. Locales</td></tr></table></div></body></html>
|
</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="locales.html">14. Locales</a></span></dt><dd><dl><dt><span class="sect1"><a href="locales.html#manual.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="sect2"><a href="locales.html#locales.locale.req">Requirements</a></span></dt><dt><span class="sect2"><a href="locales.html#locales.locale.design">Design</a></span></dt><dt><span class="sect2"><a href="locales.html#locales.locale.impl">Implementation</a></span></dt><dt><span class="sect2"><a href="locales.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="facets.html">15. Facets aka Categories</a></span></dt><dd><dl><dt><span class="sect1"><a href="facets.html#manual.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="sect2"><a href="facets.html#facet.ctype.impl">Implementation</a></span></dt><dt><span class="sect2"><a href="facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="sect1"><a href="codecvt.html">codecvt</a></span></dt><dd><dl><dt><span class="sect2"><a href="codecvt.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="sect2"><a href="codecvt.html#facet.codecvt.design">Design</a></span></dt><dt><span class="sect2"><a href="codecvt.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="sect2"><a href="codecvt.html#facet.codecvt.use">Use</a></span></dt><dt><span class="sect2"><a href="codecvt.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="sect1"><a href="messages.html">messages</a></span></dt><dd><dl><dt><span class="sect2"><a href="messages.html#facet.messages.req">Requirements</a></span></dt><dt><span class="sect2"><a href="messages.html#facet.messages.design">Design</a></span></dt><dt><span class="sect2"><a href="messages.html#facet.messages.impl">Implementation</a></span></dt><dt><span class="sect2"><a href="messages.html#facet.messages.use">Use</a></span></dt><dt><span class="sect2"><a href="messages.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt05ch13s06.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="spine.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="locales.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">CString (MFC) </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 14. Locales</td></tr></table></div></body></html>
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@
|
||||||
aid to locality if an implementation so
|
aid to locality if an implementation so
|
||||||
desires. <code class="constant">[20.4.1.1]/6</code>
|
desires. <code class="constant">[20.4.1.1]/6</code>
|
||||||
</p></li></ul></div><p>
|
</p></li></ul></div><p>
|
||||||
Complete details cam be found in the C++ standard, look in
|
Complete details can be found in the C++ standard, look in
|
||||||
<code class="constant">[20.4 Memory]</code>.
|
<code class="constant">[20.4 Memory]</code>.
|
||||||
</p></div><div class="sect2" title="Design Issues"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.design_issues"></a>Design Issues</h3></div></div></div><p>
|
</p></div><div class="sect2" title="Design Issues"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.design_issues"></a>Design Issues</h3></div></div></div><p>
|
||||||
The easiest way of fulfilling the requirements is to call
|
The easiest way of fulfilling the requirements is to call
|
||||||
|
|
@ -93,9 +93,9 @@
|
||||||
or loading and unloading shared objects in memory. As such, using
|
or loading and unloading shared objects in memory. As such, using
|
||||||
caching allocators on systems that do not support
|
caching allocators on systems that do not support
|
||||||
<code class="function">abi::__cxa_atexit</code> is not recommended.
|
<code class="function">abi::__cxa_atexit</code> is not recommended.
|
||||||
</p></div><div class="sect2" title="Implementation"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.impl"></a>Implementation</h3></div></div></div><div class="sect3" title="Interface Design"><div class="titlepage"><div><div><h4 class="title"><a id="id602298"></a>Interface Design</h4></div></div></div><p>
|
</p></div><div class="sect2" title="Implementation"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.impl"></a>Implementation</h3></div></div></div><div class="sect3" title="Interface Design"><div class="titlepage"><div><div><h4 class="title"><a id="id630442"></a>Interface Design</h4></div></div></div><p>
|
||||||
The only allocator interface that
|
The only allocator interface that
|
||||||
is support is the standard C++ interface. As such, all STL
|
is supported is the standard C++ interface. As such, all STL
|
||||||
containers have been adjusted, and all external allocators have
|
containers have been adjusted, and all external allocators have
|
||||||
been modified to support this change.
|
been modified to support this change.
|
||||||
</p><p>
|
</p><p>
|
||||||
|
|
@ -106,7 +106,7 @@
|
||||||
</p><p>
|
</p><p>
|
||||||
The base class that <code class="classname">allocator</code> is derived from
|
The base class that <code class="classname">allocator</code> is derived from
|
||||||
may not be user-configurable.
|
may not be user-configurable.
|
||||||
</p></div><div class="sect3" title="Selecting Default Allocation Policy"><div class="titlepage"><div><div><h4 class="title"><a id="id523983"></a>Selecting Default Allocation Policy</h4></div></div></div><p>
|
</p></div><div class="sect3" title="Selecting Default Allocation Policy"><div class="titlepage"><div><div><h4 class="title"><a id="id637894"></a>Selecting Default Allocation Policy</h4></div></div></div><p>
|
||||||
It's difficult to pick an allocation strategy that will provide
|
It's difficult to pick an allocation strategy that will provide
|
||||||
maximum utility, without excessively penalizing some behavior. In
|
maximum utility, without excessively penalizing some behavior. In
|
||||||
fact, it's difficult just deciding which typical actions to measure
|
fact, it's difficult just deciding which typical actions to measure
|
||||||
|
|
@ -127,7 +127,7 @@
|
||||||
Insertion and erasure in a multi-threaded environment.
|
Insertion and erasure in a multi-threaded environment.
|
||||||
</p><p>
|
</p><p>
|
||||||
This test shows the ability of the allocator to reclaim memory
|
This test shows the ability of the allocator to reclaim memory
|
||||||
on a pre-thread basis, as well as measuring thread contention
|
on a per-thread basis, as well as measuring thread contention
|
||||||
for memory resources.
|
for memory resources.
|
||||||
Test source
|
Test source
|
||||||
<a class="ulink" href="http://gcc.gnu.org/viewcvs/trunk/libstdc%2B%2B-v3/testsuite/performance/23_containers/insert_erase/associative.cc?view=markup" target="_top">here</a>.
|
<a class="ulink" href="http://gcc.gnu.org/viewcvs/trunk/libstdc%2B%2B-v3/testsuite/performance/23_containers/insert_erase/associative.cc?view=markup" target="_top">here</a>.
|
||||||
|
|
@ -143,7 +143,7 @@
|
||||||
The current default choice for
|
The current default choice for
|
||||||
<code class="classname">allocator</code> is
|
<code class="classname">allocator</code> is
|
||||||
<code class="classname">__gnu_cxx::new_allocator</code>.
|
<code class="classname">__gnu_cxx::new_allocator</code>.
|
||||||
</p></div><div class="sect3" title="Disabling Memory Caching"><div class="titlepage"><div><div><h4 class="title"><a id="id587698"></a>Disabling Memory Caching</h4></div></div></div><p>
|
</p></div><div class="sect3" title="Disabling Memory Caching"><div class="titlepage"><div><div><h4 class="title"><a id="id629596"></a>Disabling Memory Caching</h4></div></div></div><p>
|
||||||
In use, <code class="classname">allocator</code> may allocate and
|
In use, <code class="classname">allocator</code> may allocate and
|
||||||
deallocate using implementation-specified strategies and
|
deallocate using implementation-specified strategies and
|
||||||
heuristics. Because of this, every call to an allocator object's
|
heuristics. Because of this, every call to an allocator object's
|
||||||
|
|
@ -285,8 +285,8 @@
|
||||||
</p><p>The <code class="varname">thr</code> boolean determines whether the
|
</p><p>The <code class="varname">thr</code> boolean determines whether the
|
||||||
pool should be manipulated atomically or not. When
|
pool should be manipulated atomically or not. When
|
||||||
<code class="varname">thr</code> = <code class="constant">true</code>, the allocator
|
<code class="varname">thr</code> = <code class="constant">true</code>, the allocator
|
||||||
is is thread-safe, while <code class="varname">thr</code> =
|
is thread-safe, while <code class="varname">thr</code> =
|
||||||
<code class="constant">false</code>, and is slightly faster but unsafe for
|
<code class="constant">false</code>, is slightly faster but unsafe for
|
||||||
multiple threads.
|
multiple threads.
|
||||||
</p><p>
|
</p><p>
|
||||||
For thread-enabled configurations, the pool is locked with a
|
For thread-enabled configurations, the pool is locked with a
|
||||||
|
|
@ -308,11 +308,11 @@
|
||||||
A high-performance allocator that uses a bit-map to keep track
|
A high-performance allocator that uses a bit-map to keep track
|
||||||
of the used and unused memory locations. It has its own
|
of the used and unused memory locations. It has its own
|
||||||
documentation, found <a class="link" href="bitmap_allocator.html" title="bitmap_allocator">here</a>.
|
documentation, found <a class="link" href="bitmap_allocator.html" title="bitmap_allocator">here</a>.
|
||||||
</p></li></ol></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry" title="ISO/IEC 14882:1998 Programming languages - C++"><a id="id487642"></a><p><span class="title"><i>
|
</p></li></ol></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry" title="ISO/IEC 14882:1998 Programming languages - C++"><a id="id616986"></a><p><span class="title"><i>
|
||||||
ISO/IEC 14882:1998 Programming languages - C++
|
ISO/IEC 14882:1998 Programming languages - C++
|
||||||
</i>. </span>
|
</i>. </span>
|
||||||
isoc++_1998
|
isoc++_1998
|
||||||
<span class="pagenums">20.4 Memory. </span></p></div><div class="biblioentry" title="The Standard Librarian: What Are Allocators Good"><a id="id487657"></a><p><span class="title"><i>The Standard Librarian: What Are Allocators Good
|
<span class="pagenums">20.4 Memory. </span></p></div><div class="biblioentry" title="The Standard Librarian: What Are Allocators Good"><a id="id617001"></a><p><span class="title"><i>The Standard Librarian: What Are Allocators Good
|
||||||
</i>. </span>
|
</i>. </span>
|
||||||
austernm
|
austernm
|
||||||
<span class="author"><span class="firstname">Matt</span> <span class="surname">Austern</span>. </span><span class="publisher"><span class="publishername">
|
<span class="author"><span class="firstname">Matt</span> <span class="surname">Austern</span>. </span><span class="publisher"><span class="publishername">
|
||||||
|
|
@ -320,27 +320,27 @@
|
||||||
. </span></span><span class="biblioid">
|
. </span></span><span class="biblioid">
|
||||||
<a class="ulink" href="http://www.cuj.com/documents/s=8000/cujcexp1812austern/" target="_top">
|
<a class="ulink" href="http://www.cuj.com/documents/s=8000/cujcexp1812austern/" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="The Hoard Memory Allocator"><a id="id527397"></a><p><span class="title"><i>The Hoard Memory Allocator</i>. </span>
|
. </span></p></div><div class="biblioentry" title="The Hoard Memory Allocator"><a id="id658988"></a><p><span class="title"><i>The Hoard Memory Allocator</i>. </span>
|
||||||
emeryb
|
emeryb
|
||||||
<span class="author"><span class="firstname">Emery</span> <span class="surname">Berger</span>. </span><span class="biblioid">
|
<span class="author"><span class="firstname">Emery</span> <span class="surname">Berger</span>. </span><span class="biblioid">
|
||||||
<a class="ulink" href="http://www.cs.umass.edu/~emery/hoard/" target="_top">
|
<a class="ulink" href="http://www.cs.umass.edu/~emery/hoard/" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="Reconsidering Custom Memory Allocation"><a id="id583738"></a><p><span class="title"><i>Reconsidering Custom Memory Allocation</i>. </span>
|
. </span></p></div><div class="biblioentry" title="Reconsidering Custom Memory Allocation"><a id="id620190"></a><p><span class="title"><i>Reconsidering Custom Memory Allocation</i>. </span>
|
||||||
bergerzorn
|
bergerzorn
|
||||||
<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><span class="biblioid">
|
<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><span class="biblioid">
|
||||||
<a class="ulink" href="http://www.cs.umass.edu/~emery/pubs/berger-oopsla2002.pdf" target="_top">
|
<a class="ulink" href="http://www.cs.umass.edu/~emery/pubs/berger-oopsla2002.pdf" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="Allocator Types"><a id="id517446"></a><p><span class="title"><i>Allocator Types</i>. </span>
|
. </span></p></div><div class="biblioentry" title="Allocator Types"><a id="id598997"></a><p><span class="title"><i>Allocator Types</i>. </span>
|
||||||
kreftlanger
|
kreftlanger
|
||||||
<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">
|
<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
|
C/C++ Users Journal
|
||||||
. </span></span><span class="biblioid">
|
. </span></span><span class="biblioid">
|
||||||
<a class="ulink" href="http://www.angelikalanger.com/Articles/C++Report/Allocators/Allocators.html" target="_top">
|
<a class="ulink" href="http://www.angelikalanger.com/Articles/C++Report/Allocators/Allocators.html" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="The C++ Programming Language"><a id="id531347"></a><p><span class="title"><i>The C++ Programming Language</i>. </span>
|
. </span></p></div><div class="biblioentry" title="The C++ Programming Language"><a id="id683391"></a><p><span class="title"><i>The C++ Programming Language</i>. </span>
|
||||||
tcpl
|
tcpl
|
||||||
<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 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
|
Addison Wesley
|
||||||
. </span></span></p></div><div class="biblioentry" title="Yalloc: A Recycling C++ Allocator"><a id="id614030"></a><p><span class="title"><i>Yalloc: A Recycling C++ Allocator</i>. </span>
|
. </span></span></p></div><div class="biblioentry" title="Yalloc: A Recycling C++ Allocator"><a id="id704594"></a><p><span class="title"><i>Yalloc: A Recycling C++ Allocator</i>. </span>
|
||||||
yenf
|
yenf
|
||||||
<span class="author"><span class="firstname">Felix</span> <span class="surname">Yen</span>. </span><span class="copyright">Copyright © . </span></p></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="pairs.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="utilities.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="auto_ptr.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 10. Pairs </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> auto_ptr</td></tr></table></div></body></html>
|
<span class="author"><span class="firstname">Felix</span> <span class="surname">Yen</span>. </span><span class="copyright">Copyright © . </span></p></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="pairs.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="utilities.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="auto_ptr.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 10. Pairs </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> auto_ptr</td></tr></table></div></body></html>
|
||||||
|
|
|
||||||
|
|
@ -241,38 +241,38 @@ void test01()
|
||||||
model. As of this writing, it is unknown how to query to see
|
model. As of this writing, it is unknown how to query to see
|
||||||
if a specified message catalog exists using the gettext
|
if a specified message catalog exists using the gettext
|
||||||
package.
|
package.
|
||||||
</p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="facet.messages.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry" title="The GNU C Library"><a id="id543895"></a><p><span class="title"><i>
|
</p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="facet.messages.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry" title="The GNU C Library"><a id="id612063"></a><p><span class="title"><i>
|
||||||
The GNU C Library
|
The GNU C Library
|
||||||
</i>. </span><span class="author"><span class="firstname">Roland</span> <span class="surname">McGrath</span>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2007 FSF. </span><span class="pagenums">Chapters 6 Character Set Handling, and 7 Locales and Internationalization
|
</i>. </span><span class="author"><span class="firstname">Roland</span> <span class="surname">McGrath</span>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2007 FSF. </span><span class="pagenums">Chapters 6 Character Set Handling, and 7 Locales and Internationalization
|
||||||
. </span></p></div><div class="biblioentry" title="Correspondence"><a id="id550684"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry" title="Correspondence"><a id="id633252"></a><p><span class="title"><i>
|
||||||
Correspondence
|
Correspondence
|
||||||
</i>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2002 . </span></p></div><div class="biblioentry" title="ISO/IEC 14882:1998 Programming languages - C++"><a id="id591215"></a><p><span class="title"><i>
|
</i>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2002 . </span></p></div><div class="biblioentry" title="ISO/IEC 14882:1998 Programming languages - C++"><a id="id720940"></a><p><span class="title"><i>
|
||||||
ISO/IEC 14882:1998 Programming languages - C++
|
ISO/IEC 14882:1998 Programming languages - C++
|
||||||
</i>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry" title="ISO/IEC 9899:1999 Programming languages - C"><a id="id591234"></a><p><span class="title"><i>
|
</i>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry" title="ISO/IEC 9899:1999 Programming languages - C"><a id="id720958"></a><p><span class="title"><i>
|
||||||
ISO/IEC 9899:1999 Programming languages - C
|
ISO/IEC 9899:1999 Programming languages - C
|
||||||
</i>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry" title="System Interface Definitions, Issue 6 (IEEE Std. 1003.1-200x)"><a id="id544148"></a><p><span class="title"><i>
|
</i>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry" title="System Interface Definitions, Issue 6 (IEEE Std. 1003.1-200x)"><a id="id626200"></a><p><span class="title"><i>
|
||||||
System Interface Definitions, Issue 6 (IEEE Std. 1003.1-200x)
|
System Interface Definitions, Issue 6 (IEEE Std. 1003.1-200x)
|
||||||
</i>. </span><span class="copyright">Copyright © 1999
|
</i>. </span><span class="copyright">Copyright © 1999
|
||||||
The Open Group/The Institute of Electrical and Electronics Engineers, Inc.. </span><span class="biblioid">
|
The Open Group/The Institute of Electrical and Electronics Engineers, Inc.. </span><span class="biblioid">
|
||||||
<a class="ulink" href="http://www.opengroup.org/austin/" target="_top">
|
<a class="ulink" href="http://www.opengroup.org/austin/" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="The C++ Programming Language, Special Edition"><a id="id544176"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry" title="The C++ Programming Language, Special Edition"><a id="id626228"></a><p><span class="title"><i>
|
||||||
The C++ Programming Language, Special Edition
|
The C++ Programming Language, Special Edition
|
||||||
</i>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley, Inc.. </span><span class="pagenums">Appendix D. </span><span class="publisher"><span class="publishername">
|
</i>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley, Inc.. </span><span class="pagenums">Appendix D. </span><span class="publisher"><span class="publishername">
|
||||||
Addison Wesley
|
Addison Wesley
|
||||||
. </span></span></p></div><div class="biblioentry" title="Standard C++ IOStreams and Locales"><a id="id522902"></a><p><span class="title"><i>
|
. </span></span></p></div><div class="biblioentry" title="Standard C++ IOStreams and Locales"><a id="id706351"></a><p><span class="title"><i>
|
||||||
Standard C++ IOStreams and Locales
|
Standard C++ IOStreams and Locales
|
||||||
</i>. </span><span class="subtitle">
|
</i>. </span><span class="subtitle">
|
||||||
Advanced Programmer's Guide and Reference
|
Advanced Programmer's Guide and Reference
|
||||||
. </span><span class="author"><span class="firstname">Angelika</span> <span class="surname">Langer</span>. </span><span class="author"><span class="firstname">Klaus</span> <span class="surname">Kreft</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley Longman, Inc.. </span><span class="publisher"><span class="publishername">
|
. </span><span class="author"><span class="firstname">Angelika</span> <span class="surname">Langer</span>. </span><span class="author"><span class="firstname">Klaus</span> <span class="surname">Kreft</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley Longman, Inc.. </span><span class="publisher"><span class="publishername">
|
||||||
Addison Wesley Longman
|
Addison Wesley Longman
|
||||||
. </span></span></p></div><div class="biblioentry" title="Java 2 Platform, Standard Edition, v 1.3.1 API Specification"><a id="id545411"></a><p><span class="title"><i>
|
. </span></span></p></div><div class="biblioentry" title="Java 2 Platform, Standard Edition, v 1.3.1 API Specification"><a id="id655088"></a><p><span class="title"><i>
|
||||||
Java 2 Platform, Standard Edition, v 1.3.1 API Specification
|
Java 2 Platform, Standard Edition, v 1.3.1 API Specification
|
||||||
</i>. </span><span class="pagenums">java.util.Properties, java.text.MessageFormat,
|
</i>. </span><span class="pagenums">java.util.Properties, java.text.MessageFormat,
|
||||||
java.util.Locale, java.util.ResourceBundle. </span><span class="biblioid">
|
java.util.Locale, java.util.ResourceBundle. </span><span class="biblioid">
|
||||||
<a class="ulink" href="http://java.sun.com/reference/api/index.html" target="_top">
|
<a class="ulink" href="http://java.sun.com/reference/api/index.html" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="GNU gettext tools, version 0.10.38, Native Language Support Library and Tools."><a id="id622928"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry" title="GNU gettext tools, version 0.10.38, Native Language Support Library and Tools."><a id="id680363"></a><p><span class="title"><i>
|
||||||
GNU gettext tools, version 0.10.38, Native Language Support
|
GNU gettext tools, version 0.10.38, Native Language Support
|
||||||
Library and Tools.
|
Library and Tools.
|
||||||
</i>. </span><span class="biblioid">
|
</i>. </span><span class="biblioid">
|
||||||
|
|
|
||||||
|
|
@ -5,5 +5,5 @@
|
||||||
|
|
||||||
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt09ch20.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="complex.html">Next</a></td></tr></table><hr /></div><div class="part" title="Part X. Numerics"><div class="titlepage"><div><div><h1 class="title"><a id="manual.numerics"></a>Part X.
|
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt09ch20.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="complex.html">Next</a></td></tr></table><hr /></div><div class="part" title="Part X. Numerics"><div class="titlepage"><div><div><h1 class="title"><a id="manual.numerics"></a>Part X.
|
||||||
Numerics
|
Numerics
|
||||||
<a id="id532401" class="indexterm"></a>
|
<a id="id622280" class="indexterm"></a>
|
||||||
</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="complex.html">21. Complex</a></span></dt><dd><dl><dt><span class="sect1"><a href="complex.html#numerics.complex.processing">complex Processing</a></span></dt></dl></dd><dt><span class="chapter"><a href="generalized_numeric_operations.html">22. Generalized Operations</a></span></dt><dt><span class="chapter"><a href="numerics_and_c.html">23. Interacting with C</a></span></dt><dd><dl><dt><span class="sect1"><a href="numerics_and_c.html#numerics.c.array">Numerics vs. Arrays</a></span></dt><dt><span class="sect1"><a href="bk01pt10ch23s02.html">C99</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt09ch20.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="spine.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="complex.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 20. Mutating </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 21. Complex</td></tr></table></div></body></html>
|
</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="complex.html">21. Complex</a></span></dt><dd><dl><dt><span class="sect1"><a href="complex.html#numerics.complex.processing">complex Processing</a></span></dt></dl></dd><dt><span class="chapter"><a href="generalized_numeric_operations.html">22. Generalized Operations</a></span></dt><dt><span class="chapter"><a href="numerics_and_c.html">23. Interacting with C</a></span></dt><dd><dl><dt><span class="sect1"><a href="numerics_and_c.html#numerics.c.array">Numerics vs. Arrays</a></span></dt><dt><span class="sect1"><a href="bk01pt10ch23s02.html">C99</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt09ch20.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="spine.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="complex.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 20. Mutating </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 21. Complex</td></tr></table></div></body></html>
|
||||||
|
|
|
||||||
|
|
@ -13,11 +13,11 @@ explicit source declaration or by compiling existing sources with a
|
||||||
specific compiler flag.
|
specific compiler flag.
|
||||||
</p><div class="sect1" title="Intro"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.parallel_mode.intro"></a>Intro</h2></div></div></div><p>The following library components in the include
|
</p><div class="sect1" title="Intro"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.parallel_mode.intro"></a>Intro</h2></div></div></div><p>The following library components in the include
|
||||||
<code class="filename">numeric</code> are included in the parallel mode:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="function">std::accumulate</code></p></li><li class="listitem"><p><code class="function">std::adjacent_difference</code></p></li><li class="listitem"><p><code class="function">std::inner_product</code></p></li><li class="listitem"><p><code class="function">std::partial_sum</code></p></li></ul></div><p>The following library components in the include
|
<code class="filename">numeric</code> are included in the parallel mode:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="function">std::accumulate</code></p></li><li class="listitem"><p><code class="function">std::adjacent_difference</code></p></li><li class="listitem"><p><code class="function">std::inner_product</code></p></li><li class="listitem"><p><code class="function">std::partial_sum</code></p></li></ul></div><p>The following library components in the include
|
||||||
<code class="filename">algorithm</code> are included in the parallel mode:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="function">std::adjacent_find</code></p></li><li class="listitem"><p><code class="function">std::count</code></p></li><li class="listitem"><p><code class="function">std::count_if</code></p></li><li class="listitem"><p><code class="function">std::equal</code></p></li><li class="listitem"><p><code class="function">std::find</code></p></li><li class="listitem"><p><code class="function">std::find_if</code></p></li><li class="listitem"><p><code class="function">std::find_first_of</code></p></li><li class="listitem"><p><code class="function">std::for_each</code></p></li><li class="listitem"><p><code class="function">std::generate</code></p></li><li class="listitem"><p><code class="function">std::generate_n</code></p></li><li class="listitem"><p><code class="function">std::lexicographical_compare</code></p></li><li class="listitem"><p><code class="function">std::mismatch</code></p></li><li class="listitem"><p><code class="function">std::search</code></p></li><li class="listitem"><p><code class="function">std::search_n</code></p></li><li class="listitem"><p><code class="function">std::transform</code></p></li><li class="listitem"><p><code class="function">std::replace</code></p></li><li class="listitem"><p><code class="function">std::replace_if</code></p></li><li class="listitem"><p><code class="function">std::max_element</code></p></li><li class="listitem"><p><code class="function">std::merge</code></p></li><li class="listitem"><p><code class="function">std::min_element</code></p></li><li class="listitem"><p><code class="function">std::nth_element</code></p></li><li class="listitem"><p><code class="function">std::partial_sort</code></p></li><li class="listitem"><p><code class="function">std::partition</code></p></li><li class="listitem"><p><code class="function">std::random_shuffle</code></p></li><li class="listitem"><p><code class="function">std::set_union</code></p></li><li class="listitem"><p><code class="function">std::set_intersection</code></p></li><li class="listitem"><p><code class="function">std::set_symmetric_difference</code></p></li><li class="listitem"><p><code class="function">std::set_difference</code></p></li><li class="listitem"><p><code class="function">std::sort</code></p></li><li class="listitem"><p><code class="function">std::stable_sort</code></p></li><li class="listitem"><p><code class="function">std::unique_copy</code></p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h2 class="title"><a id="parallel_mode.biblio"></a>Bibliography</h2></div></div></div><div class="biblioentry" title="Parallelization of Bulk Operations for STL Dictionaries"><a id="id539441"></a><p><span class="title"><i>
|
<code class="filename">algorithm</code> are included in the parallel mode:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="function">std::adjacent_find</code></p></li><li class="listitem"><p><code class="function">std::count</code></p></li><li class="listitem"><p><code class="function">std::count_if</code></p></li><li class="listitem"><p><code class="function">std::equal</code></p></li><li class="listitem"><p><code class="function">std::find</code></p></li><li class="listitem"><p><code class="function">std::find_if</code></p></li><li class="listitem"><p><code class="function">std::find_first_of</code></p></li><li class="listitem"><p><code class="function">std::for_each</code></p></li><li class="listitem"><p><code class="function">std::generate</code></p></li><li class="listitem"><p><code class="function">std::generate_n</code></p></li><li class="listitem"><p><code class="function">std::lexicographical_compare</code></p></li><li class="listitem"><p><code class="function">std::mismatch</code></p></li><li class="listitem"><p><code class="function">std::search</code></p></li><li class="listitem"><p><code class="function">std::search_n</code></p></li><li class="listitem"><p><code class="function">std::transform</code></p></li><li class="listitem"><p><code class="function">std::replace</code></p></li><li class="listitem"><p><code class="function">std::replace_if</code></p></li><li class="listitem"><p><code class="function">std::max_element</code></p></li><li class="listitem"><p><code class="function">std::merge</code></p></li><li class="listitem"><p><code class="function">std::min_element</code></p></li><li class="listitem"><p><code class="function">std::nth_element</code></p></li><li class="listitem"><p><code class="function">std::partial_sort</code></p></li><li class="listitem"><p><code class="function">std::partition</code></p></li><li class="listitem"><p><code class="function">std::random_shuffle</code></p></li><li class="listitem"><p><code class="function">std::set_union</code></p></li><li class="listitem"><p><code class="function">std::set_intersection</code></p></li><li class="listitem"><p><code class="function">std::set_symmetric_difference</code></p></li><li class="listitem"><p><code class="function">std::set_difference</code></p></li><li class="listitem"><p><code class="function">std::sort</code></p></li><li class="listitem"><p><code class="function">std::stable_sort</code></p></li><li class="listitem"><p><code class="function">std::unique_copy</code></p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h2 class="title"><a id="parallel_mode.biblio"></a>Bibliography</h2></div></div></div><div class="biblioentry" title="Parallelization of Bulk Operations for STL Dictionaries"><a id="id654235"></a><p><span class="title"><i>
|
||||||
Parallelization of Bulk Operations for STL Dictionaries
|
Parallelization of Bulk Operations for STL Dictionaries
|
||||||
</i>. </span><span class="author"><span class="firstname">Johannes</span> <span class="surname">Singler</span>. </span><span class="author"><span class="firstname">Leonor</span> <span class="surname">Frias</span>. </span><span class="copyright">Copyright © 2007 . </span><span class="publisher"><span class="publishername">
|
</i>. </span><span class="author"><span class="firstname">Johannes</span> <span class="surname">Singler</span>. </span><span class="author"><span class="firstname">Leonor</span> <span class="surname">Frias</span>. </span><span class="copyright">Copyright © 2007 . </span><span class="publisher"><span class="publishername">
|
||||||
Workshop on Highly Parallel Processing on a Chip (HPPC) 2007. (LNCS)
|
Workshop on Highly Parallel Processing on a Chip (HPPC) 2007. (LNCS)
|
||||||
. </span></span></p></div><div class="biblioentry" title="The Multi-Core Standard Template Library"><a id="id539488"></a><p><span class="title"><i>
|
. </span></span></p></div><div class="biblioentry" title="The Multi-Core Standard Template Library"><a id="id673060"></a><p><span class="title"><i>
|
||||||
The Multi-Core Standard Template Library
|
The Multi-Core Standard Template Library
|
||||||
</i>. </span><span class="author"><span class="firstname">Johannes</span> <span class="surname">Singler</span>. </span><span class="author"><span class="firstname">Peter</span> <span class="surname">Sanders</span>. </span><span class="author"><span class="firstname">Felix</span> <span class="surname">Putze</span>. </span><span class="copyright">Copyright © 2007 . </span><span class="publisher"><span class="publishername">
|
</i>. </span><span class="author"><span class="firstname">Johannes</span> <span class="surname">Singler</span>. </span><span class="author"><span class="firstname">Peter</span> <span class="surname">Sanders</span>. </span><span class="author"><span class="firstname">Felix</span> <span class="surname">Putze</span>. </span><span class="copyright">Copyright © 2007 . </span><span class="publisher"><span class="publishername">
|
||||||
Euro-Par 2007: Parallel Processing. (LNCS 4641)
|
Euro-Par 2007: Parallel Processing. (LNCS 4641)
|
||||||
|
|
|
||||||
|
|
@ -138,7 +138,7 @@ vector-size: improvement = 3: call stack = 0x804842c ...
|
||||||
call context.
|
call context.
|
||||||
(Environment variable not supported.)
|
(Environment variable not supported.)
|
||||||
</p></li></ul></div><p>
|
</p></li></ul></div><p>
|
||||||
</p></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h2 class="title"><a id="profile_mode.biblio"></a>Bibliography</h2></div></div></div><div class="biblioentry" title="Perflint: A Context Sensitive Performance Advisor for C++ Programs"><a id="id536302"></a><p><span class="title"><i>
|
</p></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h2 class="title"><a id="profile_mode.biblio"></a>Bibliography</h2></div></div></div><div class="biblioentry" title="Perflint: A Context Sensitive Performance Advisor for C++ Programs"><a id="id631630"></a><p><span class="title"><i>
|
||||||
Perflint: A Context Sensitive Performance Advisor for C++ Programs
|
Perflint: A Context Sensitive Performance Advisor for C++ Programs
|
||||||
</i>. </span><span class="author"><span class="firstname">Lixia</span> <span class="surname">Liu</span>. </span><span class="author"><span class="firstname">Silvius</span> <span class="surname">Rus</span>. </span><span class="copyright">Copyright © 2009 . </span><span class="publisher"><span class="publishername">
|
</i>. </span><span class="author"><span class="firstname">Lixia</span> <span class="surname">Liu</span>. </span><span class="author"><span class="firstname">Silvius</span> <span class="surname">Rus</span>. </span><span class="copyright">Copyright © 2009 . </span><span class="publisher"><span class="publishername">
|
||||||
Proceedings of the 2009 International Symposium on Code Generation
|
Proceedings of the 2009 International Symposium on Code Generation
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ drops to zero.
|
||||||
Derived classes override those functions to destroy resources in a context
|
Derived classes override those functions to destroy resources in a context
|
||||||
where the correct dynamic type is known. This is an application of the
|
where the correct dynamic type is known. This is an application of the
|
||||||
technique known as type erasure.
|
technique known as type erasure.
|
||||||
</p></div><div class="sect2" title="Implementation"><div class="titlepage"><div><div><h3 class="title"><a id="shared_ptr.impl"></a>Implementation</h3></div></div></div><div class="sect3" title="Class Hierarchy"><div class="titlepage"><div><div><h4 class="title"><a id="id605519"></a>Class Hierarchy</h4></div></div></div><p>
|
</p></div><div class="sect2" title="Implementation"><div class="titlepage"><div><div><h3 class="title"><a id="shared_ptr.impl"></a>Implementation</h3></div></div></div><div class="sect3" title="Class Hierarchy"><div class="titlepage"><div><div><h4 class="title"><a id="id628890"></a>Class Hierarchy</h4></div></div></div><p>
|
||||||
A <code class="classname">shared_ptr<T></code> contains a pointer of
|
A <code class="classname">shared_ptr<T></code> contains a pointer of
|
||||||
type <span class="type">T*</span> and an object of type
|
type <span class="type">T*</span> and an object of type
|
||||||
<code class="classname">__shared_count</code>. The shared_count contains a
|
<code class="classname">__shared_count</code>. The shared_count contains a
|
||||||
|
|
@ -71,7 +71,7 @@ be forwarded to <span class="type">Tp</span>'s constructor.
|
||||||
Unlike the other <code class="classname">_Sp_counted_*</code> classes, this one is parameterized on the
|
Unlike the other <code class="classname">_Sp_counted_*</code> classes, this one is parameterized on the
|
||||||
type of object, not the type of pointer; this is purely a convenience
|
type of object, not the type of pointer; this is purely a convenience
|
||||||
that simplifies the implementation slightly.
|
that simplifies the implementation slightly.
|
||||||
</p></dd></dl></div></div><div class="sect3" title="Thread Safety"><div class="titlepage"><div><div><h4 class="title"><a id="id525671"></a>Thread Safety</h4></div></div></div><p>
|
</p></dd></dl></div></div><div class="sect3" title="Thread Safety"><div class="titlepage"><div><div><h4 class="title"><a id="id612958"></a>Thread Safety</h4></div></div></div><p>
|
||||||
The interface of <code class="classname">tr1::shared_ptr</code> was extended for C++0x
|
The interface of <code class="classname">tr1::shared_ptr</code> was extended for C++0x
|
||||||
with support for rvalue-references and the other features from
|
with support for rvalue-references and the other features from
|
||||||
N2351. As with other libstdc++ headers shared by TR1 and C++0x,
|
N2351. As with other libstdc++ headers shared by TR1 and C++0x,
|
||||||
|
|
@ -129,7 +129,7 @@ compiler, standard library, platform etc. For the version of
|
||||||
shared_ptr in libstdc++ the compiler and library are fixed, which
|
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
|
makes things much simpler: we have an atomic CAS or we don't, see Lock
|
||||||
Policy below for details.
|
Policy below for details.
|
||||||
</p></div><div class="sect3" title="Selecting Lock Policy"><div class="titlepage"><div><div><h4 class="title"><a id="id543288"></a>Selecting Lock Policy</h4></div></div></div><p>
|
</p></div><div class="sect3" title="Selecting Lock Policy"><div class="titlepage"><div><div><h4 class="title"><a id="id637767"></a>Selecting Lock Policy</h4></div></div></div><p>
|
||||||
</p><p>
|
</p><p>
|
||||||
There is a single <code class="classname">_Sp_counted_base</code> class,
|
There is a single <code class="classname">_Sp_counted_base</code> class,
|
||||||
which is a template parameterized on the enum
|
which is a template parameterized on the enum
|
||||||
|
|
@ -170,7 +170,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
|
<code class="filename">ext/atomicity.h</code>, which detect if the program
|
||||||
is multi-threaded. If only one thread of execution exists in
|
is multi-threaded. If only one thread of execution exists in
|
||||||
the program then less expensive non-atomic operations are used.
|
the program then less expensive non-atomic operations are used.
|
||||||
</p></div><div class="sect3" title="Dual C++0x and TR1 Implementation"><div class="titlepage"><div><div><h4 class="title"><a id="id561010"></a>Dual C++0x and TR1 Implementation</h4></div></div></div><p>
|
</p></div><div class="sect3" title="Dual C++0x and TR1 Implementation"><div class="titlepage"><div><div><h4 class="title"><a id="id618991"></a>Dual C++0x and TR1 Implementation</h4></div></div></div><p>
|
||||||
The classes derived from <code class="classname">_Sp_counted_base</code> (see Class Hierarchy
|
The classes derived from <code class="classname">_Sp_counted_base</code> (see Class Hierarchy
|
||||||
below) and <code class="classname">__shared_count</code> are implemented separately for C++0x
|
below) and <code class="classname">__shared_count</code> are implemented separately for C++0x
|
||||||
and TR1, in <code class="filename">bits/boost_sp_shared_count.h</code> and
|
and TR1, in <code class="filename">bits/boost_sp_shared_count.h</code> and
|
||||||
|
|
@ -181,7 +181,7 @@ The TR1 implementation is considered relatively stable, so is unlikely to
|
||||||
change unless bug fixes require it. If the code that is common to both
|
change unless bug fixes require it. If the code that is common to both
|
||||||
C++0x and TR1 modes needs to diverge further then it might be necessary to
|
C++0x and TR1 modes needs to diverge further then it might be necessary to
|
||||||
duplicate additional classes and only make changes to the C++0x versions.
|
duplicate additional classes and only make changes to the C++0x versions.
|
||||||
</p></div><div class="sect3" title="Related functions and classes"><div class="titlepage"><div><div><h4 class="title"><a id="id577743"></a>Related functions and classes</h4></div></div></div><div class="variablelist"><dl><dt><span class="term"><code class="code">dynamic_pointer_cast</code>, <code class="code">static_pointer_cast</code>,
|
</p></div><div class="sect3" title="Related functions and classes"><div class="titlepage"><div><div><h4 class="title"><a id="id589355"></a>Related functions and classes</h4></div></div></div><div class="variablelist"><dl><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>
|
<code class="code">const_pointer_cast</code></span></dt><dd><p>
|
||||||
As noted in N2351, these functions can be implemented non-intrusively using
|
As noted in N2351, these functions can be implemented non-intrusively using
|
||||||
the alias constructor. However the aliasing constructor is only available
|
the alias constructor. However the aliasing constructor is only available
|
||||||
|
|
@ -214,10 +214,10 @@ is called. Users should not try to use this.
|
||||||
As well as the extra constructors, this implementation also needs some
|
As well as the extra constructors, this implementation also needs some
|
||||||
members of _Sp_counted_deleter to be protected where they could otherwise
|
members of _Sp_counted_deleter to be protected where they could otherwise
|
||||||
be private.
|
be private.
|
||||||
</p></dd></dl></div></div></div><div class="sect2" title="Use"><div class="titlepage"><div><div><h3 class="title"><a id="shared_ptr.using"></a>Use</h3></div></div></div><div class="sect3" title="Examples"><div class="titlepage"><div><div><h4 class="title"><a id="id542221"></a>Examples</h4></div></div></div><p>
|
</p></dd></dl></div></div></div><div class="sect2" title="Use"><div class="titlepage"><div><div><h3 class="title"><a id="shared_ptr.using"></a>Use</h3></div></div></div><div class="sect3" title="Examples"><div class="titlepage"><div><div><h4 class="title"><a id="id619880"></a>Examples</h4></div></div></div><p>
|
||||||
Examples of use can be found in the testsuite, under
|
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/tr1/2_general_utilities/shared_ptr</code>.
|
||||||
</p></div><div class="sect3" title="Unresolved Issues"><div class="titlepage"><div><div><h4 class="title"><a id="id542238"></a>Unresolved Issues</h4></div></div></div><p>
|
</p></div><div class="sect3" title="Unresolved Issues"><div class="titlepage"><div><div><h4 class="title"><a id="id653780"></a>Unresolved Issues</h4></div></div></div><p>
|
||||||
The resolution to C++ Standard Library issue <a class="ulink" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#674" target="_top">674</a>,
|
The resolution to C++ Standard Library issue <a class="ulink" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#674" target="_top">674</a>,
|
||||||
"shared_ptr interface changes for consistency with N1856" will
|
"shared_ptr interface changes for consistency with N1856" will
|
||||||
need to be implemented after it is accepted into the working
|
need to be implemented after it is accepted into the working
|
||||||
|
|
@ -265,7 +265,7 @@ be private.
|
||||||
code to work with, Peter Dimov in particular for his help and
|
code to work with, Peter Dimov in particular for his help and
|
||||||
invaluable advice on thread safety. Phillip Jordan and Paolo
|
invaluable advice on thread safety. Phillip Jordan and Paolo
|
||||||
Carlini for the lock policy implementation.
|
Carlini for the lock policy implementation.
|
||||||
</p></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="shared_ptr.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry" title="Improving shared_ptr for C++0x, Revision 2"><a id="id585842"></a><p>[<abbr class="abbrev">
|
</p></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="shared_ptr.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry" title="Improving shared_ptr for C++0x, Revision 2"><a id="id678655"></a><p>[<abbr class="abbrev">
|
||||||
n2351
|
n2351
|
||||||
</abbr>] <span class="title"><i>
|
</abbr>] <span class="title"><i>
|
||||||
Improving shared_ptr for C++0x, Revision 2
|
Improving shared_ptr for C++0x, Revision 2
|
||||||
|
|
@ -274,7 +274,7 @@ be private.
|
||||||
. </span><span class="biblioid">
|
. </span><span class="biblioid">
|
||||||
<a class="ulink" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2351.htm" target="_top">
|
<a class="ulink" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2351.htm" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="C++ Standard Library Active Issues List (Revision R52)"><a id="id582492"></a><p>[<abbr class="abbrev">
|
. </span></p></div><div class="biblioentry" title="C++ Standard Library Active Issues List (Revision R52)"><a id="id678679"></a><p>[<abbr class="abbrev">
|
||||||
n2456
|
n2456
|
||||||
</abbr>] <span class="title"><i>
|
</abbr>] <span class="title"><i>
|
||||||
C++ Standard Library Active Issues List (Revision R52)
|
C++ Standard Library Active Issues List (Revision R52)
|
||||||
|
|
@ -283,7 +283,7 @@ be private.
|
||||||
. </span><span class="biblioid">
|
. </span><span class="biblioid">
|
||||||
<a class="ulink" href="http://open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2456.html" target="_top">
|
<a class="ulink" href="http://open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2456.html" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="Working Draft, Standard for Programming Language C++"><a id="id588138"></a><p>[<abbr class="abbrev">
|
. </span></p></div><div class="biblioentry" title="Working Draft, Standard for Programming Language C++"><a id="id661793"></a><p>[<abbr class="abbrev">
|
||||||
n2461
|
n2461
|
||||||
</abbr>] <span class="title"><i>
|
</abbr>] <span class="title"><i>
|
||||||
Working Draft, Standard for Programming Language C++
|
Working Draft, Standard for Programming Language C++
|
||||||
|
|
@ -292,7 +292,7 @@ be private.
|
||||||
. </span><span class="biblioid">
|
. </span><span class="biblioid">
|
||||||
<a class="ulink" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2461.pdf" target="_top">
|
<a class="ulink" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2461.pdf" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="Boost C++ Libraries documentation - shared_ptr class template"><a id="id588162"></a><p>[<abbr class="abbrev">
|
. </span></p></div><div class="biblioentry" title="Boost C++ Libraries documentation - shared_ptr class template"><a id="id612415"></a><p>[<abbr class="abbrev">
|
||||||
boostshared_ptr
|
boostshared_ptr
|
||||||
</abbr>] <span class="title"><i>
|
</abbr>] <span class="title"><i>
|
||||||
Boost C++ Libraries documentation - shared_ptr class template
|
Boost C++ Libraries documentation - shared_ptr class template
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -6,9 +6,9 @@
|
||||||
</th><td width="20%" align="right"> <a accesskey="n" href="license.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 1. Status"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.status"></a>Chapter 1. Status</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="sect2"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dt><span class="sect2"><a href="status.html#status.iso.200x">C++ 200x</a></span></dt><dt><span class="sect2"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dt><span class="sect2"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt></dl></dd><dt><span class="sect1"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="sect2"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="sect2"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="sect1"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="sect2"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="sect2"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></div><div class="sect1" title="Implementation Status"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.status.iso"></a>Implementation Status</h2></div></div></div><div class="sect2" title="C++ 1998/2003"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.1998"></a>C++ 1998/2003</h3></div></div></div><div class="sect3" title="Implementation Status"><div class="titlepage"><div><div><h4 class="title"><a id="iso.1998.status"></a>Implementation Status</h4></div></div></div><p>
|
</th><td width="20%" align="right"> <a accesskey="n" href="license.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 1. Status"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.status"></a>Chapter 1. Status</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="sect2"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dt><span class="sect2"><a href="status.html#status.iso.200x">C++ 200x</a></span></dt><dt><span class="sect2"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dt><span class="sect2"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt></dl></dd><dt><span class="sect1"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="sect2"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="sect2"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="sect1"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="sect2"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="sect2"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></div><div class="sect1" title="Implementation Status"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.status.iso"></a>Implementation Status</h2></div></div></div><div class="sect2" title="C++ 1998/2003"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.1998"></a>C++ 1998/2003</h3></div></div></div><div class="sect3" title="Implementation Status"><div class="titlepage"><div><div><h4 class="title"><a id="iso.1998.status"></a>Implementation Status</h4></div></div></div><p>
|
||||||
This status table is based on the table of contents of ISO/IEC 14882:2003.
|
This status table is based on the table of contents of ISO/IEC 14882:2003.
|
||||||
</p><p>
|
</p><p>
|
||||||
This page describes the C++0x support in mainline GCC SVN, not in any
|
This page describes the C++ support in mainline GCC SVN, not in any
|
||||||
particular release.
|
particular release.
|
||||||
</p><div class="table"><a id="id601163"></a><p class="title"><b>Table 1.1. C++ 1998/2003 Implementation Status</b></p><div class="table-contents"><table summary="C++ 1998/2003 Implementation Status" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left">
|
</p><div class="table"><a id="id631851"></a><p class="title"><b>Table 1.1. C++ 1998/2003 Implementation Status</b></p><div class="table-contents"><table summary="C++ 1998/2003 Implementation Status" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left">
|
||||||
<span class="emphasis"><em>18</em></span>
|
<span class="emphasis"><em>18</em></span>
|
||||||
</td><td colspan="3" align="left">
|
</td><td colspan="3" align="left">
|
||||||
<span class="emphasis"><em>Language support</em></span>
|
<span class="emphasis"><em>Language support</em></span>
|
||||||
|
|
@ -148,14 +148,16 @@ Doc No: N3000=09-0190 Date: 2009-11-09
|
||||||
Working Draft, Standard for Programming Language C++
|
Working Draft, Standard for Programming Language C++
|
||||||
</p><p>
|
</p><p>
|
||||||
In this implementation <code class="literal">-std=gnu++0x</code> or
|
In this implementation <code class="literal">-std=gnu++0x</code> or
|
||||||
<code class="literal">-std=c++0x</code> flags must be used to enable language and
|
<code class="literal">-std=c++0x</code> flags must be used to enable language
|
||||||
library features. The pre-defined symbol
|
and library
|
||||||
|
features. See <a class="link" href="using.html#manual.intro.using.flags" title="Command Options">dialect</a>
|
||||||
|
options. The pre-defined symbol
|
||||||
<code class="constant">__GXX_EXPERIMENTAL_CXX0X__</code> is used to check for the
|
<code class="constant">__GXX_EXPERIMENTAL_CXX0X__</code> is used to check for the
|
||||||
presence of the required flag.
|
presence of the required flag.
|
||||||
</p><p>
|
</p><p>
|
||||||
This page describes the C++0x support in mainline GCC SVN, not in any
|
This page describes the C++0x support in mainline GCC SVN, not in any
|
||||||
particular release.
|
particular release.
|
||||||
</p><div class="table"><a id="id552624"></a><p class="title"><b>Table 1.2. C++ 200x Implementation Status</b></p><div class="table-contents"><table summary="C++ 200x Implementation Status" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left">
|
</p><div class="table"><a id="id616054"></a><p class="title"><b>Table 1.2. C++ 200x Implementation Status</b></p><div class="table-contents"><table summary="C++ 200x Implementation Status" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left">
|
||||||
<span class="emphasis"><em>18</em></span>
|
<span class="emphasis"><em>18</em></span>
|
||||||
</td><td colspan="3" align="left">
|
</td><td colspan="3" align="left">
|
||||||
<span class="emphasis"><em>Language support</em></span>
|
<span class="emphasis"><em>Language support</em></span>
|
||||||
|
|
@ -227,7 +229,7 @@ In this implementation the header names are prefixed by
|
||||||
</p><p>
|
</p><p>
|
||||||
This page describes the TR1 support in mainline GCC SVN, not in any particular
|
This page describes the TR1 support in mainline GCC SVN, not in any particular
|
||||||
release.
|
release.
|
||||||
</p><div class="table"><a id="id561647"></a><p class="title"><b>Table 1.3. C++ TR1 Implementation Status</b></p><div class="table-contents"><table summary="C++ TR1 Implementation Status" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left"><span class="emphasis"><em>2</em></span></td><td colspan="3" align="left"><span class="emphasis"><em>General Utilities</em></span></td></tr><tr><td align="left">2.1</td><td align="left">Reference wrappers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.1.1</td><td align="left">Additions to header <code class="code"><functional></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2</td><td align="left">Class template <code class="code">reference_wrapper</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.1.2.1</td><td align="left"><code class="code">reference_wrapper</code> construct/copy/destroy</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.2</td><td align="left"><code class="code">reference_wrapper</code> assignment</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.3</td><td align="left"><code class="code">reference_wrapper</code> access</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.4</td><td align="left"><code class="code">reference_wrapper</code> invocation</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.5</td><td align="left"><code class="code">reference_wrapper</code> helper functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2</td><td align="left">Smart pointers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.2.1</td><td align="left">Additions to header <code class="code"><memory></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.2</td><td align="left">Class <code class="code">bad_weak_ptr</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.3</td><td align="left">Class template <code class="code">shared_ptr</code></td><td align="left"> </td><td align="left">
|
</p><div class="table"><a id="id623542"></a><p class="title"><b>Table 1.3. C++ TR1 Implementation Status</b></p><div class="table-contents"><table summary="C++ TR1 Implementation Status" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left"><span class="emphasis"><em>2</em></span></td><td colspan="3" align="left"><span class="emphasis"><em>General Utilities</em></span></td></tr><tr><td align="left">2.1</td><td align="left">Reference wrappers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.1.1</td><td align="left">Additions to header <code class="code"><functional></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2</td><td align="left">Class template <code class="code">reference_wrapper</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.1.2.1</td><td align="left"><code class="code">reference_wrapper</code> construct/copy/destroy</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.2</td><td align="left"><code class="code">reference_wrapper</code> assignment</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.3</td><td align="left"><code class="code">reference_wrapper</code> access</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.4</td><td align="left"><code class="code">reference_wrapper</code> invocation</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.5</td><td align="left"><code class="code">reference_wrapper</code> helper functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2</td><td align="left">Smart pointers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.2.1</td><td align="left">Additions to header <code class="code"><memory></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.2</td><td align="left">Class <code class="code">bad_weak_ptr</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.3</td><td align="left">Class template <code class="code">shared_ptr</code></td><td align="left"> </td><td align="left">
|
||||||
<p>
|
<p>
|
||||||
Uses code from
|
Uses code from
|
||||||
<a class="ulink" href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm" target="_top">boost::shared_ptr</a>.
|
<a class="ulink" href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm" target="_top">boost::shared_ptr</a>.
|
||||||
|
|
@ -240,7 +242,7 @@ decimal floating-point arithmetic
|
||||||
</p><p>
|
</p><p>
|
||||||
This page describes the TR 24733 support in mainline GCC SVN, not in any
|
This page describes the TR 24733 support in mainline GCC SVN, not in any
|
||||||
particular release.
|
particular release.
|
||||||
</p><div class="table"><a id="id529241"></a><p class="title"><b>Table 1.4. C++ TR 24733 Implementation Status</b></p><div class="table-contents"><table summary="C++ TR 24733 Implementation Status" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left">
|
</p><div class="table"><a id="id602015"></a><p class="title"><b>Table 1.4. C++ TR 24733 Implementation Status</b></p><div class="table-contents"><table summary="C++ TR 24733 Implementation Status" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left">
|
||||||
<span class="emphasis"><em>0</em></span>
|
<span class="emphasis"><em>0</em></span>
|
||||||
</td><td colspan="3" align="left">
|
</td><td colspan="3" align="left">
|
||||||
<span class="emphasis"><em>Introduction</em></span>
|
<span class="emphasis"><em>Introduction</em></span>
|
||||||
|
|
|
||||||
|
|
@ -5,5 +5,5 @@
|
||||||
|
|
||||||
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="shared_ptr.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt05ch13.html">Next</a></td></tr></table><hr /></div><div class="part" title="Part V. Strings"><div class="titlepage"><div><div><h1 class="title"><a id="manual.strings"></a>Part V.
|
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="shared_ptr.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt05ch13.html">Next</a></td></tr></table><hr /></div><div class="part" title="Part V. Strings"><div class="titlepage"><div><div><h1 class="title"><a id="manual.strings"></a>Part V.
|
||||||
Strings
|
Strings
|
||||||
<a id="id540438" class="indexterm"></a>
|
<a id="id638392" class="indexterm"></a>
|
||||||
</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="bk01pt05ch13.html">13. String Classes</a></span></dt><dd><dl><dt><span class="sect1"><a href="bk01pt05ch13.html#strings.string.simple">Simple Transformations</a></span></dt><dt><span class="sect1"><a href="bk01pt05ch13s02.html">Case Sensitivity</a></span></dt><dt><span class="sect1"><a href="bk01pt05ch13s03.html">Arbitrary Character Types</a></span></dt><dt><span class="sect1"><a href="bk01pt05ch13s04.html">Tokenizing</a></span></dt><dt><span class="sect1"><a href="bk01pt05ch13s05.html">Shrink to Fit</a></span></dt><dt><span class="sect1"><a href="bk01pt05ch13s06.html">CString (MFC)</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="shared_ptr.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="spine.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt05ch13.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">shared_ptr </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 13. String Classes</td></tr></table></div></body></html>
|
</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="bk01pt05ch13.html">13. String Classes</a></span></dt><dd><dl><dt><span class="sect1"><a href="bk01pt05ch13.html#strings.string.simple">Simple Transformations</a></span></dt><dt><span class="sect1"><a href="bk01pt05ch13s02.html">Case Sensitivity</a></span></dt><dt><span class="sect1"><a href="bk01pt05ch13s03.html">Arbitrary Character Types</a></span></dt><dt><span class="sect1"><a href="bk01pt05ch13s04.html">Tokenizing</a></span></dt><dt><span class="sect1"><a href="bk01pt05ch13s05.html">Shrink to Fit</a></span></dt><dt><span class="sect1"><a href="bk01pt05ch13s06.html">CString (MFC)</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="shared_ptr.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="spine.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt05ch13.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">shared_ptr </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 13. String Classes</td></tr></table></div></body></html>
|
||||||
|
|
|
||||||
|
|
@ -5,5 +5,5 @@
|
||||||
|
|
||||||
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="debug.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt02pr01.html">Next</a></td></tr></table><hr /></div><div class="part" title="Part II. Support"><div class="titlepage"><div><div><h1 class="title"><a id="manual.support"></a>Part II.
|
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="debug.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt02pr01.html">Next</a></td></tr></table><hr /></div><div class="part" title="Part II. Support"><div class="titlepage"><div><div><h1 class="title"><a id="manual.support"></a>Part II.
|
||||||
Support
|
Support
|
||||||
<a id="id535229" class="indexterm"></a>
|
<a id="id616138" class="indexterm"></a>
|
||||||
</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="preface"><a href="bk01pt02pr01.html"></a></span></dt><dt><span class="chapter"><a href="fundamental_types.html">4. Types</a></span></dt><dd><dl><dt><span class="sect1"><a href="fundamental_types.html#manual.support.types.fundamental">Fundamental Types</a></span></dt><dt><span class="sect1"><a href="bk01pt02ch04s02.html">Numeric Properties</a></span></dt><dt><span class="sect1"><a href="bk01pt02ch04s03.html">NULL</a></span></dt></dl></dd><dt><span class="chapter"><a href="dynamic_memory.html">5. Dynamic Memory</a></span></dt><dt><span class="chapter"><a href="termination.html">6. Termination</a></span></dt><dd><dl><dt><span class="sect1"><a href="termination.html#support.termination.handlers">Termination Handlers</a></span></dt><dt><span class="sect1"><a href="verbose_termination.html">Verbose Terminate Handler</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="debug.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="spine.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt02pr01.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Debugging Support </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></body></html>
|
</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="preface"><a href="bk01pt02pr01.html"></a></span></dt><dt><span class="chapter"><a href="fundamental_types.html">4. Types</a></span></dt><dd><dl><dt><span class="sect1"><a href="fundamental_types.html#manual.support.types.fundamental">Fundamental Types</a></span></dt><dt><span class="sect1"><a href="bk01pt02ch04s02.html">Numeric Properties</a></span></dt><dt><span class="sect1"><a href="bk01pt02ch04s03.html">NULL</a></span></dt></dl></dd><dt><span class="chapter"><a href="dynamic_memory.html">5. Dynamic Memory</a></span></dt><dt><span class="chapter"><a href="termination.html">6. Termination</a></span></dt><dd><dl><dt><span class="sect1"><a href="termination.html#support.termination.handlers">Termination Handlers</a></span></dt><dt><span class="sect1"><a href="verbose_termination.html">Verbose Terminate Handler</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="debug.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="spine.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt02pr01.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Debugging Support </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></body></html>
|
||||||
|
|
|
||||||
|
|
@ -493,7 +493,7 @@ only default variables.
|
||||||
reporting functions including:
|
reporting functions including:
|
||||||
</p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p>time_counter</p></li><li class="listitem"><p>resource_counter</p></li><li class="listitem"><p>report_performance</p></li></ul></div></li></ul></div></div></div><div class="sect2" title="Special Topics"><div class="titlepage"><div><div><h3 class="title"><a id="test.special"></a>Special Topics</h3></div></div></div><div class="sect3" title="Qualifying Exception Safety Guarantees"><div class="titlepage"><div><div><h4 class="title"><a id="test.exception.safety"></a>
|
</p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p>time_counter</p></li><li class="listitem"><p>resource_counter</p></li><li class="listitem"><p>report_performance</p></li></ul></div></li></ul></div></div></div><div class="sect2" title="Special Topics"><div class="titlepage"><div><div><h3 class="title"><a id="test.special"></a>Special Topics</h3></div></div></div><div class="sect3" title="Qualifying Exception Safety Guarantees"><div class="titlepage"><div><div><h4 class="title"><a id="test.exception.safety"></a>
|
||||||
Qualifying Exception Safety Guarantees
|
Qualifying Exception Safety Guarantees
|
||||||
<a id="id519860" class="indexterm"></a>
|
<a id="id650235" class="indexterm"></a>
|
||||||
</h4></div></div></div><div class="sect4" title="Overview"><div class="titlepage"><div><div><h5 class="title"><a id="test.exception.safety.overview"></a>Overview</h5></div></div></div><p>
|
</h4></div></div></div><div class="sect4" title="Overview"><div class="titlepage"><div><div><h5 class="title"><a id="test.exception.safety.overview"></a>Overview</h5></div></div></div><p>
|
||||||
Testing is composed of running a particular test sequence,
|
Testing is composed of running a particular test sequence,
|
||||||
and looking at what happens to the surrounding code when
|
and looking at what happens to the surrounding code when
|
||||||
|
|
|
||||||
|
|
@ -3,42 +3,13 @@
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 3. Using</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="home" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="intro.html" title="Part I. Introduction" /><link rel="prev" href="make.html" title="Make" /><link rel="next" href="using_headers.html" title="Headers" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 3. Using</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="make.html">Prev</a> </td><th width="60%" align="center">Part I.
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 3. Using</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="home" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="intro.html" title="Part I. Introduction" /><link rel="prev" href="make.html" title="Make" /><link rel="next" href="using_headers.html" title="Headers" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 3. Using</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="make.html">Prev</a> </td><th width="60%" align="center">Part I.
|
||||||
Introduction
|
Introduction
|
||||||
|
|
||||||
</th><td width="20%" align="right"> <a accesskey="n" href="using_headers.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 3. Using"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using"></a>Chapter 3. Using</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="using.html#manual.intro.using.lib">Linking Library Binary Files</a></span></dt><dt><span class="sect1"><a href="using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="sect2"><a href="using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="sect2"><a href="using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="sect2"><a href="using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="sect2"><a href="using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="sect1"><a href="using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="sect2"><a href="using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="sect2"><a href="using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="sect2"><a href="using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="sect1"><a href="using_macros.html">Macros</a></span></dt><dt><span class="sect1"><a href="using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="sect2"><a href="using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="sect2"><a href="using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="sect2"><a href="using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="sect2"><a href="using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dt><span class="sect2"><a href="using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="sect1"><a href="using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="sect2"><a href="using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="sect2"><a href="using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="sect2"><a href="using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="sect2"><a href="using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt></dl></dd><dt><span class="sect1"><a href="debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="sect2"><a href="debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="sect2"><a href="debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="sect2"><a href="debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dt><span class="sect2"><a href="debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="sect2"><a href="debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="sect2"><a href="debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="sect2"><a href="debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt><dt><span class="sect2"><a href="debug.html#debug.profile_mode">Profile-based Performance Analysis</a></span></dt></dl></dd></dl></div><div class="sect1" title="Linking Library Binary Files"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.lib"></a>Linking Library Binary Files</h2></div></div></div><p>
|
</th><td width="20%" align="right"> <a accesskey="n" href="using_headers.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter 3. Using"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using"></a>Chapter 3. Using</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="sect1"><a href="using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="sect2"><a href="using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="sect2"><a href="using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="sect2"><a href="using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="sect2"><a href="using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="sect1"><a href="using_macros.html">Macros</a></span></dt><dt><span class="sect1"><a href="using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="sect2"><a href="using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="sect2"><a href="using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="sect2"><a href="using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="sect1"><a href="using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="sect2"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="sect2"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt></dl></dd><dt><span class="sect1"><a href="using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="sect2"><a href="using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="sect2"><a href="using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="sect2"><a href="using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="sect2"><a href="using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dt><span class="sect2"><a href="using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="sect1"><a href="using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="sect2"><a href="using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="sect2"><a href="using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="sect2"><a href="using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="sect2"><a href="using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt></dl></dd><dt><span class="sect1"><a href="debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="sect2"><a href="debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="sect2"><a href="debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="sect2"><a href="debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dt><span class="sect2"><a href="debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="sect2"><a href="debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="sect2"><a href="debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="sect2"><a href="debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt><dt><span class="sect2"><a href="debug.html#debug.profile_mode">Profile-based Performance Analysis</a></span></dt></dl></dd></dl></div><div class="sect1" title="Command Options"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.flags"></a>Command Options</h2></div></div></div><p>
|
||||||
If you only built a static library (libstdc++.a), or if you
|
The set of features available in the GNU C++ library is shaped
|
||||||
specified static linking, you don't have to worry about this.
|
by
|
||||||
But if you built a shared library (libstdc++.so) and linked
|
several <a class="ulink" href="http://gcc.gnu.org/onlinedocs/gcc-4.3.2//gcc/Invoking-GCC.html" target="_top">GCC
|
||||||
against it, then you will need to find that library when you run
|
Command Options</a>. Options that impact libstdc++ are
|
||||||
the executable.
|
enumerated and detailed in the table below.
|
||||||
</p><p>
|
</p><p>
|
||||||
Methods vary for different platforms and different styles, but
|
By default, <span class="command"><strong>g++</strong></span> is equivalent to <span class="command"><strong>g++ -std=gnu++98</strong></span>. The standard library also defaults to this dialect.
|
||||||
the usual ones are printed to the screen during installation.
|
</p><div class="table"><a id="id619494"></a><p class="title"><b>Table 3.1. C++ Command Options</b></p><div class="table-contents"><table summary="C++ Command Options" border="1"><colgroup><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left">Option Flags</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left"><code class="literal">-std=c++98</code></td><td align="left">Use the 1998 ISO C++ standard plus amendments.</td></tr><tr><td align="left"><code class="literal">-std=gnu++98</code></td><td align="left">As directly above, with GNU extensions.</td></tr><tr><td align="left"><code class="literal">-std=c++0x</code></td><td align="left">Use the working draft of the upcoming ISO C++0x standard.</td></tr><tr><td align="left"><code class="literal">-std=gnu++0x</code></td><td align="left">As directly above, with GNU extensions.</td></tr><tr><td align="left"><code class="literal">-fexceptions</code></td><td align="left">See <a class="link" href="using_exceptions.html#intro.using.exception.no" title="Doing without">exception-free dialect</a></td></tr><tr><td align="left"><code class="literal">-frtti</code></td><td align="left">As above, but RTTI-free dialect.</td></tr><tr><td align="left"><code class="literal">-pthread</code> or <code class="literal">-pthreads</code></td><td align="left">For ISO C++0x <thread>, <future>,
|
||||||
They include:
|
<mutex>, or <condition_variable>.</td></tr><tr><td align="left"><code class="literal">-fopenmp</code></td><td align="left">For <a class="link" href="parallel_mode.html" title="Chapter 31. Parallel Mode">parallel</a> mode.</td></tr></tbody></table></div></div><br class="table-break" /></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="make.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="intro.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_headers.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Make </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Headers</td></tr></table></div></body></html>
|
||||||
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
|
|
||||||
At runtime set LD_LIBRARY_PATH in your environment
|
|
||||||
correctly, so that the shared library for libstdc++ can be
|
|
||||||
found and loaded. Be certain that you understand all of the
|
|
||||||
other implications and behavior of LD_LIBRARY_PATH first
|
|
||||||
(few people do, and they get into trouble).
|
|
||||||
</p></li><li class="listitem"><p>
|
|
||||||
Compile the path to find the library at runtime into the
|
|
||||||
program. This can be done by passing certain options to
|
|
||||||
g++, which will in turn pass them on to the linker. The
|
|
||||||
exact format of the options is dependent on which linker you
|
|
||||||
use:
|
|
||||||
</p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p>
|
|
||||||
GNU ld (default on Linux):<code class="literal">-Wl,--rpath,<code class="filename">destdir</code>/lib</code>
|
|
||||||
</p></li><li class="listitem"><p>
|
|
||||||
IRIX ld:<code class="literal">
|
|
||||||
-Wl,-rpath,<code class="filename">destdir</code>/lib</code>
|
|
||||||
</p></li><li class="listitem"><p>
|
|
||||||
Solaris ld:<code class="literal">-Wl,-R<code class="filename">destdir</code>/lib</code>
|
|
||||||
</p></li><li class="listitem"><p>
|
|
||||||
More...? Let us know!
|
|
||||||
</p></li></ul></div></li></ul></div><p>
|
|
||||||
Use the <span class="command"><strong>ldd</strong></span> utility to show which library the
|
|
||||||
system thinks it will get at runtime.
|
|
||||||
</p><p>
|
|
||||||
A libstdc++.la file is also installed, for use with Libtool. If
|
|
||||||
you use Libtool to create your executables, these details are
|
|
||||||
taken care of for you.
|
|
||||||
</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="make.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="intro.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_headers.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Make </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Headers</td></tr></table></div></body></html>
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?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">
|
<!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>Concurrency</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="home" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using_macros.html" title="Macros" /><link rel="next" href="using_exceptions.html" title="Exceptions" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Concurrency</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using_macros.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="using_exceptions.html">Next</a></td></tr></table><hr /></div><div class="sect1" title="Concurrency"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.concurrency"></a>Concurrency</h2></div></div></div><p>This section discusses issues surrounding the proper compilation
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Concurrency</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="home" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using_dynamic_or_shared.html" title="Linking" /><link rel="next" href="using_exceptions.html" title="Exceptions" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Concurrency</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using_dynamic_or_shared.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="using_exceptions.html">Next</a></td></tr></table><hr /></div><div class="sect1" title="Concurrency"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.concurrency"></a>Concurrency</h2></div></div></div><p>This section discusses issues surrounding the proper compilation
|
||||||
of multithreaded applications which use the Standard C++
|
of multithreaded applications which use the Standard C++
|
||||||
library. This information is GCC-specific since the C++
|
library. This information is GCC-specific since the C++
|
||||||
standard does not address matters of multithreaded applications.
|
standard does not address matters of multithreaded applications.
|
||||||
|
|
@ -36,7 +36,7 @@
|
||||||
</p></div><div class="sect2" title="Thread Safety"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.concurrency.thread_safety"></a>Thread Safety</h3></div></div></div><p>
|
</p></div><div class="sect2" title="Thread Safety"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.concurrency.thread_safety"></a>Thread Safety</h3></div></div></div><p>
|
||||||
We currently use the <a class="ulink" href="http://www.sgi.com/tech/stl/thread_safety.html" target="_top">SGI STL</a> definition of thread safety.
|
We currently use the <a class="ulink" href="http://www.sgi.com/tech/stl/thread_safety.html" target="_top">SGI STL</a> definition of thread safety.
|
||||||
</p><p>The library strives to be thread-safe when all of the following
|
</p><p>The library strives to be thread-safe when all of the following
|
||||||
conditions are met:
|
conditions are met:
|
||||||
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>The system's libc is itself thread-safe,
|
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>The system's libc is itself thread-safe,
|
||||||
</p></li><li class="listitem"><p>
|
</p></li><li class="listitem"><p>
|
||||||
The compiler in use reports a thread model other than
|
The compiler in use reports a thread model other than
|
||||||
|
|
@ -57,13 +57,13 @@ gcc version 4.1.2 20070925 (Red Hat 4.1.2-33)
|
||||||
Dependent Options</a>.
|
Dependent Options</a>.
|
||||||
</p></li><li class="listitem"><p>
|
</p></li><li class="listitem"><p>
|
||||||
An implementation of atomicity.h functions
|
An implementation of atomicity.h functions
|
||||||
exists for the architecture in question. See the internals documentation for more <a class="link" href="internals.html#internals.thread_safety" title="Thread Safety">details</a>.
|
exists for the architecture in question. See the internals documentation for more <a class="link" href="internals.html#internals.thread_safety" title="Thread Safety">details</a>.
|
||||||
</p></li></ul></div><p>The user-code must guard against concurrent method calls which may
|
</p></li></ul></div><p>The user-code must guard against concurrent method calls which may
|
||||||
access any particular library object's state. Typically, the
|
access any particular library object's state. Typically, the
|
||||||
application programmer may infer what object locks must be held
|
application programmer may infer what object locks must be held
|
||||||
based on the objects referenced in a method call. Without getting
|
based on the objects referenced in a method call. Without getting
|
||||||
into great detail, here is an example which requires user-level
|
into great detail, here is an example which requires user-level
|
||||||
locks:
|
locks:
|
||||||
</p><pre class="programlisting">
|
</p><pre class="programlisting">
|
||||||
library_class_a shared_object_a;
|
library_class_a shared_object_a;
|
||||||
|
|
||||||
|
|
@ -74,8 +74,8 @@ gcc version 4.1.2 20070925 (Red Hat 4.1.2-33)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Multiple copies of thread_main() are started in independent threads.</pre><p>Under the assumption that object_a and object_b are never exposed to
|
// Multiple copies of thread_main() are started in independent threads.</pre><p>Under the assumption that object_a and object_b are never exposed to
|
||||||
another thread, here is an example that should not require any
|
another thread, here is an example that should not require any
|
||||||
user-level locks:
|
user-level locks:
|
||||||
</p><pre class="programlisting">
|
</p><pre class="programlisting">
|
||||||
thread_main () {
|
thread_main () {
|
||||||
library_class_a object_a;
|
library_class_a object_a;
|
||||||
|
|
@ -83,12 +83,12 @@ gcc version 4.1.2 20070925 (Red Hat 4.1.2-33)
|
||||||
object_a.add_b (object_b);
|
object_a.add_b (object_b);
|
||||||
object_a.mutate ();
|
object_a.mutate ();
|
||||||
} </pre><p>All library objects are safe to use in a multithreaded program as
|
} </pre><p>All library objects are safe to use in a multithreaded program as
|
||||||
long as each thread carefully locks out access by any other
|
long as each thread carefully locks out access by any other
|
||||||
thread while it uses any object visible to another thread, i.e.,
|
thread while it uses any object visible to another thread, i.e.,
|
||||||
treat library objects like any other shared resource. In general,
|
treat library objects like any other shared resource. In general,
|
||||||
this requirement includes both read and write access to objects;
|
this requirement includes both read and write access to objects;
|
||||||
unless otherwise documented as safe, do not assume that two threads
|
unless otherwise documented as safe, do not assume that two threads
|
||||||
may access a shared standard library object at the same time.
|
may access a shared standard library object at the same time.
|
||||||
</p></div><div class="sect2" title="Atomics"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.concurrency.atomics"></a>Atomics</h3></div></div></div><p>
|
</p></div><div class="sect2" title="Atomics"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.concurrency.atomics"></a>Atomics</h3></div></div></div><p>
|
||||||
</p></div><div class="sect2" title="IO"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.concurrency.io"></a>IO</h3></div></div></div><p>This gets a bit tricky. Please read carefully, and bear with me.
|
</p></div><div class="sect2" title="IO"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.concurrency.io"></a>IO</h3></div></div></div><p>This gets a bit tricky. Please read carefully, and bear with me.
|
||||||
</p><div class="sect3" title="Structure"><div class="titlepage"><div><div><h4 class="title"><a id="concurrency.io.structure"></a>Structure</h4></div></div></div><p>A wrapper
|
</p><div class="sect3" title="Structure"><div class="titlepage"><div><div><h4 class="title"><a id="concurrency.io.structure"></a>Structure</h4></div></div></div><p>A wrapper
|
||||||
|
|
@ -103,7 +103,7 @@ gcc version 4.1.2 20070925 (Red Hat 4.1.2-33)
|
||||||
the C stdio layer (again, see the link under Structure). We do no
|
the C stdio layer (again, see the link under Structure). We do no
|
||||||
locking ourselves, but simply pass through to calls to <code class="code">fopen</code>,
|
locking ourselves, but simply pass through to calls to <code class="code">fopen</code>,
|
||||||
<code class="code">fwrite</code>, and so forth.
|
<code class="code">fwrite</code>, and so forth.
|
||||||
</p><p>So, for 3.0, the question of "is multithreading safe for I/O"
|
</p><p>So, for 3.0, the question of "is multithreading safe for I/O"
|
||||||
must be answered with, "is your platform's C library threadsafe
|
must be answered with, "is your platform's C library threadsafe
|
||||||
for I/O?" Some are by default, some are not; many offer multiple
|
for I/O?" Some are by default, some are not; many offer multiple
|
||||||
implementations of the C library with varying tradeoffs of threadsafety
|
implementations of the C library with varying tradeoffs of threadsafety
|
||||||
|
|
@ -180,7 +180,7 @@ gcc version 4.1.2 20070925 (Red Hat 4.1.2-33)
|
||||||
code, we use the same definition of thread safety as SGI when
|
code, we use the same definition of thread safety as SGI when
|
||||||
discussing design. A key point that beginners may miss is the
|
discussing design. A key point that beginners may miss is the
|
||||||
fourth major paragraph of the first page mentioned above
|
fourth major paragraph of the first page mentioned above
|
||||||
("For most clients,"...), which points out that
|
(<span class="emphasis"><em>For most clients...</em></span>), which points out that
|
||||||
locking must nearly always be done outside the container, by
|
locking must nearly always be done outside the container, by
|
||||||
client code (that'd be you, not us). There is a notable
|
client code (that'd be you, not us). There is a notable
|
||||||
exceptions to this rule. Allocators called while a container or
|
exceptions to this rule. Allocators called while a container or
|
||||||
|
|
@ -202,4 +202,4 @@ gcc version 4.1.2 20070925 (Red Hat 4.1.2-33)
|
||||||
useful are details
|
useful are details
|
||||||
on <a class="link" href="memory.html#manual.util.memory.allocator" title="Allocators">allocator</a>
|
on <a class="link" href="memory.html#manual.util.memory.allocator" title="Allocators">allocator</a>
|
||||||
options and capabilities.
|
options and capabilities.
|
||||||
</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using_macros.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="using.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_exceptions.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Macros </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Exceptions</td></tr></table></div></body></html>
|
</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using_dynamic_or_shared.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="using.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_exceptions.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Linking </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Exceptions</td></tr></table></div></body></html>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,95 @@
|
||||||
|
<?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>Linking</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="home" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using_namespaces.html" title="Namespaces" /><link rel="next" href="using_concurrency.html" title="Concurrency" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Linking</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using_namespaces.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="using_concurrency.html">Next</a></td></tr></table><hr /></div><div class="sect1" title="Linking"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.linkage"></a>Linking</h2></div></div></div><div class="sect2" title="Almost Nothing"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.linkage.freestanding"></a>Almost Nothing</h3></div></div></div><p>
|
||||||
|
Or as close as it gets: freestanding. This is a minimal
|
||||||
|
configuration, with only partial support for the standard
|
||||||
|
library. Assume only the following header files can be used:
|
||||||
|
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
|
||||||
|
<code class="filename">cstdarg</code>
|
||||||
|
</p></li><li class="listitem"><p>
|
||||||
|
<code class="filename">cstddef</code>
|
||||||
|
</p></li><li class="listitem"><p>
|
||||||
|
<code class="filename">cstdlib</code>
|
||||||
|
</p></li><li class="listitem"><p>
|
||||||
|
<code class="filename">exception</code>
|
||||||
|
</p></li><li class="listitem"><p>
|
||||||
|
<code class="filename">limits</code>
|
||||||
|
</p></li><li class="listitem"><p>
|
||||||
|
<code class="filename">new</code>
|
||||||
|
</p></li><li class="listitem"><p>
|
||||||
|
<code class="filename">exception</code>
|
||||||
|
</p></li><li class="listitem"><p>
|
||||||
|
<code class="filename">typeinfo</code>
|
||||||
|
</p></li></ul></div><p>
|
||||||
|
In addition, throw in
|
||||||
|
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
|
||||||
|
<code class="filename">cxxabi.h</code>.
|
||||||
|
</p></li></ul></div><p>
|
||||||
|
In the
|
||||||
|
C++0x <a class="link" href="using.html#manual.intro.using.flags" title="Command Options">dialect</a> add
|
||||||
|
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
|
||||||
|
<code class="filename">initializer_list</code>
|
||||||
|
</p></li><li class="listitem"><p>
|
||||||
|
<code class="filename">type_traits</code>
|
||||||
|
</p></li></ul></div><p> There exists a library that offers runtime support for
|
||||||
|
just these headers, and it is called
|
||||||
|
<code class="filename">libsupc++.a</code>. To use it, compile with <span class="command"><strong>gcc</strong></span> instead of <span class="command"><strong>g++</strong></span>, like so:
|
||||||
|
</p><p>
|
||||||
|
<span class="command"><strong>gcc foo.cc -lsupc++</strong></span>
|
||||||
|
</p><p>
|
||||||
|
No attempt is made to verify that only the minimal subset
|
||||||
|
identified above is actually used at compile time. Violations
|
||||||
|
are diagnosed as undefined symbols at link time.
|
||||||
|
</p></div><div class="sect2" title="Finding Dynamic or Shared Libraries"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.linkage.dynamic"></a>Finding Dynamic or Shared Libraries</h3></div></div></div><p>
|
||||||
|
If the only library built is the static library
|
||||||
|
(<code class="filename">libstdc++.a</code>), or if
|
||||||
|
specifying static linking, this section is can be skipped. But
|
||||||
|
if building or using a shared library
|
||||||
|
(<code class="filename">libstdc++.so</code>), then
|
||||||
|
additional location information will need to be provided.
|
||||||
|
</p><p>
|
||||||
|
But how?
|
||||||
|
</p><p>
|
||||||
|
A quick read of the relevant part of the GCC
|
||||||
|
manual, <a class="ulink" href="http://gcc.gnu.org/onlinedocs/gcc/Invoking-G_002b_002b.html#Invoking-G_002b_002b" target="_top">Compiling
|
||||||
|
C++ Programs</a>, specifies linking against a C++
|
||||||
|
library. More details from the
|
||||||
|
GCC <a class="ulink" href="http://gcc.gnu.org/faq.html#rpath" target="_top">FAQ</a>,
|
||||||
|
which states <span class="emphasis"><em>GCC does not, by default, specify a
|
||||||
|
location so that the dynamic linker can find dynamic libraries at
|
||||||
|
runtime.</em></span>
|
||||||
|
</p><p>
|
||||||
|
Users will have to provide this information.
|
||||||
|
</p><p>
|
||||||
|
Methods vary for different platforms and different styles, and
|
||||||
|
are printed to the screen during installation. To summarize:
|
||||||
|
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
|
||||||
|
At runtime set <code class="literal">LD_LIBRARY_PATH</code> in your
|
||||||
|
environment correctly, so that the shared library for
|
||||||
|
libstdc++ can be found and loaded. Be certain that you
|
||||||
|
understand all of the other implications and behavior
|
||||||
|
of <code class="literal">LD_LIBRARY_PATH</code> first.
|
||||||
|
</p></li><li class="listitem"><p>
|
||||||
|
Compile the path to find the library at runtime into the
|
||||||
|
program. This can be done by passing certain options to
|
||||||
|
<span class="command"><strong>g++</strong></span>, which will in turn pass them on to
|
||||||
|
the linker. The exact format of the options is dependent on
|
||||||
|
which linker you use:
|
||||||
|
</p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p>
|
||||||
|
GNU ld (default on Linux):<code class="literal">-Wl,--rpath,<code class="filename">destdir</code>/lib</code>
|
||||||
|
</p></li><li class="listitem"><p>
|
||||||
|
IRIX ld:<code class="literal">
|
||||||
|
-Wl,-rpath,<code class="filename">destdir</code>/lib</code>
|
||||||
|
</p></li><li class="listitem"><p>
|
||||||
|
Solaris ld:<code class="literal">-Wl,-R<code class="filename">destdir</code>/lib</code>
|
||||||
|
</p></li></ul></div></li></ul></div><p>
|
||||||
|
Use the <span class="command"><strong>ldd</strong></span> utility on the linked executable
|
||||||
|
to show
|
||||||
|
which <code class="filename">libstdc++.so</code>
|
||||||
|
library the system will get at runtime.
|
||||||
|
</p><p>
|
||||||
|
A <code class="filename">libstdc++.la</code> file is
|
||||||
|
also installed, for use with Libtool. If you use Libtool to
|
||||||
|
create your executables, these details are taken care of for
|
||||||
|
you.
|
||||||
|
</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using_namespaces.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="using.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_concurrency.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Namespaces </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Concurrency</td></tr></table></div></body></html>
|
||||||
|
|
@ -266,7 +266,7 @@ is called.
|
||||||
}
|
}
|
||||||
catch(...)
|
catch(...)
|
||||||
{ this->_M_setstate(ios_base::badbit); }
|
{ this->_M_setstate(ios_base::badbit); }
|
||||||
</pre></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="using.exceptions.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry" title="System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)"><a id="id584984"></a><p><span class="title"><i>
|
</pre></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="using.exceptions.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry" title="System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)"><a id="id612927"></a><p><span class="title"><i>
|
||||||
System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
|
System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
|
||||||
</i>. </span><span class="pagenums">
|
</i>. </span><span class="pagenums">
|
||||||
2.9.5 Thread Cancellation
|
2.9.5 Thread Cancellation
|
||||||
|
|
@ -274,44 +274,44 @@ is called.
|
||||||
The Open Group/The Institute of Electrical and Electronics Engineers, Inc.. </span><span class="biblioid">
|
The Open Group/The Institute of Electrical and Electronics Engineers, Inc.. </span><span class="biblioid">
|
||||||
<a class="ulink" href="http://www.opengroup.org/austin/" target="_top">
|
<a class="ulink" href="http://www.opengroup.org/austin/" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="Error and Exception Handling"><a id="id547678"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry" title="Error and Exception Handling"><a id="id692579"></a><p><span class="title"><i>
|
||||||
Error and Exception Handling
|
Error and Exception Handling
|
||||||
</i>. </span><span class="author"><span class="firstname">David</span> <span class="surname">Abrahams </span>. </span><span class="publisher"><span class="publishername">
|
</i>. </span><span class="author"><span class="firstname">David</span> <span class="surname">Abrahams </span>. </span><span class="publisher"><span class="publishername">
|
||||||
Boost
|
Boost
|
||||||
. </span></span><span class="biblioid">
|
. </span></span><span class="biblioid">
|
||||||
<a class="ulink" href="http://www.boost.org/community/error_handling.html" target="_top">
|
<a class="ulink" href="http://www.boost.org/community/error_handling.html" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="Exception-Safety in Generic Components"><a id="id590445"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry" title="Exception-Safety in Generic Components"><a id="id622989"></a><p><span class="title"><i>
|
||||||
Exception-Safety in Generic Components
|
Exception-Safety in Generic Components
|
||||||
</i>. </span><span class="author"><span class="firstname">David</span> <span class="surname">Abrahams</span>. </span><span class="publisher"><span class="publishername">
|
</i>. </span><span class="author"><span class="firstname">David</span> <span class="surname">Abrahams</span>. </span><span class="publisher"><span class="publishername">
|
||||||
Boost
|
Boost
|
||||||
. </span></span><span class="biblioid">
|
. </span></span><span class="biblioid">
|
||||||
<a class="ulink" href="http://www.boost.org/community/exception_safety.html" target="_top">
|
<a class="ulink" href="http://www.boost.org/community/exception_safety.html" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="Standard Library Exception Policy"><a id="id526148"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry" title="Standard Library Exception Policy"><a id="id614001"></a><p><span class="title"><i>
|
||||||
Standard Library Exception Policy
|
Standard Library Exception Policy
|
||||||
</i>. </span><span class="author"><span class="firstname">Matt</span> <span class="surname">Austern</span>. </span><span class="publisher"><span class="publishername">
|
</i>. </span><span class="author"><span class="firstname">Matt</span> <span class="surname">Austern</span>. </span><span class="publisher"><span class="publishername">
|
||||||
WG21 N1077
|
WG21 N1077
|
||||||
. </span></span><span class="biblioid">
|
. </span></span><span class="biblioid">
|
||||||
<a class="ulink" href="www.open-std.org/jtc1/sc22/wg21/docs/papers/1997/N1077.pdf" target="_top">
|
<a class="ulink" href="www.open-std.org/jtc1/sc22/wg21/docs/papers/1997/N1077.pdf" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="ia64 c++ abi exception handling"><a id="id586475"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry" title="ia64 c++ abi exception handling"><a id="id599408"></a><p><span class="title"><i>
|
||||||
ia64 c++ abi exception handling
|
ia64 c++ abi exception handling
|
||||||
</i>. </span><span class="author"><span class="firstname">Richard</span> <span class="surname">Henderson</span>. </span><span class="publisher"><span class="publishername">
|
</i>. </span><span class="author"><span class="firstname">Richard</span> <span class="surname">Henderson</span>. </span><span class="publisher"><span class="publishername">
|
||||||
GNU
|
GNU
|
||||||
. </span></span><span class="biblioid">
|
. </span></span><span class="biblioid">
|
||||||
<a class="ulink" href="http://gcc.gnu.org/ml/gcc-patches/2001-03/msg00661.html" target="_top">
|
<a class="ulink" href="http://gcc.gnu.org/ml/gcc-patches/2001-03/msg00661.html" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="Appendix E: Standard-Library Exception Safety"><a id="id561686"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry" title="Appendix E: Standard-Library Exception Safety"><a id="id657794"></a><p><span class="title"><i>
|
||||||
Appendix E: Standard-Library Exception Safety
|
Appendix E: Standard-Library Exception Safety
|
||||||
</i>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="biblioid">
|
</i>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="biblioid">
|
||||||
<a class="ulink" href="http://www.research.att.com/~bs/3rd_safe.pdf" target="_top">
|
<a class="ulink" href="http://www.research.att.com/~bs/3rd_safe.pdf" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry" title="Exceptional C++"><a id="id552595"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry" title="Exceptional C++"><a id="id635762"></a><p><span class="title"><i>
|
||||||
Exceptional C++
|
Exceptional C++
|
||||||
</i>. </span><span class="pagenums">
|
</i>. </span><span class="pagenums">
|
||||||
Exception-Safety Issues and Techniques
|
Exception-Safety Issues and Techniques
|
||||||
. </span><span class="author"><span class="firstname">Herb</span> <span class="surname">Sutter</span>. </span></p></div><div class="biblioentry" title="exception_defines.h #defines try/catch"><a id="id552618"></a><p><span class="title"><i>
|
. </span><span class="author"><span class="firstname">Herb</span> <span class="surname">Sutter</span>. </span></p></div><div class="biblioentry" title="exception_defines.h #defines try/catch"><a id="id604495"></a><p><span class="title"><i>
|
||||||
exception_defines.h #defines try/catch
|
exception_defines.h #defines try/catch
|
||||||
</i>. </span><span class="subtitle">
|
</i>. </span><span class="subtitle">
|
||||||
GCC Bug <a class="ulink" href="http://gcc.gnu.org/PR25191" target="_top">25191</a>
|
GCC Bug <a class="ulink" href="http://gcc.gnu.org/PR25191" target="_top">25191</a>
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1,16 +1,22 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?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">
|
<!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>Macros</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="home" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using_namespaces.html" title="Namespaces" /><link rel="next" href="using_concurrency.html" title="Concurrency" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Macros</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using_namespaces.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="using_concurrency.html">Next</a></td></tr></table><hr /></div><div class="sect1" title="Macros"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.macros"></a>Macros</h2></div></div></div><p>All pre-processor switches and configurations are all gathered
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Macros</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="home" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using_headers.html" title="Headers" /><link rel="next" href="using_namespaces.html" title="Namespaces" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Macros</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using_headers.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="using_namespaces.html">Next</a></td></tr></table><hr /></div><div class="sect1" title="Macros"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.macros"></a>Macros</h2></div></div></div><p>
|
||||||
in the file <code class="code">c++config.h</code>, which is generated during
|
All library macros begin with <code class="code">_GLIBCXX_</code>.
|
||||||
the libstdc++ configuration and build process, and included by
|
</p><p>
|
||||||
files part of the public libstdc++ API. Most of these macros
|
Furthermore, all pre-processor macros, switches, and
|
||||||
|
configuration options are gathered in the
|
||||||
|
file <code class="filename">c++config.h</code>, which
|
||||||
|
is generated during the libstdc++ configuration and build
|
||||||
|
process. This file is then included when needed by files part of
|
||||||
|
the public libstdc++ API, like <ios>. Most of these macros
|
||||||
should not be used by consumers of libstdc++, and are reserved
|
should not be used by consumers of libstdc++, and are reserved
|
||||||
for internal implementation use. <span class="emphasis"><em>These macros cannot be
|
for internal implementation use. <span class="emphasis"><em>These macros cannot
|
||||||
redefined</em></span>. However, a select handful of these macro
|
be redefined</em></span>.
|
||||||
control libstdc++ extensions and extra features, or provide
|
</p><p>
|
||||||
versioning information for the API, and are able to be used.
|
A select handful of macros control libstdc++ extensions and extra
|
||||||
</p><p>All library macros begin with <code class="code">_GLIBCXX_</code> (except for
|
features, or provide versioning information for the API. Only
|
||||||
versions 3.1.x to 3.3.x, which use <code class="code">_GLIBCPP_</code>).
|
those macros listed below are offered for consideration by the
|
||||||
|
general public.
|
||||||
</p><p>Below is the macro which users may check for library version
|
</p><p>Below is the macro which users may check for library version
|
||||||
information. </p><div class="variablelist"><dl><dt><span class="term"><code class="code">__GLIBCXX__</code></span></dt><dd><p>The current version of
|
information. </p><div class="variablelist"><dl><dt><span class="term"><code class="code">__GLIBCXX__</code></span></dt><dd><p>The current version of
|
||||||
libstdc++ in compressed ISO date format, form of an unsigned
|
libstdc++ in compressed ISO date format, form of an unsigned
|
||||||
|
|
@ -36,13 +42,13 @@
|
||||||
building/installing the library.
|
building/installing the library.
|
||||||
</p><div class="variablelist"><dl><dt><span class="term"><code class="code">_GLIBCXX_DEPRECATED</code></span></dt><dd><p>
|
</p><div class="variablelist"><dl><dt><span class="term"><code class="code">_GLIBCXX_DEPRECATED</code></span></dt><dd><p>
|
||||||
Defined by default. Not configurable. ABI-changing. Turning this off
|
Defined by default. Not configurable. ABI-changing. Turning this off
|
||||||
removes older ARM-style iostreams code, and other anachronisms
|
removes older ARM-style iostreams code, and other anachronisms
|
||||||
from the API. This macro is dependent on the version of the
|
from the API. This macro is dependent on the version of the
|
||||||
standard being tracked, and as a result may give different results for
|
standard being tracked, and as a result may give different results for
|
||||||
<code class="code">-std=c++98</code> and <code class="code">-std=c++0x</code>. This may
|
<code class="code">-std=c++98</code> and <code class="code">-std=c++0x</code>. This may
|
||||||
be useful in updating old C++ code which no longer meet the
|
be useful in updating old C++ code which no longer meet the
|
||||||
requirements of the language, or for checking current code
|
requirements of the language, or for checking current code
|
||||||
against new language standards.
|
against new language standards.
|
||||||
</p></dd><dt><span class="term"><code class="code">_GLIBCXX_FORCE_NEW</code></span></dt><dd><p>
|
</p></dd><dt><span class="term"><code class="code">_GLIBCXX_FORCE_NEW</code></span></dt><dd><p>
|
||||||
Undefined by default. When defined, memory allocation and
|
Undefined by default. When defined, memory allocation and
|
||||||
allocators controlled by libstdc++ call operator new/delete
|
allocators controlled by libstdc++ call operator new/delete
|
||||||
|
|
@ -65,4 +71,7 @@
|
||||||
</p></dd><dt><span class="term"><code class="code">_GLIBCXX_PARALLEL</code></span></dt><dd><p>Undefined by default. When defined, compiles user code
|
</p></dd><dt><span class="term"><code class="code">_GLIBCXX_PARALLEL</code></span></dt><dd><p>Undefined by default. When defined, compiles user code
|
||||||
using the <a class="link" href="parallel_mode.html" title="Chapter 31. Parallel Mode">parallel
|
using the <a class="link" href="parallel_mode.html" title="Chapter 31. Parallel Mode">parallel
|
||||||
mode</a>.
|
mode</a>.
|
||||||
</p></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using_namespaces.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="using.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_concurrency.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Namespaces </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Concurrency</td></tr></table></div></body></html>
|
</p></dd><dt><span class="term"><code class="code">_GLIBCXX_PROFILE</code></span></dt><dd><p>Undefined by default. When defined, compiles user code
|
||||||
|
using the <a class="link" href="profile_mode.html" title="Chapter 32. Profile Mode">profile
|
||||||
|
mode</a>.
|
||||||
|
</p></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using_headers.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="using.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_namespaces.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Headers </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Namespaces</td></tr></table></div></body></html>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?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">
|
<!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>Namespaces</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="home" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using_headers.html" title="Headers" /><link rel="next" href="using_macros.html" title="Macros" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Namespaces</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using_headers.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="using_macros.html">Next</a></td></tr></table><hr /></div><div class="sect1" title="Namespaces"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.namespaces"></a>Namespaces</h2></div></div></div><div class="sect2" title="Available Namespaces"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.namespaces.all"></a>Available Namespaces</h3></div></div></div><p> There are three main namespaces.
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Namespaces</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="home" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using_macros.html" title="Macros" /><link rel="next" href="using_dynamic_or_shared.html" title="Linking" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Namespaces</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using_macros.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="using_dynamic_or_shared.html">Next</a></td></tr></table><hr /></div><div class="sect1" title="Namespaces"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.namespaces"></a>Namespaces</h2></div></div></div><div class="sect2" title="Available Namespaces"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.namespaces.all"></a>Available Namespaces</h3></div></div></div><p> There are three main namespaces.
|
||||||
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>std</p><p>The ISO C++ standards specify that "all library entities are defined
|
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>std</p><p>The ISO C++ standards specify that "all library entities are defined
|
||||||
within namespace std." This includes namespaces nested
|
within namespace std." This includes namespaces nested
|
||||||
within <code class="code">namespace std</code>, such as <code class="code">namespace
|
within <code class="code">namespace std</code>, such as <code class="code">namespace
|
||||||
|
|
@ -11,7 +11,7 @@ but necessary for interoperability.
|
||||||
</p></li><li class="listitem"><p>__gnu_</p><p>Indicating one of several GNU extensions. Choices
|
</p></li><li class="listitem"><p>__gnu_</p><p>Indicating one of several GNU extensions. Choices
|
||||||
include <code class="code">__gnu_cxx</code>, <code class="code">__gnu_debug</code>, <code class="code">__gnu_parallel</code>,
|
include <code class="code">__gnu_cxx</code>, <code class="code">__gnu_debug</code>, <code class="code">__gnu_parallel</code>,
|
||||||
and <code class="code">__gnu_pbds</code>.
|
and <code class="code">__gnu_pbds</code>.
|
||||||
</p></li></ul></div><p> A complete list of implementation namespaces (including namespace contents) is available in the generated source <a class="ulink" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/namespaces.html" target="_top">documentation</a>.
|
</p></li></ul></div><p> A complete list of implementation namespaces (including namespace contents) is available in the generated source <a class="ulink" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/namespaces.html" target="_top">documentation</a>.
|
||||||
</p></div><div class="sect2" title="namespace std"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.namespaces.std"></a>namespace std</h3></div></div></div><p>
|
</p></div><div class="sect2" title="namespace std"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.namespaces.std"></a>namespace std</h3></div></div></div><p>
|
||||||
One standard requirement is that the library components are defined
|
One standard requirement is that the library components are defined
|
||||||
in <code class="code">namespace std::</code>. Thus, in order to use these types or
|
in <code class="code">namespace std::</code>. Thus, in order to use these types or
|
||||||
|
|
@ -21,7 +21,7 @@ and <code class="code">__gnu_pbds</code>.
|
||||||
std::string;</code>) This approach works well for individual source files, but
|
std::string;</code>) This approach works well for individual source files, but
|
||||||
should not be used in a global context, like header files.
|
should not be used in a global context, like header files.
|
||||||
</p></li><li class="listitem"><p>use a <span class="emphasis"><em>fully
|
</p></li><li class="listitem"><p>use a <span class="emphasis"><em>fully
|
||||||
qualified name</em></span>for each library symbol
|
qualified name</em></span> for each library symbol
|
||||||
(i.e. <code class="code">std::string</code>, <code class="code">std::cout</code>) Always can be
|
(i.e. <code class="code">std::string</code>, <code class="code">std::cout</code>) Always can be
|
||||||
used, and usually enhanced, by strategic use of typedefs. (In the
|
used, and usually enhanced, by strategic use of typedefs. (In the
|
||||||
cases where the qualified verbiage becomes unwieldy.)
|
cases where the qualified verbiage becomes unwieldy.)
|
||||||
|
|
@ -39,7 +39,7 @@ naming prefixes or macros, etc.
|
||||||
namespace-definition: the imported symbol(s) gets imported into the
|
namespace-definition: the imported symbol(s) gets imported into the
|
||||||
currently active namespace(s). For example:
|
currently active namespace(s). For example:
|
||||||
</p><pre class="programlisting">
|
</p><pre class="programlisting">
|
||||||
namespace gtk
|
namespace gtk
|
||||||
{
|
{
|
||||||
using std::string;
|
using std::string;
|
||||||
using std::tr1::array;
|
using std::tr1::array;
|
||||||
|
|
@ -49,8 +49,8 @@ namespace gtk
|
||||||
</pre><p>
|
</pre><p>
|
||||||
In this example, <code class="code">std::string</code> gets imported into
|
In this example, <code class="code">std::string</code> gets imported into
|
||||||
<code class="code">namespace gtk</code>. The result is that use of
|
<code class="code">namespace gtk</code>. The result is that use of
|
||||||
<code class="code">std::string</code> inside namespace gtk can just use <code class="code">string</code>, without the explicit qualification.
|
<code class="code">std::string</code> inside namespace gtk can just use <code class="code">string</code>, without the explicit qualification.
|
||||||
As an added bonus,
|
As an added bonus,
|
||||||
<code class="code">std::string</code> does not get imported into
|
<code class="code">std::string</code> does not get imported into
|
||||||
the global namespace. Additionally, a more elaborate arrangement can be made for backwards compatibility and portability, whereby the
|
the global namespace. Additionally, a more elaborate arrangement can be made for backwards compatibility and portability, whereby the
|
||||||
<code class="code">using</code>-declarations can wrapped in macros that
|
<code class="code">using</code>-declarations can wrapped in macros that
|
||||||
|
|
@ -58,4 +58,4 @@ namespace gtk
|
||||||
std::string;</code> (depending on whether the system has
|
std::string;</code> (depending on whether the system has
|
||||||
libstdc++ in <code class="code">std::</code> or not). (ideas from
|
libstdc++ in <code class="code">std::</code> or not). (ideas from
|
||||||
Llewelly and Karl Nelson)
|
Llewelly and Karl Nelson)
|
||||||
</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using_headers.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="using.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_macros.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Headers </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Macros</td></tr></table></div></body></html>
|
</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using_macros.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="using.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_dynamic_or_shared.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Macros </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Linking</td></tr></table></div></body></html>
|
||||||
|
|
|
||||||
|
|
@ -5,5 +5,5 @@
|
||||||
|
|
||||||
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt03ch07s02.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="functors.html">Next</a></td></tr></table><hr /></div><div class="part" title="Part IV. Utilities"><div class="titlepage"><div><div><h1 class="title"><a id="manual.util"></a>Part IV.
|
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt03ch07s02.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="functors.html">Next</a></td></tr></table><hr /></div><div class="part" title="Part IV. Utilities"><div class="titlepage"><div><div><h1 class="title"><a id="manual.util"></a>Part IV.
|
||||||
Utilities
|
Utilities
|
||||||
<a id="id587733" class="indexterm"></a>
|
<a id="id596936" class="indexterm"></a>
|
||||||
</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="functors.html">9. Functors</a></span></dt><dt><span class="chapter"><a href="pairs.html">10. Pairs</a></span></dt><dt><span class="chapter"><a href="memory.html">11. Memory</a></span></dt><dd><dl><dt><span class="sect1"><a href="memory.html#manual.util.memory.allocator">Allocators</a></span></dt><dd><dl><dt><span class="sect2"><a href="memory.html#allocator.req">Requirements</a></span></dt><dt><span class="sect2"><a href="memory.html#allocator.design_issues">Design Issues</a></span></dt><dt><span class="sect2"><a href="memory.html#allocator.impl">Implementation</a></span></dt><dt><span class="sect2"><a href="memory.html#allocator.using">Using a Specific Allocator</a></span></dt><dt><span class="sect2"><a href="memory.html#allocator.custom">Custom Allocators</a></span></dt><dt><span class="sect2"><a href="memory.html#allocator.ext">Extension Allocators</a></span></dt></dl></dd><dt><span class="sect1"><a href="auto_ptr.html">auto_ptr</a></span></dt><dd><dl><dt><span class="sect2"><a href="auto_ptr.html#auto_ptr.limitations">Limitations</a></span></dt><dt><span class="sect2"><a href="auto_ptr.html#auto_ptr.using">Use in Containers</a></span></dt></dl></dd><dt><span class="sect1"><a href="shared_ptr.html">shared_ptr</a></span></dt><dd><dl><dt><span class="sect2"><a href="shared_ptr.html#shared_ptr.req">Requirements</a></span></dt><dt><span class="sect2"><a href="shared_ptr.html#shared_ptr.design_issues">Design Issues</a></span></dt><dt><span class="sect2"><a href="shared_ptr.html#shared_ptr.impl">Implementation</a></span></dt><dt><span class="sect2"><a href="shared_ptr.html#shared_ptr.using">Use</a></span></dt><dt><span class="sect2"><a href="shared_ptr.html#shared_ptr.ack">Acknowledgments</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="traits.html">12. Traits</a></span></dt></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt03ch07s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="spine.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="functors.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Adding Data to Exceptions </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 9. Functors</td></tr></table></div></body></html>
|
</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="functors.html">9. Functors</a></span></dt><dt><span class="chapter"><a href="pairs.html">10. Pairs</a></span></dt><dt><span class="chapter"><a href="memory.html">11. Memory</a></span></dt><dd><dl><dt><span class="sect1"><a href="memory.html#manual.util.memory.allocator">Allocators</a></span></dt><dd><dl><dt><span class="sect2"><a href="memory.html#allocator.req">Requirements</a></span></dt><dt><span class="sect2"><a href="memory.html#allocator.design_issues">Design Issues</a></span></dt><dt><span class="sect2"><a href="memory.html#allocator.impl">Implementation</a></span></dt><dt><span class="sect2"><a href="memory.html#allocator.using">Using a Specific Allocator</a></span></dt><dt><span class="sect2"><a href="memory.html#allocator.custom">Custom Allocators</a></span></dt><dt><span class="sect2"><a href="memory.html#allocator.ext">Extension Allocators</a></span></dt></dl></dd><dt><span class="sect1"><a href="auto_ptr.html">auto_ptr</a></span></dt><dd><dl><dt><span class="sect2"><a href="auto_ptr.html#auto_ptr.limitations">Limitations</a></span></dt><dt><span class="sect2"><a href="auto_ptr.html#auto_ptr.using">Use in Containers</a></span></dt></dl></dd><dt><span class="sect1"><a href="shared_ptr.html">shared_ptr</a></span></dt><dd><dl><dt><span class="sect2"><a href="shared_ptr.html#shared_ptr.req">Requirements</a></span></dt><dt><span class="sect2"><a href="shared_ptr.html#shared_ptr.design_issues">Design Issues</a></span></dt><dt><span class="sect2"><a href="shared_ptr.html#shared_ptr.impl">Implementation</a></span></dt><dt><span class="sect2"><a href="shared_ptr.html#shared_ptr.using">Use</a></span></dt><dt><span class="sect2"><a href="shared_ptr.html#shared_ptr.ack">Acknowledgments</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="traits.html">12. Traits</a></span></dt></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt03ch07s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="spine.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="functors.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Adding Data to Exceptions </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 9. Functors</td></tr></table></div></body></html>
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -22,7 +22,7 @@ This status table is based on the table of contents of ISO/IEC 14882:2003.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
This page describes the C++0x support in mainline GCC SVN, not in any
|
This page describes the C++ support in mainline GCC SVN, not in any
|
||||||
particular release.
|
particular release.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,10 @@ Working Draft, Standard for Programming Language C++
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
In this implementation <literal>-std=gnu++0x</literal> or
|
In this implementation <literal>-std=gnu++0x</literal> or
|
||||||
<literal>-std=c++0x</literal> flags must be used to enable language and
|
<literal>-std=c++0x</literal> flags must be used to enable language
|
||||||
library features. The pre-defined symbol
|
and library
|
||||||
|
features. See <link linkend="manual.intro.using.flags">dialect</link>
|
||||||
|
options. The pre-defined symbol
|
||||||
<constant>__GXX_EXPERIMENTAL_CXX0X__</constant> is used to check for the
|
<constant>__GXX_EXPERIMENTAL_CXX0X__</constant> is used to check for the
|
||||||
presence of the required flag.
|
presence of the required flag.
|
||||||
</para>
|
</para>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version='1.0'?>
|
<?xml version='1.0'?>
|
||||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
|
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
|
||||||
[ ]>
|
[ ]>
|
||||||
|
|
||||||
<chapter id="manual.intro.using" xreflabel="Using">
|
<chapter id="manual.intro.using" xreflabel="Using">
|
||||||
|
|
@ -8,73 +8,80 @@
|
||||||
|
|
||||||
<title>Using</title>
|
<title>Using</title>
|
||||||
|
|
||||||
<sect1 id="manual.intro.using.lib" xreflabel="Lib">
|
|
||||||
<title>Linking Library Binary Files</title>
|
<sect1 id="manual.intro.using.flags" xreflabel="Flags">
|
||||||
|
<title>Command Options</title>
|
||||||
|
<para>
|
||||||
|
The set of features available in the GNU C++ library is shaped
|
||||||
|
by
|
||||||
|
several <ulink url="http://gcc.gnu.org/onlinedocs/gcc-4.3.2//gcc/Invoking-GCC.html">GCC
|
||||||
|
Command Options</ulink>. Options that impact libstdc++ are
|
||||||
|
enumerated and detailed in the table below.
|
||||||
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
If you only built a static library (libstdc++.a), or if you
|
By default, <command>g++</command> is equivalent to <command>g++ -std=gnu++98</command>. The standard library also defaults to this dialect.
|
||||||
specified static linking, you don't have to worry about this.
|
|
||||||
But if you built a shared library (libstdc++.so) and linked
|
|
||||||
against it, then you will need to find that library when you run
|
|
||||||
the executable.
|
|
||||||
</para>
|
</para>
|
||||||
<para>
|
|
||||||
Methods vary for different platforms and different styles, but
|
<table frame='all'>
|
||||||
the usual ones are printed to the screen during installation.
|
<title>C++ Command Options</title>
|
||||||
They include:
|
<tgroup cols='2' align='left' colsep='1' rowsep='1'>
|
||||||
</para>
|
<colspec colname='c1'></colspec>
|
||||||
<itemizedlist>
|
<colspec colname='c2'></colspec>
|
||||||
<listitem>
|
|
||||||
<para>
|
<thead>
|
||||||
At runtime set LD_LIBRARY_PATH in your environment
|
<row>
|
||||||
correctly, so that the shared library for libstdc++ can be
|
<entry>Option Flags</entry>
|
||||||
found and loaded. Be certain that you understand all of the
|
<entry>Description</entry>
|
||||||
other implications and behavior of LD_LIBRARY_PATH first
|
</row>
|
||||||
(few people do, and they get into trouble).
|
</thead>
|
||||||
</para>
|
|
||||||
</listitem>
|
<tbody>
|
||||||
<listitem>
|
<row>
|
||||||
<para>
|
<entry><literal>-std=c++98</literal></entry>
|
||||||
Compile the path to find the library at runtime into the
|
<entry>Use the 1998 ISO C++ standard plus amendments.</entry>
|
||||||
program. This can be done by passing certain options to
|
</row>
|
||||||
g++, which will in turn pass them on to the linker. The
|
|
||||||
exact format of the options is dependent on which linker you
|
<row>
|
||||||
use:
|
<entry><literal>-std=gnu++98</literal></entry>
|
||||||
</para>
|
<entry>As directly above, with GNU extensions.</entry>
|
||||||
<itemizedlist>
|
</row>
|
||||||
<listitem>
|
|
||||||
<para>
|
<row>
|
||||||
GNU ld (default on Linux):<literal>-Wl,--rpath,<filename class="directory">destdir</filename>/lib</literal>
|
<entry><literal>-std=c++0x</literal></entry>
|
||||||
</para>
|
<entry>Use the working draft of the upcoming ISO C++0x standard.</entry>
|
||||||
</listitem>
|
</row>
|
||||||
<listitem>
|
|
||||||
<para>
|
<row>
|
||||||
IRIX ld:<literal>
|
<entry><literal>-std=gnu++0x</literal></entry>
|
||||||
-Wl,-rpath,<filename class="directory">destdir</filename>/lib</literal>
|
<entry>As directly above, with GNU extensions.</entry>
|
||||||
</para>
|
</row>
|
||||||
</listitem>
|
|
||||||
<listitem>
|
<row>
|
||||||
<para>
|
<entry><literal>-fexceptions</literal></entry>
|
||||||
Solaris ld:<literal>-Wl,-R<filename class="directory">destdir</filename>/lib</literal>
|
<entry>See <link linkend="intro.using.exception.no">exception-free dialect</link></entry>
|
||||||
</para>
|
</row>
|
||||||
</listitem>
|
|
||||||
<listitem>
|
<row>
|
||||||
<para>
|
<entry><literal>-frtti</literal></entry>
|
||||||
More...? Let us know!
|
<entry>As above, but RTTI-free dialect.</entry>
|
||||||
</para>
|
</row>
|
||||||
</listitem>
|
|
||||||
</itemizedlist>
|
<row>
|
||||||
</listitem>
|
<entry><literal>-pthread</literal> or <literal>-pthreads</literal></entry>
|
||||||
</itemizedlist>
|
<entry>For ISO C++0x <thread>, <future>,
|
||||||
<para>
|
<mutex>, or <condition_variable>.</entry>
|
||||||
Use the <command>ldd</command> utility to show which library the
|
</row>
|
||||||
system thinks it will get at runtime.
|
|
||||||
</para>
|
<row>
|
||||||
<para>
|
<entry><literal>-fopenmp</literal></entry>
|
||||||
A libstdc++.la file is also installed, for use with Libtool. If
|
<entry>For <link linkend="manual.ext.parallel_mode">parallel</link> mode.</entry>
|
||||||
you use Libtool to create your executables, these details are
|
</row>
|
||||||
taken care of for you.
|
</tbody>
|
||||||
</para>
|
|
||||||
|
</tgroup>
|
||||||
|
</table>
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="manual.intro.using.headers" xreflabel="Headers">
|
<sect1 id="manual.intro.using.headers" xreflabel="Headers">
|
||||||
|
|
@ -98,7 +105,7 @@
|
||||||
That said, in practice files are used.
|
That said, in practice files are used.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
There are two main types of include files: header files related
|
There are two main types of include files: header files related
|
||||||
to a specific version of the ISO C++ standard (called Standard
|
to a specific version of the ISO C++ standard (called Standard
|
||||||
Headers), and all others (TR1, C++ ABI, and Extensions).
|
Headers), and all others (TR1, C++ ABI, and Extensions).
|
||||||
|
|
@ -731,7 +738,7 @@ thirty megabytes. </para>
|
||||||
<para>How to use the resulting file.</para>
|
<para>How to use the resulting file.</para>
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
g++ -I. -include stdc++.h -H -g -O2 hello.cc
|
g++ -I. -include stdc++.h -H -g -O2 hello.cc
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
<para>Verification that the PCH file is being used is easy:</para>
|
<para>Verification that the PCH file is being used is easy:</para>
|
||||||
|
|
@ -752,6 +759,147 @@ g++ -Winvalid-pch -I. -include stdc++.h -H -g -O2 hello.cc -o test.exe
|
||||||
</sect2>
|
</sect2>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
|
|
||||||
|
<sect1 id="manual.intro.using.macros" xreflabel="Macros">
|
||||||
|
<?dbhtml filename="using_macros.html"?>
|
||||||
|
<title>Macros</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
All library macros begin with <code>_GLIBCXX_</code>.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Furthermore, all pre-processor macros, switches, and
|
||||||
|
configuration options are gathered in the
|
||||||
|
file <filename class="headerfile">c++config.h</filename>, which
|
||||||
|
is generated during the libstdc++ configuration and build
|
||||||
|
process. This file is then included when needed by files part of
|
||||||
|
the public libstdc++ API, like <ios>. Most of these macros
|
||||||
|
should not be used by consumers of libstdc++, and are reserved
|
||||||
|
for internal implementation use. <emphasis>These macros cannot
|
||||||
|
be redefined</emphasis>.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A select handful of macros control libstdc++ extensions and extra
|
||||||
|
features, or provide versioning information for the API. Only
|
||||||
|
those macros listed below are offered for consideration by the
|
||||||
|
general public.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>Below is the macro which users may check for library version
|
||||||
|
information. </para>
|
||||||
|
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry>
|
||||||
|
<term><code>__GLIBCXX__</code></term>
|
||||||
|
<listitem>
|
||||||
|
<para>The current version of
|
||||||
|
libstdc++ in compressed ISO date format, form of an unsigned
|
||||||
|
long. For details on the value of this particular macro for a
|
||||||
|
particular release, please consult this <link linkend="appendix.porting.abi">
|
||||||
|
document</link>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
|
||||||
|
<para>Below are the macros which users may change with #define/#undef or
|
||||||
|
with -D/-U compiler flags. The default state of the symbol is
|
||||||
|
listed.</para>
|
||||||
|
|
||||||
|
<para><quote>Configurable</quote> (or <quote>Not configurable</quote>) means
|
||||||
|
that the symbol is initially chosen (or not) based on
|
||||||
|
--enable/--disable options at library build and configure time
|
||||||
|
(documented <link linkend="manual.intro.setup.configure">here</link>), with the
|
||||||
|
various --enable/--disable choices being translated to
|
||||||
|
#define/#undef).
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para> <acronym>ABI</acronym> means that changing from the default value may
|
||||||
|
mean changing the <acronym>ABI</acronym> of compiled code. In other words, these
|
||||||
|
choices control code which has already been compiled (i.e., in a
|
||||||
|
binary such as libstdc++.a/.so). If you explicitly #define or
|
||||||
|
#undef these macros, the <emphasis>headers</emphasis> may see different code
|
||||||
|
paths, but the <emphasis>libraries</emphasis> which you link against will not.
|
||||||
|
Experimenting with different values with the expectation of
|
||||||
|
consistent linkage requires changing the config headers before
|
||||||
|
building/installing the library.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry><term><code>_GLIBCXX_DEPRECATED</code></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Defined by default. Not configurable. ABI-changing. Turning this off
|
||||||
|
removes older ARM-style iostreams code, and other anachronisms
|
||||||
|
from the API. This macro is dependent on the version of the
|
||||||
|
standard being tracked, and as a result may give different results for
|
||||||
|
<code>-std=c++98</code> and <code>-std=c++0x</code>. This may
|
||||||
|
be useful in updating old C++ code which no longer meet the
|
||||||
|
requirements of the language, or for checking current code
|
||||||
|
against new language standards.
|
||||||
|
</para>
|
||||||
|
</listitem></varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><code>_GLIBCXX_FORCE_NEW</code></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Undefined by default. When defined, memory allocation and
|
||||||
|
allocators controlled by libstdc++ call operator new/delete
|
||||||
|
without caching and pooling. Configurable via
|
||||||
|
<code>--enable-libstdcxx-allocator</code>. ABI-changing.
|
||||||
|
</para>
|
||||||
|
</listitem></varlistentry>
|
||||||
|
|
||||||
|
|
||||||
|
<varlistentry><term><code>_GLIBCXX_CONCEPT_CHECKS</code></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Undefined by default. Configurable via
|
||||||
|
<code>--enable-concept-checks</code>. When defined, performs
|
||||||
|
compile-time checking on certain template instantiations to
|
||||||
|
detect violations of the requirements of the standard. This
|
||||||
|
is described in more detail <link
|
||||||
|
linkend="manual.ext.compile_checks">here</link>.
|
||||||
|
</para>
|
||||||
|
</listitem></varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><code>_GLIBCXX_DEBUG</code></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Undefined by default. When defined, compiles user code using
|
||||||
|
the <link linkend="manual.ext.debug_mode">debug mode</link>.
|
||||||
|
</para>
|
||||||
|
</listitem></varlistentry>
|
||||||
|
<varlistentry><term><code>_GLIBCXX_DEBUG_PEDANTIC</code></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Undefined by default. When defined while compiling with
|
||||||
|
the <link linkend="manual.ext.debug_mode">debug mode</link>, makes
|
||||||
|
the debug mode extremely picky by making the use of libstdc++
|
||||||
|
extensions and libstdc++-specific behavior into errors.
|
||||||
|
</para>
|
||||||
|
</listitem></varlistentry>
|
||||||
|
<varlistentry><term><code>_GLIBCXX_PARALLEL</code></term>
|
||||||
|
<listitem>
|
||||||
|
<para>Undefined by default. When defined, compiles user code
|
||||||
|
using the <link linkend="manual.ext.parallel_mode">parallel
|
||||||
|
mode</link>.
|
||||||
|
</para>
|
||||||
|
</listitem></varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><code>_GLIBCXX_PROFILE</code></term>
|
||||||
|
<listitem>
|
||||||
|
<para>Undefined by default. When defined, compiles user code
|
||||||
|
using the <link linkend="manual.ext.profile_mode">profile
|
||||||
|
mode</link>.
|
||||||
|
</para>
|
||||||
|
</listitem></varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="manual.intro.using.namespaces" xreflabel="Namespaces">
|
<sect1 id="manual.intro.using.namespaces" xreflabel="Namespaces">
|
||||||
<?dbhtml filename="using_namespaces.html"?>
|
<?dbhtml filename="using_namespaces.html"?>
|
||||||
<title>Namespaces</title>
|
<title>Namespaces</title>
|
||||||
|
|
@ -786,7 +934,7 @@ and <code>__gnu_pbds</code>.
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
<para> A complete list of implementation namespaces (including namespace contents) is available in the generated source <ulink url="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/namespaces.html">documentation</ulink>.
|
<para> A complete list of implementation namespaces (including namespace contents) is available in the generated source <ulink url="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/namespaces.html">documentation</ulink>.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -838,7 +986,7 @@ naming prefixes or macros, etc.
|
||||||
currently active namespace(s). For example:
|
currently active namespace(s). For example:
|
||||||
</para>
|
</para>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
namespace gtk
|
namespace gtk
|
||||||
{
|
{
|
||||||
using std::string;
|
using std::string;
|
||||||
using std::tr1::array;
|
using std::tr1::array;
|
||||||
|
|
@ -849,8 +997,8 @@ namespace gtk
|
||||||
<para>
|
<para>
|
||||||
In this example, <code>std::string</code> gets imported into
|
In this example, <code>std::string</code> gets imported into
|
||||||
<code>namespace gtk</code>. The result is that use of
|
<code>namespace gtk</code>. The result is that use of
|
||||||
<code>std::string</code> inside namespace gtk can just use <code>string</code>, without the explicit qualification.
|
<code>std::string</code> inside namespace gtk can just use <code>string</code>, without the explicit qualification.
|
||||||
As an added bonus,
|
As an added bonus,
|
||||||
<code>std::string</code> does not get imported into
|
<code>std::string</code> does not get imported into
|
||||||
the global namespace. Additionally, a more elaborate arrangement can be made for backwards compatibility and portability, whereby the
|
the global namespace. Additionally, a more elaborate arrangement can be made for backwards compatibility and portability, whereby the
|
||||||
<code>using</code>-declarations can wrapped in macros that
|
<code>using</code>-declarations can wrapped in macros that
|
||||||
|
|
@ -864,131 +1012,200 @@ namespace gtk
|
||||||
</sect2>
|
</sect2>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="manual.intro.using.macros" xreflabel="Macros">
|
<sect1 id="manual.intro.using.linkage" xreflabel="Linkage">
|
||||||
<?dbhtml filename="using_macros.html"?>
|
<?dbhtml filename="using_dynamic_or_shared.html"?>
|
||||||
<title>Macros</title>
|
<title>Linking</title>
|
||||||
|
|
||||||
<para>All pre-processor switches and configurations are all gathered
|
<sect2 id="manual.intro.using.linkage.freestanding" xreflabel="Freestanding">
|
||||||
in the file <code>c++config.h</code>, which is generated during
|
<title>Almost Nothing</title>
|
||||||
the libstdc++ configuration and build process, and included by
|
<para>
|
||||||
files part of the public libstdc++ API. Most of these macros
|
Or as close as it gets: freestanding. This is a minimal
|
||||||
should not be used by consumers of libstdc++, and are reserved
|
configuration, with only partial support for the standard
|
||||||
for internal implementation use. <emphasis>These macros cannot be
|
library. Assume only the following header files can be used:
|
||||||
redefined</emphasis>. However, a select handful of these macro
|
</para>
|
||||||
control libstdc++ extensions and extra features, or provide
|
|
||||||
versioning information for the API, and are able to be used.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>All library macros begin with <code>_GLIBCXX_</code> (except for
|
<itemizedlist>
|
||||||
versions 3.1.x to 3.3.x, which use <code>_GLIBCPP_</code>).
|
<listitem>
|
||||||
</para>
|
<para>
|
||||||
|
<filename class="headerfile">cstdarg</filename>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<para>Below is the macro which users may check for library version
|
<listitem>
|
||||||
information. </para>
|
<para>
|
||||||
|
<filename class="headerfile">cstddef</filename>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<variablelist>
|
<listitem>
|
||||||
<varlistentry>
|
<para>
|
||||||
<term><code>__GLIBCXX__</code></term>
|
<filename class="headerfile">cstdlib</filename>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<filename class="headerfile">exception</filename>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<filename class="headerfile">limits</filename>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<filename class="headerfile">new</filename>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<filename class="headerfile">exception</filename>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<filename class="headerfile">typeinfo</filename>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In addition, throw in
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<filename class="headerfile">cxxabi.h</filename>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In the
|
||||||
|
C++0x <link linkend="manual.intro.using.flags">dialect</link> add
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<filename class="headerfile">initializer_list</filename>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<filename class="headerfile">type_traits</filename>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
<para> There exists a library that offers runtime support for
|
||||||
|
just these headers, and it is called
|
||||||
|
<filename class="libraryfile">libsupc++.a</filename>. To use it, compile with <command>gcc</command> instead of <command>g++</command>, like so:
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<command>gcc foo.cc -lsupc++</command>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
No attempt is made to verify that only the minimal subset
|
||||||
|
identified above is actually used at compile time. Violations
|
||||||
|
are diagnosed as undefined symbols at link time.
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 id="manual.intro.using.linkage.dynamic" xreflabel="Dynamic and Shared">
|
||||||
|
<title>Finding Dynamic or Shared Libraries</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If the only library built is the static library
|
||||||
|
(<filename class="libraryfile">libstdc++.a</filename>), or if
|
||||||
|
specifying static linking, this section is can be skipped. But
|
||||||
|
if building or using a shared library
|
||||||
|
(<filename class="libraryfile">libstdc++.so</filename>), then
|
||||||
|
additional location information will need to be provided.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
But how?
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
A quick read of the relevant part of the GCC
|
||||||
|
manual, <ulink url="http://gcc.gnu.org/onlinedocs/gcc/Invoking-G_002b_002b.html#Invoking-G_002b_002b">Compiling
|
||||||
|
C++ Programs</ulink>, specifies linking against a C++
|
||||||
|
library. More details from the
|
||||||
|
GCC <ulink url="http://gcc.gnu.org/faq.html#rpath">FAQ</ulink>,
|
||||||
|
which states <emphasis>GCC does not, by default, specify a
|
||||||
|
location so that the dynamic linker can find dynamic libraries at
|
||||||
|
runtime.</emphasis>
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Users will have to provide this information.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Methods vary for different platforms and different styles, and
|
||||||
|
are printed to the screen during installation. To summarize:
|
||||||
|
</para>
|
||||||
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>The current version of
|
<para>
|
||||||
libstdc++ in compressed ISO date format, form of an unsigned
|
At runtime set <literal>LD_LIBRARY_PATH</literal> in your
|
||||||
long. For details on the value of this particular macro for a
|
environment correctly, so that the shared library for
|
||||||
particular release, please consult this <link linkend="appendix.porting.abi">
|
libstdc++ can be found and loaded. Be certain that you
|
||||||
document</link>.
|
understand all of the other implications and behavior
|
||||||
|
of <literal>LD_LIBRARY_PATH</literal> first.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Compile the path to find the library at runtime into the
|
||||||
|
program. This can be done by passing certain options to
|
||||||
|
<command>g++</command>, which will in turn pass them on to
|
||||||
|
the linker. The exact format of the options is dependent on
|
||||||
|
which linker you use:
|
||||||
|
</para>
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
GNU ld (default on Linux):<literal>-Wl,--rpath,<filename class="directory">destdir</filename>/lib</literal>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
IRIX ld:<literal>
|
||||||
|
-Wl,-rpath,<filename class="directory">destdir</filename>/lib</literal>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Solaris ld:<literal>-Wl,-R<filename class="directory">destdir</filename>/lib</literal>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
<para>
|
||||||
|
Use the <command>ldd</command> utility on the linked executable
|
||||||
|
to show
|
||||||
|
which <filename class="libraryfile">libstdc++.so</filename>
|
||||||
|
library the system will get at runtime.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
<para>
|
||||||
</varlistentry>
|
A <filename class="libraryfile">libstdc++.la</filename> file is
|
||||||
</variablelist>
|
also installed, for use with Libtool. If you use Libtool to
|
||||||
|
create your executables, these details are taken care of for
|
||||||
<para>Below are the macros which users may change with #define/#undef or
|
you.
|
||||||
with -D/-U compiler flags. The default state of the symbol is
|
|
||||||
listed.</para>
|
|
||||||
|
|
||||||
<para><quote>Configurable</quote> (or <quote>Not configurable</quote>) means
|
|
||||||
that the symbol is initially chosen (or not) based on
|
|
||||||
--enable/--disable options at library build and configure time
|
|
||||||
(documented <link linkend="manual.intro.setup.configure">here</link>), with the
|
|
||||||
various --enable/--disable choices being translated to
|
|
||||||
#define/#undef).
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para> <acronym>ABI</acronym> means that changing from the default value may
|
|
||||||
mean changing the <acronym>ABI</acronym> of compiled code. In other words, these
|
|
||||||
choices control code which has already been compiled (i.e., in a
|
|
||||||
binary such as libstdc++.a/.so). If you explicitly #define or
|
|
||||||
#undef these macros, the <emphasis>headers</emphasis> may see different code
|
|
||||||
paths, but the <emphasis>libraries</emphasis> which you link against will not.
|
|
||||||
Experimenting with different values with the expectation of
|
|
||||||
consistent linkage requires changing the config headers before
|
|
||||||
building/installing the library.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry><term><code>_GLIBCXX_DEPRECATED</code></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Defined by default. Not configurable. ABI-changing. Turning this off
|
|
||||||
removes older ARM-style iostreams code, and other anachronisms
|
|
||||||
from the API. This macro is dependent on the version of the
|
|
||||||
standard being tracked, and as a result may give different results for
|
|
||||||
<code>-std=c++98</code> and <code>-std=c++0x</code>. This may
|
|
||||||
be useful in updating old C++ code which no longer meet the
|
|
||||||
requirements of the language, or for checking current code
|
|
||||||
against new language standards.
|
|
||||||
</para>
|
</para>
|
||||||
</listitem></varlistentry>
|
</sect2>
|
||||||
|
</sect1>
|
||||||
<varlistentry><term><code>_GLIBCXX_FORCE_NEW</code></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Undefined by default. When defined, memory allocation and
|
|
||||||
allocators controlled by libstdc++ call operator new/delete
|
|
||||||
without caching and pooling. Configurable via
|
|
||||||
<code>--enable-libstdcxx-allocator</code>. ABI-changing.
|
|
||||||
</para>
|
|
||||||
</listitem></varlistentry>
|
|
||||||
|
|
||||||
|
|
||||||
<varlistentry><term><code>_GLIBCXX_CONCEPT_CHECKS</code></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Undefined by default. Configurable via
|
|
||||||
<code>--enable-concept-checks</code>. When defined, performs
|
|
||||||
compile-time checking on certain template instantiations to
|
|
||||||
detect violations of the requirements of the standard. This
|
|
||||||
is described in more detail <link
|
|
||||||
linkend="manual.ext.compile_checks">here</link>.
|
|
||||||
</para>
|
|
||||||
</listitem></varlistentry>
|
|
||||||
|
|
||||||
<varlistentry><term><code>_GLIBCXX_DEBUG</code></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Undefined by default. When defined, compiles user code using
|
|
||||||
the <link linkend="manual.ext.debug_mode">debug mode</link>.
|
|
||||||
</para>
|
|
||||||
</listitem></varlistentry>
|
|
||||||
<varlistentry><term><code>_GLIBCXX_DEBUG_PEDANTIC</code></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Undefined by default. When defined while compiling with
|
|
||||||
the <link linkend="manual.ext.debug_mode">debug mode</link>, makes
|
|
||||||
the debug mode extremely picky by making the use of libstdc++
|
|
||||||
extensions and libstdc++-specific behavior into errors.
|
|
||||||
</para>
|
|
||||||
</listitem></varlistentry>
|
|
||||||
<varlistentry><term><code>_GLIBCXX_PARALLEL</code></term>
|
|
||||||
<listitem>
|
|
||||||
<para>Undefined by default. When defined, compiles user code
|
|
||||||
using the <link linkend="manual.ext.parallel_mode">parallel
|
|
||||||
mode</link>.
|
|
||||||
</para>
|
|
||||||
</listitem></varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
|
|
||||||
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
<sect1 id="manual.intro.using.concurrency" xreflabel="Concurrency">
|
<sect1 id="manual.intro.using.concurrency" xreflabel="Concurrency">
|
||||||
<?dbhtml filename="using_concurrency.html"?>
|
<?dbhtml filename="using_concurrency.html"?>
|
||||||
<title>Concurrency</title>
|
<title>Concurrency</title>
|
||||||
|
|
@ -1046,7 +1263,7 @@ We currently use the <ulink url="http://www.sgi.com/tech/stl/thread_safety.html"
|
||||||
|
|
||||||
|
|
||||||
<para>The library strives to be thread-safe when all of the following
|
<para>The library strives to be thread-safe when all of the following
|
||||||
conditions are met:
|
conditions are met:
|
||||||
</para>
|
</para>
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
|
@ -1083,17 +1300,17 @@ gcc version 4.1.2 20070925 (Red Hat 4.1.2-33)
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
An implementation of atomicity.h functions
|
An implementation of atomicity.h functions
|
||||||
exists for the architecture in question. See the internals documentation for more <link linkend="internals.thread_safety">details</link>.
|
exists for the architecture in question. See the internals documentation for more <link linkend="internals.thread_safety">details</link>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
<para>The user-code must guard against concurrent method calls which may
|
<para>The user-code must guard against concurrent method calls which may
|
||||||
access any particular library object's state. Typically, the
|
access any particular library object's state. Typically, the
|
||||||
application programmer may infer what object locks must be held
|
application programmer may infer what object locks must be held
|
||||||
based on the objects referenced in a method call. Without getting
|
based on the objects referenced in a method call. Without getting
|
||||||
into great detail, here is an example which requires user-level
|
into great detail, here is an example which requires user-level
|
||||||
locks:
|
locks:
|
||||||
</para>
|
</para>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
library_class_a shared_object_a;
|
library_class_a shared_object_a;
|
||||||
|
|
@ -1106,8 +1323,8 @@ gcc version 4.1.2 20070925 (Red Hat 4.1.2-33)
|
||||||
|
|
||||||
// Multiple copies of thread_main() are started in independent threads.</programlisting>
|
// Multiple copies of thread_main() are started in independent threads.</programlisting>
|
||||||
<para>Under the assumption that object_a and object_b are never exposed to
|
<para>Under the assumption that object_a and object_b are never exposed to
|
||||||
another thread, here is an example that should not require any
|
another thread, here is an example that should not require any
|
||||||
user-level locks:
|
user-level locks:
|
||||||
</para>
|
</para>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
thread_main () {
|
thread_main () {
|
||||||
|
|
@ -1117,12 +1334,12 @@ gcc version 4.1.2 20070925 (Red Hat 4.1.2-33)
|
||||||
object_a.mutate ();
|
object_a.mutate ();
|
||||||
} </programlisting>
|
} </programlisting>
|
||||||
<para>All library objects are safe to use in a multithreaded program as
|
<para>All library objects are safe to use in a multithreaded program as
|
||||||
long as each thread carefully locks out access by any other
|
long as each thread carefully locks out access by any other
|
||||||
thread while it uses any object visible to another thread, i.e.,
|
thread while it uses any object visible to another thread, i.e.,
|
||||||
treat library objects like any other shared resource. In general,
|
treat library objects like any other shared resource. In general,
|
||||||
this requirement includes both read and write access to objects;
|
this requirement includes both read and write access to objects;
|
||||||
unless otherwise documented as safe, do not assume that two threads
|
unless otherwise documented as safe, do not assume that two threads
|
||||||
may access a shared standard library object at the same time.
|
may access a shared standard library object at the same time.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1159,7 +1376,7 @@ gcc version 4.1.2 20070925 (Red Hat 4.1.2-33)
|
||||||
locking ourselves, but simply pass through to calls to <code>fopen</code>,
|
locking ourselves, but simply pass through to calls to <code>fopen</code>,
|
||||||
<code>fwrite</code>, and so forth.
|
<code>fwrite</code>, and so forth.
|
||||||
</para>
|
</para>
|
||||||
<para>So, for 3.0, the question of "is multithreading safe for I/O"
|
<para>So, for 3.0, the question of "is multithreading safe for I/O"
|
||||||
must be answered with, "is your platform's C library threadsafe
|
must be answered with, "is your platform's C library threadsafe
|
||||||
for I/O?" Some are by default, some are not; many offer multiple
|
for I/O?" Some are by default, some are not; many offer multiple
|
||||||
implementations of the C library with varying tradeoffs of threadsafety
|
implementations of the C library with varying tradeoffs of threadsafety
|
||||||
|
|
@ -1262,7 +1479,7 @@ gcc version 4.1.2 20070925 (Red Hat 4.1.2-33)
|
||||||
code, we use the same definition of thread safety as SGI when
|
code, we use the same definition of thread safety as SGI when
|
||||||
discussing design. A key point that beginners may miss is the
|
discussing design. A key point that beginners may miss is the
|
||||||
fourth major paragraph of the first page mentioned above
|
fourth major paragraph of the first page mentioned above
|
||||||
("For most clients,"...), which points out that
|
(<emphasis>For most clients...</emphasis>), which points out that
|
||||||
locking must nearly always be done outside the container, by
|
locking must nearly always be done outside the container, by
|
||||||
client code (that'd be you, not us). There is a notable
|
client code (that'd be you, not us). There is a notable
|
||||||
exceptions to this rule. Allocators called while a container or
|
exceptions to this rule. Allocators called while a container or
|
||||||
|
|
@ -1286,18 +1503,18 @@ gcc version 4.1.2 20070925 (Red Hat 4.1.2-33)
|
||||||
useful are details
|
useful are details
|
||||||
on <link linkend="manual.util.memory.allocator">allocator</link>
|
on <link linkend="manual.util.memory.allocator">allocator</link>
|
||||||
options and capabilities.
|
options and capabilities.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
</sect2>
|
</sect2>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<!-- Section 0x : Exception policies, expectations, topics -->
|
<!-- Section 0x : Exception policies, expectations, topics -->
|
||||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
|
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||||
parse="xml" href="using_exceptions.xml">
|
parse="xml" href="using_exceptions.xml">
|
||||||
</xi:include>
|
</xi:include>
|
||||||
|
|
||||||
<!-- Section 0x : Debug -->
|
<!-- Section 0x : Debug -->
|
||||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
|
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||||
parse="xml" href="debug.xml">
|
parse="xml" href="debug.xml">
|
||||||
</xi:include>
|
</xi:include>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
// { dg-options "-x c -std=gnu++0x -lsupc++" }
|
||||||
|
|
||||||
|
// Copyright (C) 2010 Free Software Foundation, Inc.
|
||||||
|
//
|
||||||
|
// This file is part of the GNU ISO C++ Library. This library is free
|
||||||
|
// software; you can redistribute it and/or modify it under the
|
||||||
|
// terms of the GNU General Public License as published by the
|
||||||
|
// Free Software Foundation; either version 3, or (at your option)
|
||||||
|
// any later version.
|
||||||
|
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License along
|
||||||
|
// with this library; see the file COPYING3. If not see
|
||||||
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
#include <cstdarg>
|
||||||
|
#include <cstddef>
|
||||||
|
#include <cstdlib>
|
||||||
|
|
||||||
|
#include <exception>
|
||||||
|
#include <limits>
|
||||||
|
#include <new>
|
||||||
|
#include <typeinfo>
|
||||||
|
|
||||||
|
#include <initializer_list>
|
||||||
|
#include <type_traits>
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
std::exception e;
|
||||||
|
|
||||||
|
const char* str = typeid(e).name();
|
||||||
|
|
||||||
|
typedef std::numeric_limits<long> limit_type;
|
||||||
|
limit_type limit_l;
|
||||||
|
int r = limit_type::radix;
|
||||||
|
|
||||||
|
const char* cp = new char;
|
||||||
|
delete cp;
|
||||||
|
|
||||||
|
bool b = std::is_integral<int>::value;
|
||||||
|
|
||||||
|
std::initializer_list<int> ilisti;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue