mirror of git://gcc.gnu.org/git/gcc.git
[multiple changes]
2008-04-10 Benjamin Kosnik <bkoz@redhat.com> * doc/html/*: Regenerate. 2008-04-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> * doc/xml/manual/bitmap_allocator.xml: Improve wording a bit. * doc/xml/authors.xml: Fix typos. * doc/xml/faq.xml: Likewise. * doc/xml/manual/abi.xml: Likewise. * doc/xml/manual/allocator.xml: Likewise. * doc/xml/manual/appendix_contributing.xml: Likewise. * doc/xml/manual/backwards_compatibility.xml: Likewise. * doc/xml/manual/build_hacking.xml: Likewise. * doc/xml/manual/codecvt.xml: Likewise. * doc/xml/manual/concurrency.xml: Likewise. * doc/xml/manual/ctype.xml: Likewise. * doc/xml/manual/debug_mode.xml: Likewise. * doc/xml/manual/diagnostics.xml: Likewise. * doc/xml/manual/evolution.xml: Likewise. * doc/xml/manual/extensions.xml: Likewise. * doc/xml/manual/locale.xml: Likewise. * doc/xml/manual/messages.xml: Likewise. * doc/xml/manual/parallel_mode.xml: Likewise. * doc/xml/manual/status_cxx200x.xml: Likewise. * doc/xml/manual/strings.xml: Likewise. * doc/xml/manual/support.xml: Likewise. * doc/xml/manual/test.xml: Likewise. * doc/xml/manual/using.xml: Likewise. 2008-04-10 Benjamin Kosnik <bkoz@redhat.com> Johannes Singler <singler@ira.uka.de> * doc/xml/manual/parallel_mode.xml: Remove map/set bulk insertors. Correct omp_set_num_threads example. From-SVN: r134178
This commit is contained in:
parent
276e95ca15
commit
4394b61e02
|
|
@ -1,3 +1,39 @@
|
||||||
|
2008-04-10 Benjamin Kosnik <bkoz@redhat.com>
|
||||||
|
|
||||||
|
* doc/html/*: Regenerate.
|
||||||
|
|
||||||
|
2008-04-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
||||||
|
|
||||||
|
* doc/xml/manual/bitmap_allocator.xml: Improve wording a bit.
|
||||||
|
* doc/xml/authors.xml: Fix typos.
|
||||||
|
* doc/xml/faq.xml: Likewise.
|
||||||
|
* doc/xml/manual/abi.xml: Likewise.
|
||||||
|
* doc/xml/manual/allocator.xml: Likewise.
|
||||||
|
* doc/xml/manual/appendix_contributing.xml: Likewise.
|
||||||
|
* doc/xml/manual/backwards_compatibility.xml: Likewise.
|
||||||
|
* doc/xml/manual/build_hacking.xml: Likewise.
|
||||||
|
* doc/xml/manual/codecvt.xml: Likewise.
|
||||||
|
* doc/xml/manual/concurrency.xml: Likewise.
|
||||||
|
* doc/xml/manual/ctype.xml: Likewise.
|
||||||
|
* doc/xml/manual/debug_mode.xml: Likewise.
|
||||||
|
* doc/xml/manual/diagnostics.xml: Likewise.
|
||||||
|
* doc/xml/manual/evolution.xml: Likewise.
|
||||||
|
* doc/xml/manual/extensions.xml: Likewise.
|
||||||
|
* doc/xml/manual/locale.xml: Likewise.
|
||||||
|
* doc/xml/manual/messages.xml: Likewise.
|
||||||
|
* doc/xml/manual/parallel_mode.xml: Likewise.
|
||||||
|
* doc/xml/manual/status_cxx200x.xml: Likewise.
|
||||||
|
* doc/xml/manual/strings.xml: Likewise.
|
||||||
|
* doc/xml/manual/support.xml: Likewise.
|
||||||
|
* doc/xml/manual/test.xml: Likewise.
|
||||||
|
* doc/xml/manual/using.xml: Likewise.
|
||||||
|
|
||||||
|
2008-04-10 Benjamin Kosnik <bkoz@redhat.com>
|
||||||
|
Johannes Singler <singler@ira.uka.de>
|
||||||
|
|
||||||
|
* doc/xml/manual/parallel_mode.xml: Remove map/set bulk
|
||||||
|
insertors. Correct omp_set_num_threads example.
|
||||||
|
|
||||||
2008-04-10 Benjamin Kosnik <bkoz@redhat.com>
|
2008-04-10 Benjamin Kosnik <bkoz@redhat.com>
|
||||||
|
|
||||||
* include/c_global/cstdatomic: C++ types only, format, doxygen markup.
|
* include/c_global/cstdatomic: C++ types only, format, doxygen markup.
|
||||||
|
|
|
||||||
|
|
@ -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"><a id="id478877"></a><p>
|
</p></div><div><div class="legalnotice"><a id="id364659"></a><p>
|
||||||
<a class="ulink" href="17_intro/license.html" target="_top">License
|
<a class="ulink" href="17_intro/license.html" target="_top">License
|
||||||
</a>
|
</a>
|
||||||
</p></div></div></div><hr /></div><p>
|
</p></div></div></div><hr /></div><p>
|
||||||
|
|
|
||||||
|
|
@ -487,7 +487,7 @@
|
||||||
enough to detect when the minimal support to
|
enough to detect when the minimal support to
|
||||||
enable <span class="type">wchar_t</span> and C++ library structures
|
enable <span class="type">wchar_t</span> and C++ library structures
|
||||||
like <code class="classname">wstring</code> were present. This impacted Solaris,
|
like <code class="classname">wstring</code> were present. This impacted Solaris,
|
||||||
Darwin, and BSD varients, and is fixed in libstdc++ versions post 4.1.0.
|
Darwin, and BSD variants, and is fixed in libstdc++ versions post 4.1.0.
|
||||||
</p><p>
|
</p><p>
|
||||||
</p></td></tr><tr class="qandadiv"><td align="left" valign="top" colspan="2"><h3 class="title"><a id="faq.known_bugs"></a>5. Known Bugs</h3></td></tr><tr class="toc"><td align="left" valign="top" colspan="2"><dl><dt>5.1. <a href="faq.html#faq.what_works">
|
</p></td></tr><tr class="qandadiv"><td align="left" valign="top" colspan="2"><h3 class="title"><a id="faq.known_bugs"></a>5. Known Bugs</h3></td></tr><tr class="toc"><td align="left" valign="top" colspan="2"><dl><dt>5.1. <a href="faq.html#faq.what_works">
|
||||||
What works already?
|
What works already?
|
||||||
|
|
@ -777,7 +777,7 @@
|
||||||
</p></td></tr><tr class="question"><td align="left" valign="top"><a id="faq.extensions_and_backwards_compat"></a><a id="q-extensions_and_backwards_compat"></a><p><b>7.4.</b></p></td><td align="left" valign="top"><p>
|
</p></td></tr><tr class="question"><td align="left" valign="top"><a id="faq.extensions_and_backwards_compat"></a><a id="q-extensions_and_backwards_compat"></a><p><b>7.4.</b></p></td><td align="left" valign="top"><p>
|
||||||
Extensions and Backward Compatibility
|
Extensions and Backward Compatibility
|
||||||
</p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-extensions_and_backwards_compat"></a></td><td align="left" valign="top"><p>
|
</p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-extensions_and_backwards_compat"></a></td><td align="left" valign="top"><p>
|
||||||
See the <a class="link" href="manual/backwards.html" title="Backwards Compatibility">link</a> on backwards compatiblity and <a class="link" href="manual/api.html" title="API Evolution and Deprecation History">link</a> on evolution.
|
See the <a class="link" href="manual/backwards.html" title="Backwards Compatibility">link</a> on backwards compatibility and <a class="link" href="manual/api.html" title="API Evolution and Deprecation History">link</a> on evolution.
|
||||||
</p></td></tr><tr class="question"><td align="left" valign="top"><a id="faq.tr1_support"></a><a id="q-tr1_support"></a><p><b>7.5.</b></p></td><td align="left" valign="top"><p>
|
</p></td></tr><tr class="question"><td align="left" valign="top"><a id="faq.tr1_support"></a><a id="q-tr1_support"></a><p><b>7.5.</b></p></td><td align="left" valign="top"><p>
|
||||||
Does libstdc++ support TR1?
|
Does libstdc++ support TR1?
|
||||||
</p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-tr1_support"></a></td><td align="left" valign="top"><p>
|
</p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-tr1_support"></a></td><td align="left" valign="top"><p>
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ given compiler ABI. In a nutshell:
|
||||||
created with the same constraints.
|
created with the same constraints.
|
||||||
</p><p>
|
</p><p>
|
||||||
To use a specific version of the C++ ABI, one must use a
|
To use a specific version of the C++ ABI, one must use a
|
||||||
corresponding GNU C++ toolchain (Ie, g++ and libstdc++) that
|
corresponding GNU C++ toolchain (i.e., g++ and libstdc++) that
|
||||||
implements the C++ ABI in question.
|
implements the C++ ABI in question.
|
||||||
</p></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="abi.versioning"></a>Versioning</h3></div></div></div><p> The C++ interface has evolved throughout the history of the GNU
|
</p></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="abi.versioning"></a>Versioning</h3></div></div></div><p> The C++ interface has evolved throughout the history of the GNU
|
||||||
C++ toolchain. With each release, various details have been changed so
|
C++ toolchain. With each release, various details have been changed so
|
||||||
|
|
@ -84,7 +84,7 @@ release of the series to remain link compatible.
|
||||||
others, this is libgcc_s.so.1. </p></li></ul></div></li><li><p>Symbol versioning on the libgcc_s.so binary.</p><p>It is versioned with the following labels and version
|
others, this is libgcc_s.so.1. </p></li></ul></div></li><li><p>Symbol versioning on the libgcc_s.so binary.</p><p>It is versioned with the following labels and version
|
||||||
definitions, where the version definition is the maximum for a
|
definitions, where the version definition is the maximum for a
|
||||||
particular release. Labels are cumulative. If a particular release
|
particular release. Labels are cumulative. If a particular release
|
||||||
is not listed, it has the same version labels as the preceeding
|
is not listed, it has the same version labels as the preceding
|
||||||
release.</p><p>This corresponds to the mapfile: gcc/libgcc-std.ver</p><div class="itemizedlist"><ul type="disc"><li><p>gcc-3.0.0: GCC_3.0</p></li><li><p>gcc-3.3.0: GCC_3.3</p></li><li><p>gcc-3.3.1: GCC_3.3.1</p></li><li><p>gcc-3.3.2: GCC_3.3.2</p></li><li><p>gcc-3.3.4: GCC_3.3.4</p></li><li><p>gcc-3.4.0: GCC_3.4</p></li><li><p>gcc-3.4.2: GCC_3.4.2</p></li><li><p>gcc-3.4.4: GCC_3.4.4</p></li><li><p>gcc-4.0.0: GCC_4.0.0</p></li><li><p>gcc-4.1.0: GCC_4.1.0</p></li><li><p>gcc-4.2.0: GCC_4.2.0</p></li></ul></div></li><li><p>Release versioning on the libstdc++.so binary, implemented in the same was as the libgcc_s.so binary, above.</p><p>It is versioned as follows:
|
release.</p><p>This corresponds to the mapfile: gcc/libgcc-std.ver</p><div class="itemizedlist"><ul type="disc"><li><p>gcc-3.0.0: GCC_3.0</p></li><li><p>gcc-3.3.0: GCC_3.3</p></li><li><p>gcc-3.3.1: GCC_3.3.1</p></li><li><p>gcc-3.3.2: GCC_3.3.2</p></li><li><p>gcc-3.3.4: GCC_3.3.4</p></li><li><p>gcc-3.4.0: GCC_3.4</p></li><li><p>gcc-3.4.2: GCC_3.4.2</p></li><li><p>gcc-3.4.4: GCC_3.4.4</p></li><li><p>gcc-4.0.0: GCC_4.0.0</p></li><li><p>gcc-4.1.0: GCC_4.1.0</p></li><li><p>gcc-4.2.0: GCC_4.2.0</p></li></ul></div></li><li><p>Release versioning on the libstdc++.so binary, implemented in the same was as the libgcc_s.so binary, above.</p><p>It is versioned as follows:
|
||||||
</p><div class="itemizedlist"><ul type="disc"><li><p>gcc-3.0.0: libstdc++.so.3.0.0</p></li><li><p>gcc-3.0.1: libstdc++.so.3.0.1</p></li><li><p>gcc-3.0.2: libstdc++.so.3.0.2</p></li><li><p>gcc-3.0.3: libstdc++.so.3.0.2 (Error should be libstdc++.so.3.0.3)</p></li><li><p>gcc-3.0.4: libstdc++.so.3.0.4</p></li><li><p>gcc-3.1.0: libstdc++.so.4.0.0</p></li><li><p>gcc-3.1.1: libstdc++.so.4.0.1</p></li><li><p>gcc-3.2.0: libstdc++.so.5.0.0</p></li><li><p>gcc-3.2.1: libstdc++.so.5.0.1</p></li><li><p>gcc-3.2.2: libstdc++.so.5.0.2</p></li><li><p>gcc-3.2.3: libstdc++.so.5.0.3 (Not strictly required)</p></li><li><p>gcc-3.3.0: libstdc++.so.5.0.4</p></li><li><p>gcc-3.3.1: libstdc++.so.5.0.5</p></li><li><p>gcc-3.3.2: libstdc++.so.5.0.5</p></li><li><p>gcc-3.3.3: libstdc++.so.5.0.5</p></li><li><p>gcc-3.4.0: libstdc++.so.6.0.0</p></li><li><p>gcc-3.4.1: libstdc++.so.6.0.1</p></li><li><p>gcc-3.4.2: libstdc++.so.6.0.2</p></li><li><p>gcc-3.4.3: libstdc++.so.6.0.3</p></li><li><p>gcc-3.4.4: libstdc++.so.6.0.3</p></li><li><p>gcc-3.4.5: libstdc++.so.6.0.3</p></li><li><p>gcc-3.4.6: libstdc++.so.6.0.3</p></li><li><p>gcc-4.0.0: libstdc++.so.6.0.4</p></li><li><p>gcc-4.0.1: libstdc++.so.6.0.5</p></li><li><p>gcc-4.0.2: libstdc++.so.6.0.6</p></li><li><p>gcc-4.0.3: libstdc++.so.6.0.7</p></li><li><p>gcc-4.1.0: libstdc++.so.6.0.7</p></li><li><p>gcc-4.1.1: libstdc++.so.6.0.8</p></li><li><p>gcc-4.1.2: libstdc++.so.6.0.8</p></li><li><p>gcc-4.2.0: libstdc++.so.6.0.9</p></li></ul></div></li><li><p>Symbol versioning on the libstdc++.so binary.</p><p>mapfile: libstdc++/config/linker-map.gnu</p><p>It is versioned with the following labels and version
|
</p><div class="itemizedlist"><ul type="disc"><li><p>gcc-3.0.0: libstdc++.so.3.0.0</p></li><li><p>gcc-3.0.1: libstdc++.so.3.0.1</p></li><li><p>gcc-3.0.2: libstdc++.so.3.0.2</p></li><li><p>gcc-3.0.3: libstdc++.so.3.0.2 (Error should be libstdc++.so.3.0.3)</p></li><li><p>gcc-3.0.4: libstdc++.so.3.0.4</p></li><li><p>gcc-3.1.0: libstdc++.so.4.0.0</p></li><li><p>gcc-3.1.1: libstdc++.so.4.0.1</p></li><li><p>gcc-3.2.0: libstdc++.so.5.0.0</p></li><li><p>gcc-3.2.1: libstdc++.so.5.0.1</p></li><li><p>gcc-3.2.2: libstdc++.so.5.0.2</p></li><li><p>gcc-3.2.3: libstdc++.so.5.0.3 (Not strictly required)</p></li><li><p>gcc-3.3.0: libstdc++.so.5.0.4</p></li><li><p>gcc-3.3.1: libstdc++.so.5.0.5</p></li><li><p>gcc-3.3.2: libstdc++.so.5.0.5</p></li><li><p>gcc-3.3.3: libstdc++.so.5.0.5</p></li><li><p>gcc-3.4.0: libstdc++.so.6.0.0</p></li><li><p>gcc-3.4.1: libstdc++.so.6.0.1</p></li><li><p>gcc-3.4.2: libstdc++.so.6.0.2</p></li><li><p>gcc-3.4.3: libstdc++.so.6.0.3</p></li><li><p>gcc-3.4.4: libstdc++.so.6.0.3</p></li><li><p>gcc-3.4.5: libstdc++.so.6.0.3</p></li><li><p>gcc-3.4.6: libstdc++.so.6.0.3</p></li><li><p>gcc-4.0.0: libstdc++.so.6.0.4</p></li><li><p>gcc-4.0.1: libstdc++.so.6.0.5</p></li><li><p>gcc-4.0.2: libstdc++.so.6.0.6</p></li><li><p>gcc-4.0.3: libstdc++.so.6.0.7</p></li><li><p>gcc-4.1.0: libstdc++.so.6.0.7</p></li><li><p>gcc-4.1.1: libstdc++.so.6.0.8</p></li><li><p>gcc-4.1.2: libstdc++.so.6.0.8</p></li><li><p>gcc-4.2.0: libstdc++.so.6.0.9</p></li></ul></div></li><li><p>Symbol versioning on the libstdc++.so binary.</p><p>mapfile: libstdc++/config/linker-map.gnu</p><p>It is versioned with the following labels and version
|
||||||
definitions, where the version definition is the maximum for a
|
definitions, where the version definition is the maximum for a
|
||||||
|
|
@ -95,7 +95,7 @@ release of the series to remain link compatible.
|
||||||
gcc-3.2.1 release, which has GLIBCPP_3.2.1 for new symbols and
|
gcc-3.2.1 release, which has GLIBCPP_3.2.1 for new symbols and
|
||||||
GLIBCPP_3.2 for symbols that were introduced in the gcc-3.2.0
|
GLIBCPP_3.2 for symbols that were introduced in the gcc-3.2.0
|
||||||
release.) If a particular release is not listed, it has the same
|
release.) If a particular release is not listed, it has the same
|
||||||
version labels as the preceeding release.
|
version labels as the preceding release.
|
||||||
</p><div class="itemizedlist"><ul type="disc"><li><p>gcc-3.0.0: (Error, not versioned)</p></li><li><p>gcc-3.0.1: (Error, not versioned)</p></li><li><p>gcc-3.0.2: (Error, not versioned)</p></li><li><p>gcc-3.0.3: (Error, not versioned)</p></li><li><p>gcc-3.0.4: (Error, not versioned)</p></li><li><p>gcc-3.1.0: GLIBCPP_3.1, CXXABI_1</p></li><li><p>gcc-3.1.1: GLIBCPP_3.1, CXXABI_1</p></li><li><p>gcc-3.2.0: GLIBCPP_3.2, CXXABI_1.2</p></li><li><p>gcc-3.2.1: GLIBCPP_3.2.1, CXXABI_1.2</p></li><li><p>gcc-3.2.2: GLIBCPP_3.2.2, CXXABI_1.2</p></li><li><p>gcc-3.2.3: GLIBCPP_3.2.2, CXXABI_1.2</p></li><li><p>gcc-3.3.0: GLIBCPP_3.2.2, CXXABI_1.2.1</p></li><li><p>gcc-3.3.1: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li><p>gcc-3.3.2: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li><p>gcc-3.3.3: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li><p>gcc-3.4.0: GLIBCXX_3.4, CXXABI_1.3</p></li><li><p>gcc-3.4.1: GLIBCXX_3.4.1, CXXABI_1.3</p></li><li><p>gcc-3.4.2: GLIBCXX_3.4.2</p></li><li><p>gcc-3.4.3: GLIBCXX_3.4.3</p></li><li><p>gcc-4.0.0: GLIBCXX_3.4.4, CXXABI_1.3.1</p></li><li><p>gcc-4.0.1: GLIBCXX_3.4.5</p></li><li><p>gcc-4.0.2: GLIBCXX_3.4.6</p></li><li><p>gcc-4.0.3: GLIBCXX_3.4.7</p></li><li><p>gcc-4.1.1: GLIBCXX_3.4.8</p></li><li><p>gcc-4.2.0: GLIBCXX_3.4.9</p></li></ul></div></li><li><p>Incremental bumping of a compiler pre-defined macro,
|
</p><div class="itemizedlist"><ul type="disc"><li><p>gcc-3.0.0: (Error, not versioned)</p></li><li><p>gcc-3.0.1: (Error, not versioned)</p></li><li><p>gcc-3.0.2: (Error, not versioned)</p></li><li><p>gcc-3.0.3: (Error, not versioned)</p></li><li><p>gcc-3.0.4: (Error, not versioned)</p></li><li><p>gcc-3.1.0: GLIBCPP_3.1, CXXABI_1</p></li><li><p>gcc-3.1.1: GLIBCPP_3.1, CXXABI_1</p></li><li><p>gcc-3.2.0: GLIBCPP_3.2, CXXABI_1.2</p></li><li><p>gcc-3.2.1: GLIBCPP_3.2.1, CXXABI_1.2</p></li><li><p>gcc-3.2.2: GLIBCPP_3.2.2, CXXABI_1.2</p></li><li><p>gcc-3.2.3: GLIBCPP_3.2.2, CXXABI_1.2</p></li><li><p>gcc-3.3.0: GLIBCPP_3.2.2, CXXABI_1.2.1</p></li><li><p>gcc-3.3.1: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li><p>gcc-3.3.2: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li><p>gcc-3.3.3: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li><p>gcc-3.4.0: GLIBCXX_3.4, CXXABI_1.3</p></li><li><p>gcc-3.4.1: GLIBCXX_3.4.1, CXXABI_1.3</p></li><li><p>gcc-3.4.2: GLIBCXX_3.4.2</p></li><li><p>gcc-3.4.3: GLIBCXX_3.4.3</p></li><li><p>gcc-4.0.0: GLIBCXX_3.4.4, CXXABI_1.3.1</p></li><li><p>gcc-4.0.1: GLIBCXX_3.4.5</p></li><li><p>gcc-4.0.2: GLIBCXX_3.4.6</p></li><li><p>gcc-4.0.3: GLIBCXX_3.4.7</p></li><li><p>gcc-4.1.1: GLIBCXX_3.4.8</p></li><li><p>gcc-4.2.0: GLIBCXX_3.4.9</p></li></ul></div></li><li><p>Incremental bumping of a compiler pre-defined macro,
|
||||||
__GXX_ABI_VERSION. This macro is defined as the version of the
|
__GXX_ABI_VERSION. This macro is defined as the version of the
|
||||||
compiler v3 ABI, with g++ 3.0.x being version 100. This macro will
|
compiler v3 ABI, with g++ 3.0.x being version 100. This macro will
|
||||||
|
|
@ -287,7 +287,7 @@ class in registers, the compiler will be forced to use memory. See <a class="uli
|
||||||
addition, they have the possibility of changing without impacting
|
addition, they have the possibility of changing without impacting
|
||||||
ABI compatibility.
|
ABI compatibility.
|
||||||
</p><p>The following namespaces are transformed by the mapfile:</p><div class="variablelist"><dl><dt><span class="term"><code class="code">namespace std</code></span></dt><dd><p> Defaults to exporting all symbols in label
|
</p><p>The following namespaces are transformed by the mapfile:</p><div class="variablelist"><dl><dt><span class="term"><code class="code">namespace std</code></span></dt><dd><p> Defaults to exporting all symbols in label
|
||||||
<code class="code">GLIBCXX</code> that do not begin with an underscore, ie
|
<code class="code">GLIBCXX</code> that do not begin with an underscore, i.e.,
|
||||||
<code class="code">__test_func</code> would not be exported by default. Select
|
<code class="code">__test_func</code> would not be exported by default. Select
|
||||||
exceptional symbols are allowed to be visible.</p></dd><dt><span class="term"><code class="code">namespace __gnu_cxx</code></span></dt><dd><p> Defaults to not exporting any symbols in label
|
exceptional symbols are allowed to be visible.</p></dd><dt><span class="term"><code class="code">namespace __gnu_cxx</code></span></dt><dd><p> Defaults to not exporting any symbols in label
|
||||||
<code class="code">GLIBCXX</code>, select items are allowed to be visible.</p></dd><dt><span class="term"><code class="code">namespace __gnu_internal</code></span></dt><dd><p> Defaults to not exported, no items are allowed to be visible.</p></dd><dt><span class="term"><code class="code">namespace __cxxabiv1</code>, aliased to <code class="code"> namespace abi</code></span></dt><dd><p> Defaults to not exporting any symbols in label
|
<code class="code">GLIBCXX</code>, select items are allowed to be visible.</p></dd><dt><span class="term"><code class="code">namespace __gnu_internal</code></span></dt><dd><p> Defaults to not exported, no items are allowed to be visible.</p></dd><dt><span class="term"><code class="code">namespace __cxxabiv1</code>, aliased to <code class="code"> namespace abi</code></span></dt><dd><p> Defaults to not exporting any symbols in label
|
||||||
|
|
@ -428,7 +428,7 @@ gcc test.c -g -O2 -L. -lone -ltwo /usr/lib/libstdc++.so.5 /usr/lib/libstdc++.so.
|
||||||
difficult. In particular, compiler generated constructs such as
|
difficult. In particular, compiler generated constructs such as
|
||||||
implicit instantiations for templates, typeinfo information, and
|
implicit instantiations for templates, typeinfo information, and
|
||||||
virtual tables all may cause ABI leakage across shared library
|
virtual tables all may cause ABI leakage across shared library
|
||||||
boundaries. Because of this, mixing C++ ABI's is not recommended at
|
boundaries. Because of this, mixing C++ ABIs is not recommended at
|
||||||
this time.
|
this time.
|
||||||
</p><p>
|
</p><p>
|
||||||
For more background on this issue, see these bugzilla entries:
|
For more background on this issue, see these bugzilla entries:
|
||||||
|
|
@ -436,54 +436,54 @@ 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"><div class="titlepage"><div><div><h3 class="title"><a id="abi.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry"><a id="id510592"></a><p><span class="title"><i>
|
</p></div><div class="bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="abi.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry"><a id="id429530"></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"><a id="id510609"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry"><a id="id429548"></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/cxx-abi" target="_top">
|
<a class="ulink" href="http://www.codesourcery.com/cxx-abi" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry"><a id="id510627"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry"><a id="id429565"></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://developer.intel.com/software/products/compilers/techtopics/LinuxCompilersCompatibility.htm" target="_top">
|
<a class="ulink" href="http://developer.intel.com/software/products/compilers/techtopics/LinuxCompilersCompatibility.htm" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry"><a id="id510644"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry"><a id="id429583"></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://developer.intel.com/software/products/compilers/techtopics/LinuxCompilersCompatibility.htm" target="_top">
|
<a class="ulink" href="http://developer.intel.com/software/products/compilers/techtopics/LinuxCompilersCompatibility.htm" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry"><a id="id510662"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry"><a id="id429600"></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/?p=/doc/816-1386&a=load" target="_top">
|
<a class="ulink" href="http://docs.sun.com/?p=/doc/816-1386&a=load" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry"><a id="id510679"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry"><a id="id429617"></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/db/prod/solaris.9" target="_top">
|
<a class="ulink" href="http://docs.sun.com/db/prod/solaris.9" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry"><a id="id510696"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry"><a id="id429635"></a><p><span class="title"><i>
|
||||||
ELF Symbol Versioning
|
ELF Symbol Versioning
|
||||||
</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/symbol-versioning" target="_top">
|
<a class="ulink" href="http://people.redhat.com/drepper/symbol-versioning" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry"><a id="id510725"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry"><a id="id429663"></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"><a id="id510742"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry"><a id="id429680"></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"><a id="id499374"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry"><a id="id497460"></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
|
||||||
|
|
|
||||||
|
|
@ -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>API Evolution and Deprecation History</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content="ISO C++, api, evolution, deprecation, history" /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="appendix_porting.html" title="Appendix B. Porting and Maintenance" /><link rel="prev" href="abi.html" title="ABI Policy and Guidelines" /><link rel="next" href="backwards.html" title="Backwards Compatibility" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">API Evolution and Deprecation History</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="abi.html">Prev</a> </td><th width="60%" align="center">Appendix B. Porting and Maintenance</th><td width="20%" align="right"> <a accesskey="n" href="backwards.html">Next</a></td></tr></table><hr /></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="appendix.porting.api"></a>API Evolution and Deprecation History</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>API Evolution and Deprecation History</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content="ISO C++, api, evolution, deprecation, history" /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="appendix_porting.html" title="Appendix B. Porting and Maintenance" /><link rel="prev" href="abi.html" title="ABI Policy and Guidelines" /><link rel="next" href="backwards.html" title="Backwards Compatibility" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">API Evolution and Deprecation History</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="abi.html">Prev</a> </td><th width="60%" align="center">Appendix B. Porting and Maintenance</th><td width="20%" align="right"> <a accesskey="n" href="backwards.html">Next</a></td></tr></table><hr /></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="appendix.porting.api"></a>API Evolution and Deprecation History</h2></div></div></div><p>
|
||||||
A list of user-visible changes, in cronological order
|
A list of user-visible changes, in chronological order
|
||||||
</p><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_300"></a><code class="constant">3.0</code></h3></div></div></div><p>
|
</p><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_300"></a><code class="constant">3.0</code></h3></div></div></div><p>
|
||||||
Extensions moved to <code class="filename">include/ext</code>.
|
Extensions moved to <code class="filename">include/ext</code>.
|
||||||
</p><p>
|
</p><p>
|
||||||
|
|
@ -52,7 +52,7 @@ _Alloc_traits</code> have been removed.
|
||||||
</p><p>Default behavior of <code class="code">std::allocator</code> has changed.</p><p>
|
</p><p>Default behavior of <code class="code">std::allocator</code> has changed.</p><p>
|
||||||
Previous versions prior to 3.4 cache allocations in a memory
|
Previous versions prior to 3.4 cache allocations in a memory
|
||||||
pool, instead of passing through to call the global allocation
|
pool, instead of passing through to call the global allocation
|
||||||
operators (ie, <code class="classname">__gnu_cxx::pool_allocator</code>). More
|
operators (i.e., <code class="classname">__gnu_cxx::pool_allocator</code>). More
|
||||||
recent versions default to the
|
recent versions default to the
|
||||||
simpler <code class="classname">__gnu_cxx::new_allocator</code>.
|
simpler <code class="classname">__gnu_cxx::new_allocator</code>.
|
||||||
</p><p> Previously, all allocators were written to the SGI
|
</p><p> Previously, all allocators were written to the SGI
|
||||||
|
|
@ -72,11 +72,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="id456920"></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="id521812"></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="id408028"></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="id422487"></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.
|
||||||
|
|
|
||||||
|
|
@ -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>Appendix A. Contributing</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="spine.html" title="The GNU C++ Library" /><link rel="prev" href="bk01pt12ch40s03.html" title="Use" /><link rel="next" href="bk01apas02.html" title="Directory Layout and Source Conventions" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix A. Contributing</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt12ch40s03.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="bk01apas02.html">Next</a></td></tr></table><hr /></div><div class="appendix" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="appendix.contrib"></a>Appendix A. Contributing</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="bk01apas02.html">Directory Layout and Source Conventions</a></span></dt><dt><span class="sect1"><a href="bk01apas03.html">Coding Style</a></span></dt><dd><dl><dt><span class="sect2"><a href="bk01apas03.html#coding_style.bad_identifiers">Bad Itentifiers</a></span></dt><dt><span class="sect2"><a href="bk01apas03.html#coding_style.example">By Example</a></span></dt></dl></dd><dt><span class="sect1"><a href="bk01apas04.html">Documentation Style</a></span></dt><dd><dl><dt><span class="sect2"><a href="bk01apas04.html#doc_style.doxygen">Doxygen</a></span></dt><dt><span class="sect2"><a href="bk01apas04.html#doc_style.docbook">Docbook</a></span></dt></dl></dd><dt><span class="sect1"><a href="bk01apas05.html">Design Notes</a></span></dt></dl></div><p>
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Appendix A. Contributing</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="spine.html" title="The GNU C++ Library" /><link rel="prev" href="bk01pt12ch40s03.html" title="Use" /><link rel="next" href="bk01apas02.html" title="Directory Layout and Source Conventions" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix A. Contributing</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt12ch40s03.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library</th><td width="20%" align="right"> <a accesskey="n" href="bk01apas02.html">Next</a></td></tr></table><hr /></div><div class="appendix" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="appendix.contrib"></a>Appendix A. Contributing</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="bk01apas02.html">Directory Layout and Source Conventions</a></span></dt><dt><span class="sect1"><a href="bk01apas03.html">Coding Style</a></span></dt><dd><dl><dt><span class="sect2"><a href="bk01apas03.html#coding_style.bad_identifiers">Bad Identifiers</a></span></dt><dt><span class="sect2"><a href="bk01apas03.html#coding_style.example">By Example</a></span></dt></dl></dd><dt><span class="sect1"><a href="bk01apas04.html">Documentation Style</a></span></dt><dd><dl><dt><span class="sect2"><a href="bk01apas04.html#doc_style.doxygen">Doxygen</a></span></dt><dt><span class="sect2"><a href="bk01apas04.html#doc_style.docbook">Docbook</a></span></dt></dl></dd><dt><span class="sect1"><a href="bk01apas05.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
|
||||||
write access to the source repository. First time contributors
|
write access to the source repository. First time contributors
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@
|
||||||
discourage that.
|
discourage that.
|
||||||
</p></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="build_hacking.conventions"></a>Coding and Commenting Conventions</h3></div></div></div><p>
|
</p></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="build_hacking.conventions"></a>Coding and Commenting Conventions</h3></div></div></div><p>
|
||||||
Most comments should use {octothorpes, shibboleths, hash marks,
|
Most comments should use {octothorpes, shibboleths, hash marks,
|
||||||
pound signs, whatevers} rather than "dnl". Nearly all comments in
|
pound signs, whatever} rather than "dnl". Nearly all comments in
|
||||||
configure.ac should. Comments inside macros written in ancilliary
|
configure.ac should. Comments inside macros written in ancilliary
|
||||||
.m4 files should. About the only comments which should
|
.m4 files should. About the only comments which should
|
||||||
<span class="emphasis"><em>not</em></span> use #, but use dnl instead, are comments
|
<span class="emphasis"><em>not</em></span> use #, but use dnl instead, are comments
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,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">obvious</span>” classes didn't get included.
|
“<span class="quote">obvious</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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id390292"></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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id493961"></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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id390324"></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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id493993"></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>
|
||||||
|
|
@ -41,7 +41,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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id390424"></a>Namespace <code class="code">std::</code> not supported</h4></div></div></div><p>
|
</p><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id494094"></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>.
|
||||||
|
|
@ -77,7 +77,7 @@ considered replaced and rewritten.
|
||||||
then using that to set a value for the <code class="code">NAMESPACE_STD</code>
|
then using that to set a value for the <code class="code">NAMESPACE_STD</code>
|
||||||
macro. At that point, one is able to use
|
macro. At that point, one is able to use
|
||||||
<code class="code">NAMESPACE_STD::string</code>, which will evaluate to
|
<code class="code">NAMESPACE_STD::string</code>, which will evaluate to
|
||||||
<code class="code">std::string</code> or <code class="code">::string</code> (ie, in the
|
<code class="code">std::string</code> or <code class="code">::string</code> (i.e., in the
|
||||||
global namespace on systems that do not put <code class="code">string</code> in
|
global namespace on systems that do not put <code class="code">string</code> in
|
||||||
<code class="code">std::</code>).
|
<code class="code">std::</code>).
|
||||||
</p><pre class="programlisting">
|
</p><pre class="programlisting">
|
||||||
|
|
@ -105,7 +105,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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id393816"></a>Illegal iterator usage</h4></div></div></div><p>
|
</pre></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id509052"></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 type="disc"><li><p>
|
</p><div class="itemizedlist"><ul type="disc"><li><p>
|
||||||
|
|
@ -118,7 +118,7 @@ AC_DEFUN([AC_CXX_NAMESPACE_STD], [
|
||||||
</p></li><li><p>
|
</p></li><li><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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id393877"></a><code class="code">isspace</code> from <code class="filename">cctype</code> is a macro
|
</p></li></ul></div></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id509113"></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.).
|
||||||
|
|
@ -151,7 +151,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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id450846"></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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id509207"></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)
|
||||||
|
|
@ -177,7 +177,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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id450884"></a>No <code class="code">std::char_traits<char>::eof</code></h4></div></div></div><p>
|
</p></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id509245"></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
|
||||||
|
|
@ -185,7 +185,7 @@ AC_DEFINE(HAVE_CONTAINER_AT)],
|
||||||
#else
|
#else
|
||||||
#define CPP_EOF EOF
|
#define CPP_EOF EOF
|
||||||
#endif
|
#endif
|
||||||
</pre></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id450902"></a>No <code class="code">string::clear</code></h4></div></div></div><p>
|
</pre></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id509263"></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).
|
||||||
|
|
@ -200,15 +200,15 @@ erase(size_type __pos = 0, size_type __n = npos)
|
||||||
_M_data(), _M_data());
|
_M_data(), _M_data());
|
||||||
}
|
}
|
||||||
</pre><p>
|
</pre><p>
|
||||||
Unfortunately, ut <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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id450947"></a>
|
</p></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id509309"></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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id450966"></a>No <code class="code">basic_stringbuf</code>, <code class="code">basic_stringstream</code></h4></div></div></div><p>
|
</p></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id509328"></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
|
||||||
|
|
@ -296,14 +296,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">info iostream</span>”.
|
particular “<span class="quote">info iostream</span>”.
|
||||||
</p></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id451118"></a>Little or no wide character support</h4></div></div></div><p>
|
</p></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id466068"></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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id451137"></a>No templatized iostreams</h4></div></div></div><p>
|
</p></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id466087"></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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id451156"></a>Thread safety issues</h4></div></div></div><p>
|
</p></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id466106"></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
|
||||||
|
|
@ -361,7 +361,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="ulink" href="../17_intro/DESIGN" target="_top">design document</a>.
|
official <a class="ulink" href="../17_intro/DESIGN" target="_top">design document</a>.
|
||||||
</p><p>Portability notes and known implementation limitations are as follows.</p><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id516132"></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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id466225"></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.
|
||||||
|
|
@ -433,7 +433,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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id516213"></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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id466308"></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
|
||||||
|
|
@ -505,7 +505,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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id516316"></a>No <code class="code">ios::nocreate/ios::noreplace</code>.
|
</pre></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id466429"></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
|
||||||
|
|
@ -516,7 +516,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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id516364"></a>
|
</p></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id466476"></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
|
||||||
|
|
@ -524,7 +524,7 @@ No <code class="code">stream::attach(int fd)</code>
|
||||||
that do, not all of them use integers to represent them.
|
that do, not all of them use integers to represent them.
|
||||||
</p><p>
|
</p><p>
|
||||||
For a portable solution (among systems which use
|
For a portable solution (among systems which use
|
||||||
filedescriptors), you need to implement a subclass of
|
file descriptors), you need to implement a subclass of
|
||||||
<code class="code">std::streambuf</code> (or
|
<code class="code">std::streambuf</code> (or
|
||||||
<code class="code">std::basic_streambuf<..></code>) which opens a file
|
<code class="code">std::basic_streambuf<..></code>) which opens a file
|
||||||
given a descriptor, and then pass an instance of this to the
|
given a descriptor, and then pass an instance of this to the
|
||||||
|
|
@ -539,7 +539,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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id516428"></a>
|
</p></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id466540"></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">
|
||||||
|
|
@ -607,7 +607,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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id516455"></a>
|
</pre></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id466568"></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">
|
||||||
|
|
@ -684,7 +684,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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id516499"></a>
|
</pre></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id466612"></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">
|
||||||
|
|
@ -896,27 +896,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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id437068"></a>
|
</pre></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id466689"></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"><div class="titlepage"><div><div><h3 class="title"><a id="backwards.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry"><a id="id437100"></a><p>[<abbr class="abbrev">
|
</p></div></div><div class="bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="backwards.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry"><a id="id466721"></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"><a id="id437132"></a><p>[<abbr class="abbrev">
|
. </span></p></div><div class="biblioentry"><a id="id466753"></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"><a id="id437165"></a><p>[<abbr class="abbrev">
|
. </span></p></div><div class="biblioentry"><a id="id448867"></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="id510462"></a><p class="title"><b>Table 32.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="id362834"></a><p class="title"><b>Table 32.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
|
||||||
|
|
@ -141,8 +141,8 @@ else return false.</p></li></ol></div><p>
|
||||||
</p><p>
|
</p><p>
|
||||||
(32 x k + 1) / (2 x (32 x k + 1 + 32 x c)) x 100.
|
(32 x k + 1) / (2 x (32 x k + 1 + 32 x c)) x 100.
|
||||||
</p><p>
|
</p><p>
|
||||||
Where, k => The constant overhead per node. eg. for list, it is
|
where k is the constant overhead per node (e.g., for list, it is
|
||||||
8 bytes, and for map it is 12 bytes. c => The size of the
|
8 bytes, and for map it is 12 bytes) and c is the size of the
|
||||||
base type on which the map/list is instantiated. Thus, suppose the
|
base type on which the map/list is instantiated. Thus, suppose the
|
||||||
type1 is int and type2 is double, they are related by the relation
|
type1 is int and type2 is double, they are related by the relation
|
||||||
sizeof(double) == 2*sizeof(int). Thus, all types must have this
|
sizeof(double) == 2*sizeof(int). Thus, all types must have this
|
||||||
|
|
|
||||||
|
|
@ -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>Coding Style</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="appendix_contributing.html" title="Appendix A. Contributing" /><link rel="prev" href="bk01apas02.html" title="Directory Layout and Source Conventions" /><link rel="next" href="bk01apas04.html" title="Documentation Style" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Coding Style</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01apas02.html">Prev</a> </td><th width="60%" align="center">Appendix A. Contributing</th><td width="20%" align="right"> <a accesskey="n" href="bk01apas04.html">Next</a></td></tr></table><hr /></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="contrib.coding_style"></a>Coding Style</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>Coding Style</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="appendix_contributing.html" title="Appendix A. Contributing" /><link rel="prev" href="bk01apas02.html" title="Directory Layout and Source Conventions" /><link rel="next" href="bk01apas04.html" title="Documentation Style" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Coding Style</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01apas02.html">Prev</a> </td><th width="60%" align="center">Appendix A. Contributing</th><td width="20%" align="right"> <a accesskey="n" href="bk01apas04.html">Next</a></td></tr></table><hr /></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="contrib.coding_style"></a>Coding Style</h2></div></div></div><p>
|
||||||
</p><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="coding_style.bad_identifiers"></a>Bad Itentifiers</h3></div></div></div><p>
|
</p><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="coding_style.bad_identifiers"></a>Bad Identifiers</h3></div></div></div><p>
|
||||||
Identifiers that conflict and should be avoided.
|
Identifiers that conflict and should be avoided.
|
||||||
</p><div class="literallayout"><p><br />
|
</p><div class="literallayout"><p><br />
|
||||||
This is the list of names “<span class="quote">reserved to the<br />
|
This is the list of names “<span class="quote">reserved to the<br />
|
||||||
|
|
@ -330,7 +330,7 @@
|
||||||
for definitions. For C++, where we have member functions that can<br />
|
for definitions. For C++, where we have member functions that can<br />
|
||||||
be either inline definitions or declarations, keeping to this<br />
|
be either inline definitions or declarations, keeping to this<br />
|
||||||
standard allows all member function names for a given class to be<br />
|
standard allows all member function names for a given class to be<br />
|
||||||
aligned to the same margin, increasing readibility.<br />
|
aligned to the same margin, increasing readability.<br />
|
||||||
<br />
|
<br />
|
||||||
<br />
|
<br />
|
||||||
10. Invocation of member functions with "this->"<br />
|
10. Invocation of member functions with "this->"<br />
|
||||||
|
|
@ -356,7 +356,7 @@
|
||||||
<br />
|
<br />
|
||||||
12. Spacing under protected and private in class declarations:<br />
|
12. Spacing under protected and private in class declarations:<br />
|
||||||
space above, none below<br />
|
space above, none below<br />
|
||||||
ie<br />
|
i.e.<br />
|
||||||
<br />
|
<br />
|
||||||
public:<br />
|
public:<br />
|
||||||
int foo;<br />
|
int foo;<br />
|
||||||
|
|
@ -368,7 +368,7 @@
|
||||||
<br />
|
<br />
|
||||||
13. Spacing WRT return statements.<br />
|
13. Spacing WRT return statements.<br />
|
||||||
no extra spacing before returns, no parenthesis<br />
|
no extra spacing before returns, no parenthesis<br />
|
||||||
ie<br />
|
i.e.<br />
|
||||||
<br />
|
<br />
|
||||||
}<br />
|
}<br />
|
||||||
return __ret;<br />
|
return __ret;<br />
|
||||||
|
|
@ -385,7 +385,7 @@
|
||||||
<br />
|
<br />
|
||||||
<br />
|
<br />
|
||||||
14. Location of global variables.<br />
|
14. Location of global variables.<br />
|
||||||
All global variables of class type, whether in the "user visable"<br />
|
All global variables of class type, whether in the "user visible"<br />
|
||||||
space (e.g., cin) or the implementation namespace, must be defined<br />
|
space (e.g., cin) or the implementation namespace, must be defined<br />
|
||||||
as a character array with the appropriate alignment and then later<br />
|
as a character array with the appropriate alignment and then later<br />
|
||||||
re-initialized to the correct value.<br />
|
re-initialized to the correct value.<br />
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,7 @@
|
||||||
(Examples of all these abound in the present code.)
|
(Examples of all these abound in the present code.)
|
||||||
</p></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="doc_style.docbook"></a>Docbook</h3></div></div></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="docbook.prereq"></a>Prerequisites</h4></div></div></div><p>
|
</p></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="doc_style.docbook"></a>Docbook</h3></div></div></div><div class="sect3" lang="en" xml:lang="en"><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 noteable 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>,
|
||||||
or <span class="application">Conglomerate</span>.
|
or <span class="application">Conglomerate</span>.
|
||||||
</p><p>
|
</p><p>
|
||||||
|
|
@ -103,7 +103,7 @@
|
||||||
in <code class="filename">doc/Makefile.am</code> and defaults
|
in <code class="filename">doc/Makefile.am</code> and defaults
|
||||||
to <code class="filename">/usr/share/sgml/docbook/xsl-stylesheets</code>.
|
to <code class="filename">/usr/share/sgml/docbook/xsl-stylesheets</code>.
|
||||||
</p><p>
|
</p><p>
|
||||||
For procesessing XML, an XML processor and some style
|
For processing XML, an XML processor and some style
|
||||||
sheets are necessary. Defaults are <span class="command"><strong>xsltproc</strong></span>
|
sheets are necessary. Defaults are <span class="command"><strong>xsltproc</strong></span>
|
||||||
provided by <code class="filename">libxslt</code>.
|
provided by <code class="filename">libxslt</code>.
|
||||||
</p><p>
|
</p><p>
|
||||||
|
|
@ -153,10 +153,10 @@ xmllint --noout --valid <code class="filename">xml/index.xml</code>
|
||||||
faq.xml - index to FAQ<br />
|
faq.xml - index to FAQ<br />
|
||||||
api.xml - index to source level / API <br />
|
api.xml - index to source level / API <br />
|
||||||
<br />
|
<br />
|
||||||
All *.txml files are template xml files, ie otherwise empty files with<br />
|
All *.txml files are template xml files, i.e., otherwise empty files with<br />
|
||||||
the correct structure, suitable for filling in with new information.<br />
|
the correct structure, suitable for filling in with new information.<br />
|
||||||
<br />
|
<br />
|
||||||
<span class="emphasis"><em>Cannonical Writing Style</em></span><br />
|
<span class="emphasis"><em>Canonical Writing Style</em></span><br />
|
||||||
<br />
|
<br />
|
||||||
class template<br />
|
class template<br />
|
||||||
function template<br />
|
function template<br />
|
||||||
|
|
|
||||||
|
|
@ -210,7 +210,7 @@
|
||||||
"export") is badly needed.<br />
|
"export") is badly needed.<br />
|
||||||
<br />
|
<br />
|
||||||
When building a shared library, the current compiler/linker cannot<br />
|
When building a shared library, the current compiler/linker cannot<br />
|
||||||
automatically generate the instantiatiations needed. This creates a<br />
|
automatically generate the instantiations needed. This creates a<br />
|
||||||
miserable situation; it means any time something is changed in the<br />
|
miserable situation; it means any time something is changed in the<br />
|
||||||
library, before a shared library can be built someone must manually<br />
|
library, before a shared library can be built someone must manually<br />
|
||||||
copy the declarations of all templates that are needed by other parts<br />
|
copy the declarations of all templates that are needed by other parts<br />
|
||||||
|
|
@ -814,7 +814,7 @@
|
||||||
by filebuf. These wrappings have not been completed, though there<br />
|
by filebuf. These wrappings have not been completed, though there<br />
|
||||||
is scaffolding in place.<br />
|
is scaffolding in place.<br />
|
||||||
<br />
|
<br />
|
||||||
The encapulation of certain C header <cstdio> names presents an<br />
|
The encapsulation of certain C header <cstdio> names presents an<br />
|
||||||
interesting problem. It is possible to define an inline std::fprintf()<br />
|
interesting problem. It is possible to define an inline std::fprintf()<br />
|
||||||
implemented in terms of the 'extern "C"' vfprintf(), but there is no<br />
|
implemented in terms of the 'extern "C"' vfprintf(), but there is no<br />
|
||||||
standard vfscanf() to use to implement std::fscanf(). It appears that<br />
|
standard vfscanf() to use to implement std::fscanf(). It appears that<br />
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -19,15 +19,15 @@
|
||||||
the 1998 standard as updated for 2003, and the draft of the
|
the 1998 standard as updated for 2003, and the draft of the
|
||||||
upcoming 200x standard.
|
upcoming 200x standard.
|
||||||
</p><p>
|
</p><p>
|
||||||
C++98/03 include files. These are available in the default compilation mode, ie <code class="code">-std=c++98</code> or <code class="code">-std=gnu++98</code>.
|
C++98/03 include files. These are available in the default compilation mode, i.e. <code class="code">-std=c++98</code> or <code class="code">-std=gnu++98</code>.
|
||||||
</p><div class="table"><a id="id398035"></a><p class="title"><b>Table 3.1. C++ 1998 Library Headers</b></p><div class="table-contents"><table summary="C++ 1998 Library Headers" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /><col /></colgroup><tbody><tr><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="filename">iomanip</code></td><td align="left"><code class="filename">list</code></td><td align="left"><code class="filename">ostream</code></td><td align="left"><code class="filename">streambuf</code></td></tr><tr><td align="left"><code class="filename">bitset</code></td><td align="left"><code class="filename">ios</code></td><td align="left"><code class="filename">locale</code></td><td align="left"><code class="filename">queue</code></td><td align="left"><code class="filename">string</code></td></tr><tr><td align="left"><code class="filename">complex</code></td><td align="left"><code class="filename">iosfwd</code></td><td align="left"><code class="filename">map</code></td><td align="left"><code class="filename">set</code></td><td align="left"><code class="filename">typeinfo</code></td></tr><tr><td align="left"><code class="filename">deque</code></td><td align="left"><code class="filename">iostream</code></td><td align="left"><code class="filename">memory</code></td><td align="left"><code class="filename">sstream</code></td><td align="left"><code class="filename">utility</code></td></tr><tr><td align="left"><code class="filename">exception</code></td><td align="left"><code class="filename">istream</code></td><td align="left"><code class="filename">new</code></td><td align="left"><code class="filename">stack</code></td><td align="left"><code class="filename">valarray</code></td></tr><tr><td align="left"><code class="filename">fstream</code></td><td align="left"><code class="filename">iterator</code></td><td align="left"><code class="filename">numeric</code></td><td align="left"><code class="filename">stdexcept</code></td><td align="left"><code class="filename">vector</code></td></tr><tr><td align="left"><code class="filename">functional</code></td><td align="left"><code class="filename">limits</code></td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="id397982"></a><p class="title"><b>Table 3.2. C++ 1998 Library Headers for C Library Facilities</b></p><div class="table-contents"><table summary="C++ 1998 Library Headers for C Library Facilities" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /><col /></colgroup><tbody><tr><td align="left"><code class="filename">cassert</code></td><td align="left"><code class="filename">ciso646</code></td><td align="left"><code class="filename">csetjmp</code></td><td align="left"><code class="filename">cstdio</code></td><td align="left"><code class="filename">ctime</code></td></tr><tr><td align="left"><code class="filename">cctype</code></td><td align="left"><code class="filename">climits</code></td><td align="left"><code class="filename">csignal</code></td><td align="left"><code class="filename">cstdlib</code></td><td align="left"><code class="filename">cwchar</code></td></tr><tr><td align="left"><code class="filename">cerrno</code></td><td align="left"><code class="filename">clocale</code></td><td align="left"><code class="filename">cstdarg</code></td><td align="left"><code class="filename">cstring</code></td><td align="left"><code class="filename">cwctype</code></td></tr><tr><td align="left"><code class="filename">cfloat</code></td><td align="left"><code class="filename">cmath</code></td><td align="left"><code class="filename">cstddef</code></td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p>C++0x include files. These are only available in C++0x compilation mode, ie <code class="code">-std=c++0x</code> or <code class="code">-std=gnu++0x</code>.
|
</p><div class="table"><a id="id424211"></a><p class="title"><b>Table 3.1. C++ 1998 Library Headers</b></p><div class="table-contents"><table summary="C++ 1998 Library Headers" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /><col /></colgroup><tbody><tr><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="filename">iomanip</code></td><td align="left"><code class="filename">list</code></td><td align="left"><code class="filename">ostream</code></td><td align="left"><code class="filename">streambuf</code></td></tr><tr><td align="left"><code class="filename">bitset</code></td><td align="left"><code class="filename">ios</code></td><td align="left"><code class="filename">locale</code></td><td align="left"><code class="filename">queue</code></td><td align="left"><code class="filename">string</code></td></tr><tr><td align="left"><code class="filename">complex</code></td><td align="left"><code class="filename">iosfwd</code></td><td align="left"><code class="filename">map</code></td><td align="left"><code class="filename">set</code></td><td align="left"><code class="filename">typeinfo</code></td></tr><tr><td align="left"><code class="filename">deque</code></td><td align="left"><code class="filename">iostream</code></td><td align="left"><code class="filename">memory</code></td><td align="left"><code class="filename">sstream</code></td><td align="left"><code class="filename">utility</code></td></tr><tr><td align="left"><code class="filename">exception</code></td><td align="left"><code class="filename">istream</code></td><td align="left"><code class="filename">new</code></td><td align="left"><code class="filename">stack</code></td><td align="left"><code class="filename">valarray</code></td></tr><tr><td align="left"><code class="filename">fstream</code></td><td align="left"><code class="filename">iterator</code></td><td align="left"><code class="filename">numeric</code></td><td align="left"><code class="filename">stdexcept</code></td><td align="left"><code class="filename">vector</code></td></tr><tr><td align="left"><code class="filename">functional</code></td><td align="left"><code class="filename">limits</code></td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="id410652"></a><p class="title"><b>Table 3.2. C++ 1998 Library Headers for C Library Facilities</b></p><div class="table-contents"><table summary="C++ 1998 Library Headers for C Library Facilities" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /><col /></colgroup><tbody><tr><td align="left"><code class="filename">cassert</code></td><td align="left"><code class="filename">ciso646</code></td><td align="left"><code class="filename">csetjmp</code></td><td align="left"><code class="filename">cstdio</code></td><td align="left"><code class="filename">ctime</code></td></tr><tr><td align="left"><code class="filename">cctype</code></td><td align="left"><code class="filename">climits</code></td><td align="left"><code class="filename">csignal</code></td><td align="left"><code class="filename">cstdlib</code></td><td align="left"><code class="filename">cwchar</code></td></tr><tr><td align="left"><code class="filename">cerrno</code></td><td align="left"><code class="filename">clocale</code></td><td align="left"><code class="filename">cstdarg</code></td><td align="left"><code class="filename">cstring</code></td><td align="left"><code class="filename">cwctype</code></td></tr><tr><td align="left"><code class="filename">cfloat</code></td><td align="left"><code class="filename">cmath</code></td><td align="left"><code class="filename">cstddef</code></td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p>C++0x include files. These are only available in C++0x compilation mode, i.e. <code class="code">-std=c++0x</code> or <code class="code">-std=gnu++0x</code>.
|
||||||
</p><p></p><div class="table"><a id="id399447"></a><p class="title"><b>Table 3.3. C++ 200x Library Headers</b></p><div class="table-contents"><table summary="C++ 200x Library Headers" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /><col /></colgroup><tbody><tr><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="filename">iomanip</code></td><td align="left"><code class="filename">locale</code></td><td align="left"><code class="filename">regex</code></td><td align="left"><code class="filename">tuple</code></td></tr><tr><td align="left"><code class="filename">array</code></td><td align="left"><code class="filename">ios</code></td><td align="left"><code class="filename">map</code></td><td align="left"><code class="filename">set</code></td><td align="left"><code class="filename">typeinfo</code></td></tr><tr><td align="left"><code class="filename">bitset</code></td><td align="left"><code class="filename">iosfwd</code></td><td align="left"><code class="filename">memory</code></td><td align="left"><code class="filename">sstream</code></td><td align="left"><code class="filename">type_traits</code></td></tr><tr><td align="left"><code class="filename">complex</code></td><td align="left"><code class="filename">iostream</code></td><td align="left"><code class="filename">new</code></td><td align="left"><code class="filename">stack</code></td><td align="left"><code class="filename">unordered_map</code></td></tr><tr><td align="left"><code class="filename">deque</code></td><td align="left"><code class="filename">istream</code></td><td align="left"><code class="filename">numeric</code></td><td align="left"><code class="filename">stdexcept</code></td><td align="left"><code class="filename">unordered_set</code></td></tr><tr><td align="left"><code class="filename">exception</code></td><td align="left"><code class="filename">iterator</code></td><td align="left"><code class="filename">ostream</code></td><td align="left"><code class="filename">streambuf</code></td><td align="left"><code class="filename">utility</code></td></tr><tr><td align="left"><code class="filename">fstream</code></td><td align="left"><code class="filename">limits</code></td><td align="left"><code class="filename">queue</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="filename">valarray</code></td></tr><tr><td align="left"><code class="filename">functional</code></td><td align="left"><code class="filename">list</code></td><td align="left"><code class="filename">random</code></td><td align="left"><code class="filename">system_error</code></td><td align="left"><code class="filename">vector</code></td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="id394222"></a><p class="title"><b>Table 3.4. C++ 200x Library Headers for C Library Facilities</b></p><div class="table-contents"><table summary="C++ 200x Library Headers for C Library Facilities" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><tbody><tr><td align="left"><code class="filename">cassert</code></td><td align="left"><code class="filename">cfloat</code></td><td align="left"><code class="filename">cmath</code></td><td align="left"><code class="filename">cstddef</code></td><td align="left"><code class="filename">ctgmath</code></td></tr><tr><td align="left"><code class="filename">ccomplex</code></td><td align="left"><code class="filename">cinttypes</code></td><td align="left"><code class="filename">csetjmp</code></td><td align="left"><code class="filename">cstdint</code></td><td align="left"><code class="filename">ctime</code></td></tr><tr><td align="left"><code class="filename">cctype</code></td><td align="left"><code class="filename">ciso646</code></td><td align="left"><code class="filename">csignal</code></td><td align="left"><code class="filename">cstdio</code></td><td align="left"><code class="filename">cuchar</code></td></tr><tr><td align="left"><code class="filename">cerrno</code></td><td align="left"><code class="filename">climits</code></td><td align="left"><code class="filename">cstdarg</code></td><td align="left"><code class="filename">cstdlib</code></td><td align="left"><code class="filename">cwchar</code></td></tr><tr><td align="left"><code class="filename">cfenv</code></td><td align="left"><code class="filename">clocale</code></td><td align="left"><code class="filename">cstdbool</code></td><td align="left"><code class="filename">cstring</code></td><td align="left"><code class="filename">cwctype</code></td></tr></tbody></table></div></div><br class="table-break" /><p>
|
</p><p></p><div class="table"><a id="id411001"></a><p class="title"><b>Table 3.3. C++ 200x Library Headers</b></p><div class="table-contents"><table summary="C++ 200x Library Headers" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /><col /></colgroup><tbody><tr><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="filename">iomanip</code></td><td align="left"><code class="filename">locale</code></td><td align="left"><code class="filename">regex</code></td><td align="left"><code class="filename">tuple</code></td></tr><tr><td align="left"><code class="filename">array</code></td><td align="left"><code class="filename">ios</code></td><td align="left"><code class="filename">map</code></td><td align="left"><code class="filename">set</code></td><td align="left"><code class="filename">typeinfo</code></td></tr><tr><td align="left"><code class="filename">bitset</code></td><td align="left"><code class="filename">iosfwd</code></td><td align="left"><code class="filename">memory</code></td><td align="left"><code class="filename">sstream</code></td><td align="left"><code class="filename">type_traits</code></td></tr><tr><td align="left"><code class="filename">complex</code></td><td align="left"><code class="filename">iostream</code></td><td align="left"><code class="filename">new</code></td><td align="left"><code class="filename">stack</code></td><td align="left"><code class="filename">unordered_map</code></td></tr><tr><td align="left"><code class="filename">deque</code></td><td align="left"><code class="filename">istream</code></td><td align="left"><code class="filename">numeric</code></td><td align="left"><code class="filename">stdexcept</code></td><td align="left"><code class="filename">unordered_set</code></td></tr><tr><td align="left"><code class="filename">exception</code></td><td align="left"><code class="filename">iterator</code></td><td align="left"><code class="filename">ostream</code></td><td align="left"><code class="filename">streambuf</code></td><td align="left"><code class="filename">utility</code></td></tr><tr><td align="left"><code class="filename">fstream</code></td><td align="left"><code class="filename">limits</code></td><td align="left"><code class="filename">queue</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="filename">valarray</code></td></tr><tr><td align="left"><code class="filename">functional</code></td><td align="left"><code class="filename">list</code></td><td align="left"><code class="filename">random</code></td><td align="left"><code class="filename">system_error</code></td><td align="left"><code class="filename">vector</code></td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="id456739"></a><p class="title"><b>Table 3.4. C++ 200x Library Headers for C Library Facilities</b></p><div class="table-contents"><table summary="C++ 200x Library Headers for C Library Facilities" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><tbody><tr><td align="left"><code class="filename">cassert</code></td><td align="left"><code class="filename">cfloat</code></td><td align="left"><code class="filename">cmath</code></td><td align="left"><code class="filename">cstddef</code></td><td align="left"><code class="filename">ctgmath</code></td></tr><tr><td align="left"><code class="filename">ccomplex</code></td><td align="left"><code class="filename">cinttypes</code></td><td align="left"><code class="filename">csetjmp</code></td><td align="left"><code class="filename">cstdint</code></td><td align="left"><code class="filename">ctime</code></td></tr><tr><td align="left"><code class="filename">cctype</code></td><td align="left"><code class="filename">ciso646</code></td><td align="left"><code class="filename">csignal</code></td><td align="left"><code class="filename">cstdio</code></td><td align="left"><code class="filename">cuchar</code></td></tr><tr><td align="left"><code class="filename">cerrno</code></td><td align="left"><code class="filename">climits</code></td><td align="left"><code class="filename">cstdarg</code></td><td align="left"><code class="filename">cstdlib</code></td><td align="left"><code class="filename">cwchar</code></td></tr><tr><td align="left"><code class="filename">cfenv</code></td><td align="left"><code class="filename">clocale</code></td><td align="left"><code class="filename">cstdbool</code></td><td align="left"><code class="filename">cstring</code></td><td align="left"><code class="filename">cwctype</code></td></tr></tbody></table></div></div><br class="table-break" /><p>
|
||||||
In addition, TR1 includes as:
|
In addition, TR1 includes as:
|
||||||
</p><div class="table"><a id="id485624"></a><p class="title"><b>Table 3.5. C++ TR1 Library Headers</b></p><div class="table-contents"><table summary="C++ TR1 Library Headers" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><tbody><tr><td align="left"><code class="filename">tr1/array</code></td><td align="left"><code class="filename">tr1/memory</code></td><td align="left"><code class="filename">tr1/regex</code></td><td align="left"><code class="filename">tr1/type_traits</code></td><td align="left"><code class="filename">tr1/unordered_set</code></td></tr><tr><td align="left"><code class="filename">tr1/complex</code></td><td align="left"><code class="filename">tr1/random</code></td><td align="left"><code class="filename">tr1/tuple</code></td><td align="left"><code class="filename">tr1/unordered_map</code></td><td align="left"><code class="filename">tr1/utility</code></td></tr><tr><td align="left"><code class="filename">tr1/functional</code></td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="id407403"></a><p class="title"><b>Table 3.6. C++ TR1 Library Headers for C Library Facilities</b></p><div class="table-contents"><table summary="C++ TR1 Library Headers for C Library Facilities" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><tbody><tr><td align="left"><code class="filename">tr1/cmath</code></td><td align="left"><code class="filename">tr1/cfloat</code></td><td align="left"><code class="filename">tr1/cstdarg</code></td><td align="left"><code class="filename">tr1/cstdio</code></td><td align="left"><code class="filename">tr1/ctime</code></td></tr><tr><td align="left"><code class="filename">tr1/ccomplex</code></td><td align="left"><code class="filename">tr1/cinttypes</code></td><td align="left"><code class="filename">tr1/cstdbool</code></td><td align="left"><code class="filename">tr1/cstdlib</code></td><td align="left"><code class="filename">tr1/cwchar</code></td></tr><tr><td align="left"><code class="filename">tr1/cfenv</code></td><td align="left"><code class="filename">tr1/climits</code></td><td align="left"><code class="filename">tr1/cstdint</code></td><td align="left"><code class="filename">tr1/ctgmath</code></td><td align="left"><code class="filename">tr1/cwctype</code></td></tr></tbody></table></div></div><br class="table-break" /><p>
|
</p><div class="table"><a id="id420313"></a><p class="title"><b>Table 3.5. C++ TR1 Library Headers</b></p><div class="table-contents"><table summary="C++ TR1 Library Headers" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><tbody><tr><td align="left"><code class="filename">tr1/array</code></td><td align="left"><code class="filename">tr1/memory</code></td><td align="left"><code class="filename">tr1/regex</code></td><td align="left"><code class="filename">tr1/type_traits</code></td><td align="left"><code class="filename">tr1/unordered_set</code></td></tr><tr><td align="left"><code class="filename">tr1/complex</code></td><td align="left"><code class="filename">tr1/random</code></td><td align="left"><code class="filename">tr1/tuple</code></td><td align="left"><code class="filename">tr1/unordered_map</code></td><td align="left"><code class="filename">tr1/utility</code></td></tr><tr><td align="left"><code class="filename">tr1/functional</code></td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="id362939"></a><p class="title"><b>Table 3.6. C++ TR1 Library Headers for C Library Facilities</b></p><div class="table-contents"><table summary="C++ TR1 Library Headers for C Library Facilities" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><tbody><tr><td align="left"><code class="filename">tr1/cmath</code></td><td align="left"><code class="filename">tr1/cfloat</code></td><td align="left"><code class="filename">tr1/cstdarg</code></td><td align="left"><code class="filename">tr1/cstdio</code></td><td align="left"><code class="filename">tr1/ctime</code></td></tr><tr><td align="left"><code class="filename">tr1/ccomplex</code></td><td align="left"><code class="filename">tr1/cinttypes</code></td><td align="left"><code class="filename">tr1/cstdbool</code></td><td align="left"><code class="filename">tr1/cstdlib</code></td><td align="left"><code class="filename">tr1/cwchar</code></td></tr><tr><td align="left"><code class="filename">tr1/cfenv</code></td><td align="left"><code class="filename">tr1/climits</code></td><td align="left"><code class="filename">tr1/cstdint</code></td><td align="left"><code class="filename">tr1/ctgmath</code></td><td align="left"><code class="filename">tr1/cwctype</code></td></tr></tbody></table></div></div><br class="table-break" /><p>
|
||||||
Also included are files for the C++ ABI interface:
|
Also included are files for the C++ ABI interface:
|
||||||
</p><div class="table"><a id="id420398"></a><p class="title"><b>Table 3.7. C++ ABI Headers</b></p><div class="table-contents"><table summary="C++ ABI Headers" border="1"><colgroup><col align="left" /><col align="left" /></colgroup><tbody><tr><td align="left"><code class="filename">cxxabi.h</code></td><td align="left"><code class="filename">cxxabi_forced.h</code></td></tr></tbody></table></div></div><br class="table-break" /><p>
|
</p><div class="table"><a id="id429435"></a><p class="title"><b>Table 3.7. C++ ABI Headers</b></p><div class="table-contents"><table summary="C++ ABI Headers" border="1"><colgroup><col align="left" /><col align="left" /></colgroup><tbody><tr><td align="left"><code class="filename">cxxabi.h</code></td><td align="left"><code class="filename">cxxabi_forced.h</code></td></tr></tbody></table></div></div><br class="table-break" /><p>
|
||||||
And a large variety of extensions.
|
And a large variety of extensions.
|
||||||
</p><div class="table"><a id="id414207"></a><p class="title"><b>Table 3.8. Extension Headers</b></p><div class="table-contents"><table summary="Extension Headers" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><tbody><tr><td align="left"><code class="filename">ext/algorithm</code></td><td align="left"><code class="filename">ext/debug_allocator.h</code></td><td align="left"><code class="filename">ext/mt_allocator.h</code></td><td align="left"><code class="filename">ext/pod_char_traits.h</code></td><td align="left"><code class="filename">ext/stdio_sync_filebuf.h</code></td></tr><tr><td align="left"><code class="filename">ext/array_allocator.h</code></td><td align="left"><code class="filename">ext/enc_filebuf.h</code></td><td align="left"><code class="filename">ext/new_allocator.h</code></td><td align="left"><code class="filename">ext/pool_allocator.h</code></td><td align="left"><code class="filename">ext/throw_allocator.h</code></td></tr><tr><td align="left"><code class="filename">ext/atomicity.h</code></td><td align="left"><code class="filename">ext/functional</code></td><td align="left"><code class="filename">ext/numeric</code></td><td align="left"><code class="filename">ext/rb_tree</code></td><td align="left"><code class="filename">ext/typelist.h</code></td></tr><tr><td align="left"><code class="filename">ext/bitmap_allocator.h</code></td><td align="left"><code class="filename">ext/iterator</code></td><td align="left"><code class="filename">ext/numeric_traits.h</code></td><td align="left"><code class="filename">ext/rope</code></td><td align="left"><code class="filename">ext/type_traits.h</code></td></tr><tr><td align="left"><code class="filename">ext/codecvt_specializations.h</code></td><td align="left"><code class="filename">ext/malloc_allocator.h</code></td><td align="left"><code class="filename">ext/pb_ds/assoc_container.h</code></td><td align="left"><code class="filename">ext/slist</code></td><td align="left"><code class="filename">ext/vstring.h</code></td></tr><tr><td align="left"><code class="filename">ext/concurrence.h</code></td><td align="left"><code class="filename">ext/memory</code></td><td align="left"><code class="filename">ext/pb_ds/priority_queue.h</code></td><td align="left"><code class="filename">ext/stdio_filebuf.h</code></td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="id458275"></a><p class="title"><b>Table 3.9. Extension Debug Headers</b></p><div class="table-contents"><table summary="Extension Debug Headers" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><tbody><tr><td align="left"><code class="filename">debug/bitset</code></td><td align="left"><code class="filename">debug/list</code></td><td align="left"><code class="filename">debug/set</code></td><td align="left"><code class="filename">debug/unordered_map</code></td><td align="left"><code class="filename">debug/vector</code></td></tr><tr><td align="left"><code class="filename">debug/deque</code></td><td align="left"><code class="filename">debug/map</code></td><td align="left"><code class="filename">debug/string</code></td><td align="left"><code class="filename">debug/unordered_set</code></td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="id428288"></a><p class="title"><b>Table 3.10. Extension Parallel Headers</b></p><div class="table-contents"><table summary="Extension Parallel Headers" border="1"><colgroup><col align="left" /><col align="left" /></colgroup><tbody><tr><td align="left"><code class="filename">parallel/algorithm</code></td><td align="left"><code class="filename">parallel/numeric</code></td></tr></tbody></table></div></div><br class="table-break" /></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.headers.mixing"></a>Mixing Headers</h3></div></div></div><p> A few simple rules.
|
</p><div class="table"><a id="id490019"></a><p class="title"><b>Table 3.8. Extension Headers</b></p><div class="table-contents"><table summary="Extension Headers" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><tbody><tr><td align="left"><code class="filename">ext/algorithm</code></td><td align="left"><code class="filename">ext/debug_allocator.h</code></td><td align="left"><code class="filename">ext/mt_allocator.h</code></td><td align="left"><code class="filename">ext/pod_char_traits.h</code></td><td align="left"><code class="filename">ext/stdio_sync_filebuf.h</code></td></tr><tr><td align="left"><code class="filename">ext/array_allocator.h</code></td><td align="left"><code class="filename">ext/enc_filebuf.h</code></td><td align="left"><code class="filename">ext/new_allocator.h</code></td><td align="left"><code class="filename">ext/pool_allocator.h</code></td><td align="left"><code class="filename">ext/throw_allocator.h</code></td></tr><tr><td align="left"><code class="filename">ext/atomicity.h</code></td><td align="left"><code class="filename">ext/functional</code></td><td align="left"><code class="filename">ext/numeric</code></td><td align="left"><code class="filename">ext/rb_tree</code></td><td align="left"><code class="filename">ext/typelist.h</code></td></tr><tr><td align="left"><code class="filename">ext/bitmap_allocator.h</code></td><td align="left"><code class="filename">ext/iterator</code></td><td align="left"><code class="filename">ext/numeric_traits.h</code></td><td align="left"><code class="filename">ext/rope</code></td><td align="left"><code class="filename">ext/type_traits.h</code></td></tr><tr><td align="left"><code class="filename">ext/codecvt_specializations.h</code></td><td align="left"><code class="filename">ext/malloc_allocator.h</code></td><td align="left"><code class="filename">ext/pb_ds/assoc_container.h</code></td><td align="left"><code class="filename">ext/slist</code></td><td align="left"><code class="filename">ext/vstring.h</code></td></tr><tr><td align="left"><code class="filename">ext/concurrence.h</code></td><td align="left"><code class="filename">ext/memory</code></td><td align="left"><code class="filename">ext/pb_ds/priority_queue.h</code></td><td align="left"><code class="filename">ext/stdio_filebuf.h</code></td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="id421980"></a><p class="title"><b>Table 3.9. Extension Debug Headers</b></p><div class="table-contents"><table summary="Extension Debug Headers" border="1"><colgroup><col align="left" /><col align="left" /><col align="left" /><col align="left" /><col align="left" /></colgroup><tbody><tr><td align="left"><code class="filename">debug/bitset</code></td><td align="left"><code class="filename">debug/list</code></td><td align="left"><code class="filename">debug/set</code></td><td align="left"><code class="filename">debug/unordered_map</code></td><td align="left"><code class="filename">debug/vector</code></td></tr><tr><td align="left"><code class="filename">debug/deque</code></td><td align="left"><code class="filename">debug/map</code></td><td align="left"><code class="filename">debug/string</code></td><td align="left"><code class="filename">debug/unordered_set</code></td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="id362228"></a><p class="title"><b>Table 3.10. Extension Parallel Headers</b></p><div class="table-contents"><table summary="Extension Parallel Headers" border="1"><colgroup><col align="left" /><col align="left" /></colgroup><tbody><tr><td align="left"><code class="filename">parallel/algorithm</code></td><td align="left"><code class="filename">parallel/numeric</code></td></tr></tbody></table></div></div><br class="table-break" /></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.headers.mixing"></a>Mixing Headers</h3></div></div></div><p> A few simple rules.
|
||||||
</p><p>First, mixing different dialects of the standard headers is not
|
</p><p>First, mixing different dialects of the standard headers is not
|
||||||
possible. It's an all-or-nothing affair. Thus, code like
|
possible. It's an all-or-nothing affair. Thus, code like
|
||||||
</p><pre class="programlisting">
|
</p><pre class="programlisting">
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
<!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.73.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="bk01pt01ch03s02.html" title="Headers" /><link rel="next" href="bk01pt01ch03s04.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="bk01pt01ch03s02.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt01ch03s04.html">Next</a></td></tr></table><hr /></div><div class="sect1" lang="en" xml:lang="en"><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" lang="en" xml:lang="en"><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.73.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="bk01pt01ch03s02.html" title="Headers" /><link rel="next" href="bk01pt01ch03s04.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="bk01pt01ch03s02.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt01ch03s04.html">Next</a></td></tr></table><hr /></div><div class="sect1" lang="en" xml:lang="en"><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" lang="en" xml:lang="en"><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 type="disc"><li><p>std</p><p>The ISO C++ standards specify that "all library entities are defined
|
</p><div class="itemizedlist"><ul type="disc"><li><p>std</p><p>The ISO C++ standards specify that "all library entities are defined
|
||||||
within namespace std." This includes namepaces 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
|
||||||
std::tr1</code>.
|
std::tr1</code>.
|
||||||
</p></li><li><p>abi</p><p>Specified by the C++ ABI. This ABI specifies a number of type and
|
</p></li><li><p>abi</p><p>Specified by the C++ ABI. This ABI specifies a number of type and
|
||||||
|
|
|
||||||
|
|
@ -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></title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" 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="bk01pt02ch04.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</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt02ch04.html">Next</a></td></tr></table><hr /></div><div class="preface" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="id394397"></a></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></title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" 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="bk01pt02ch04.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</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt02ch04.html">Next</a></td></tr></table><hr /></div><div class="preface" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="id490700"></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>
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,6 @@
|
||||||
<code class="classname">string</code> member.
|
<code class="classname">string</code> member.
|
||||||
</p><p>
|
</p><p>
|
||||||
Derived from this are several classes that may have a
|
Derived from this are several classes that may have a
|
||||||
<code class="classname">string</code> member: a full heirarchy can be
|
<code class="classname">string</code> member: a full hierarchy can be
|
||||||
found in the <a class="ulink" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00233.html" target="_top">source documentation</a>.
|
found in the <a class="ulink" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00233.html" target="_top">source documentation</a>.
|
||||||
</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="diagnostics.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="diagnostics.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt03ch07s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part III. Diagnostics </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Adding Data to 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="diagnostics.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="diagnostics.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt03ch07s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part III. Diagnostics </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Adding Data to Exceptions</td></tr></table></div></body></html>
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
class template called <code class="classname">allocator</code>. The
|
class template called <code class="classname">allocator</code>. The
|
||||||
<code class="classname">allocator</code> abstraction is used throughout the
|
<code class="classname">allocator</code> abstraction is used throughout the
|
||||||
library in <code class="classname">string</code>, container classes,
|
library in <code class="classname">string</code>, container classes,
|
||||||
algorithnms, and parts of iostreams. This class, and base classes of
|
algorithms, and parts of iostreams. This class, and base classes of
|
||||||
it, are the superset of available free store (“<span class="quote">heap</span>”)
|
it, are the superset of available free store (“<span class="quote">heap</span>”)
|
||||||
management classes.
|
management classes.
|
||||||
</p><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.req"></a>Requirements</h3></div></div></div><p>
|
</p><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.req"></a>Requirements</h3></div></div></div><p>
|
||||||
|
|
@ -90,7 +90,7 @@
|
||||||
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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.impl"></a>Implementation</h3></div></div></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id419220"></a>Interface Design</h4></div></div></div><p>
|
</p></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.impl"></a>Implementation</h3></div></div></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id425964"></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 support 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
|
||||||
|
|
@ -103,7 +103,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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id480984"></a>Selecting Default Allocation Policy</h4></div></div></div><p>
|
</p></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id424963"></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
|
||||||
|
|
@ -140,7 +140,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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id411194"></a>Disabling Memory Caching</h4></div></div></div><p>
|
</p></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id458581"></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
|
||||||
|
|
@ -161,7 +161,7 @@
|
||||||
directly, for every allocation. (See
|
directly, for every allocation. (See
|
||||||
<code class="filename">include/ext/new_allocator.h</code>, for instance.)
|
<code class="filename">include/ext/new_allocator.h</code>, for instance.)
|
||||||
However, that option would involve changing source code to use
|
However, that option would involve changing source code to use
|
||||||
the a non-default allocator. Another option is to force the
|
a non-default allocator. Another option is to force the
|
||||||
default allocator to remove caching and pools, and to directly
|
default allocator to remove caching and pools, and to directly
|
||||||
allocate with every call of <code class="function">allocate</code> and
|
allocate with every call of <code class="function">allocate</code> and
|
||||||
directly deallocate with every call of
|
directly deallocate with every call of
|
||||||
|
|
@ -245,7 +245,7 @@
|
||||||
<code class="classname">throw_allocator</code>
|
<code class="classname">throw_allocator</code>
|
||||||
</p><p>
|
</p><p>
|
||||||
Includes memory tracking and marking abilities as well as hooks for
|
Includes memory tracking and marking abilities as well as hooks for
|
||||||
throwing exceptinos at configurable intervals (including random,
|
throwing exceptions at configurable intervals (including random,
|
||||||
all, none).
|
all, none).
|
||||||
</p></li><li><p>
|
</p></li><li><p>
|
||||||
<code class="classname">__pool_alloc</code>
|
<code class="classname">__pool_alloc</code>
|
||||||
|
|
@ -282,13 +282,13 @@
|
||||||
</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 threadsafe, while <code class="varname">thr</code> =
|
is 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>, and 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
|
||||||
single big lock. In some situations, this implementation detail
|
single big lock. In some situations, this implementation detail
|
||||||
may result in severe performance degredation.
|
may result in severe performance degradation.
|
||||||
</p><p>
|
</p><p>
|
||||||
(Note that the GCC thread abstraction layer allows us to provide
|
(Note that the GCC thread abstraction layer allows us to provide
|
||||||
safe zero-overhead stubs for the threading routines, if threads
|
safe zero-overhead stubs for the threading routines, if threads
|
||||||
|
|
@ -305,11 +305,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="ulink" href="../ext/ballocator_doc.html" target="_top">here</a>.
|
documentation, found <a class="ulink" href="../ext/ballocator_doc.html" target="_top">here</a>.
|
||||||
</p></li></ol></div></div><div class="bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry"><a id="id413478"></a><p><span class="title"><i>
|
</p></li></ol></div></div><div class="bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry"><a id="id457599"></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"><a id="id415484"></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"><a id="id457613"></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">
|
||||||
|
|
@ -317,28 +317,28 @@
|
||||||
. </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"><a id="id398891"></a><p><span class="title"><i>The Hoard Memory Allocator</i>. </span>
|
. </span></p></div><div class="biblioentry"><a id="id458630"></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"><a id="id413375"></a><p><span class="title"><i>Reconsidering Custom Memory Allocation</i>. </span>
|
. </span></p></div><div class="biblioentry"><a id="id459380"></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"><a id="id425682"></a><p><span class="title"><i>Allocator Types</i>. </span>
|
. </span></p></div><div class="biblioentry"><a id="id470488"></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.langer.camelot.de/Articles/C++Report/Allocators/Allocators.html" target="_top">
|
<a class="ulink" href="http://www.langer.camelot.de/Articles/C++Report/Allocators/Allocators.html" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry"><a id="id420837"></a><p><span class="title"><i>The C++ Programming Language</i>. </span>
|
. </span></p></div><div class="biblioentry"><a id="id454967"></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"><a id="id423539"></a><p><span class="title"><i>Yalloc: A Recycling C++ Allocator</i>. </span>
|
. </span></span></p></div><div class="biblioentry"><a id="id453321"></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><span class="biblioid">
|
<span class="author"><span class="firstname">Felix</span> <span class="surname">Yen</span>. </span><span class="copyright">Copyright © . </span><span class="biblioid">
|
||||||
<a class="ulink" href="http://home.earthlink.net/~brimar/yalloc/" target="_top">
|
<a class="ulink" href="http://home.earthlink.net/~brimar/yalloc/" target="_top">
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
<?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>Chapter 13. String Classes</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="strings.html" title="Part V. Strings" /><link rel="prev" href="strings.html" title="Part V. Strings" /><link rel="next" href="bk01pt05ch13s02.html" title="Case Sensivitity" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 13. String Classes</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="strings.html">Prev</a> </td><th width="60%" align="center">Part V. Strings</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt05ch13s02.html">Next</a></td></tr></table><hr /></div><div class="chapter" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="manual.strings.string"></a>Chapter 13. String Classes</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><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 Sensivitity</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></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="strings.string.simple"></a>Simple Transformations</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>Chapter 13. String Classes</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="strings.html" title="Part V. Strings" /><link rel="prev" href="strings.html" title="Part V. Strings" /><link rel="next" href="bk01pt05ch13s02.html" title="Case Sensitivity" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 13. String Classes</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="strings.html">Prev</a> </td><th width="60%" align="center">Part V. Strings</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt05ch13s02.html">Next</a></td></tr></table><hr /></div><div class="chapter" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="manual.strings.string"></a>Chapter 13. String Classes</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><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></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="strings.string.simple"></a>Simple Transformations</h2></div></div></div><p>
|
||||||
Here are Standard, simple, and portable ways to perform common
|
Here are Standard, simple, and portable ways to perform common
|
||||||
transformations on a <code class="code">string</code> instance, such as
|
transformations on a <code class="code">string</code> instance, such as
|
||||||
"convert to all upper case." The word transformations
|
"convert to all upper case." The word transformations
|
||||||
is especially apt, because the standard template function
|
is especially apt, because the standard template function
|
||||||
<code class="code">transform<></code> is used.
|
<code class="code">transform<></code> is used.
|
||||||
</p><p>
|
</p><p>
|
||||||
This code will go through some iterations. Here's a simiple
|
This code will go through some iterations. Here's a simple
|
||||||
version:
|
version:
|
||||||
</p><pre class="programlisting">
|
</p><pre class="programlisting">
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
@ -86,4 +86,4 @@
|
||||||
str.erase(notwhite+1); </pre><p>Obviously, the calls to <code class="code">find</code> could be inserted directly
|
str.erase(notwhite+1); </pre><p>Obviously, the calls to <code class="code">find</code> could be inserted directly
|
||||||
into the calls to <code class="code">erase</code>, in case your compiler does not
|
into the calls to <code class="code">erase</code>, in case your compiler does not
|
||||||
optimize named temporaries out of existence.
|
optimize named temporaries out of existence.
|
||||||
</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="strings.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="strings.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt05ch13s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part V. Strings </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Case Sensivitity</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="strings.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="strings.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt05ch13s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part V. Strings </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Case Sensitivity</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>Case Sensivitity</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="bk01pt05ch13.html" title="Chapter 13. String Classes" /><link rel="prev" href="bk01pt05ch13.html" title="Chapter 13. String Classes" /><link rel="next" href="bk01pt05ch13s03.html" title="Arbitrary Character Types" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Case Sensivitity</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt05ch13.html">Prev</a> </td><th width="60%" align="center">Chapter 13. String Classes</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt05ch13s03.html">Next</a></td></tr></table><hr /></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="strings.string.case"></a>Case Sensivitity</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>Case Sensitivity</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="bk01pt05ch13.html" title="Chapter 13. String Classes" /><link rel="prev" href="bk01pt05ch13.html" title="Chapter 13. String Classes" /><link rel="next" href="bk01pt05ch13s03.html" title="Arbitrary Character Types" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Case Sensitivity</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt05ch13.html">Prev</a> </td><th width="60%" align="center">Chapter 13. String Classes</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt05ch13s03.html">Next</a></td></tr></table><hr /></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="strings.string.case"></a>Case Sensitivity</h2></div></div></div><p>
|
||||||
</p><p>The well-known-and-if-it-isn't-well-known-it-ought-to-be
|
</p><p>The well-known-and-if-it-isn't-well-known-it-ought-to-be
|
||||||
<a class="ulink" href="http://www.gotw.ca/gotw/" target="_top">Guru of the Week</a>
|
<a class="ulink" href="http://www.gotw.ca/gotw/" target="_top">Guru of the Week</a>
|
||||||
discussions held on Usenet covered this topic in January of 1998.
|
discussions held on Usenet covered this topic in January of 1998.
|
||||||
|
|
|
||||||
|
|
@ -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>Arbitrary Character Types</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="bk01pt05ch13.html" title="Chapter 13. String Classes" /><link rel="prev" href="bk01pt05ch13s02.html" title="Case Sensivitity" /><link rel="next" href="bk01pt05ch13s04.html" title="Tokenizing" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Arbitrary Character Types</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt05ch13s02.html">Prev</a> </td><th width="60%" align="center">Chapter 13. String Classes</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt05ch13s04.html">Next</a></td></tr></table><hr /></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="strings.string.character_types"></a>Arbitrary Character Types</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>Arbitrary Character Types</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="bk01pt05ch13.html" title="Chapter 13. String Classes" /><link rel="prev" href="bk01pt05ch13s02.html" title="Case Sensitivity" /><link rel="next" href="bk01pt05ch13s04.html" title="Tokenizing" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Arbitrary Character Types</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt05ch13s02.html">Prev</a> </td><th width="60%" align="center">Chapter 13. String Classes</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt05ch13s04.html">Next</a></td></tr></table><hr /></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="strings.string.character_types"></a>Arbitrary Character Types</h2></div></div></div><p>
|
||||||
</p><p>The <code class="code">std::basic_string</code> is tantalizingly general, in that
|
</p><p>The <code class="code">std::basic_string</code> is tantalizingly general, in that
|
||||||
it is parameterized on the type of the characters which it holds.
|
it is parameterized on the type of the characters which it holds.
|
||||||
In theory, you could whip up a Unicode character class and instantiate
|
In theory, you could whip up a Unicode character class and instantiate
|
||||||
|
|
@ -54,4 +54,4 @@
|
||||||
nice-looking first attempt</a> turned out to <a class="ulink" href="http://gcc.gnu.org/ml/libstdc++/2002-08/msg00242.html" target="_top">not
|
nice-looking first attempt</a> turned out to <a class="ulink" href="http://gcc.gnu.org/ml/libstdc++/2002-08/msg00242.html" target="_top">not
|
||||||
be conforming C++</a>, due to the rule that CharT must be a POD.
|
be conforming C++</a>, due to the rule that CharT must be a POD.
|
||||||
(See how tricky this is?)
|
(See how tricky this is?)
|
||||||
</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt05ch13s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="bk01pt05ch13.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt05ch13s04.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Case Sensivitity </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Tokenizing</td></tr></table></div></body></html>
|
</p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt05ch13s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="bk01pt05ch13.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="bk01pt05ch13s04.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Case Sensitivity </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> Tokenizing</td></tr></table></div></body></html>
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ thousands separator is in the German locale.
|
||||||
</p><p>
|
</p><p>
|
||||||
Literally, a facet is strictly defined:
|
Literally, a facet is strictly defined:
|
||||||
</p><div class="itemizedlist"><ul type="disc"><li><p>
|
</p><div class="itemizedlist"><ul type="disc"><li><p>
|
||||||
Dontaining the following public data member:
|
Containing the following public data member:
|
||||||
</p><p>
|
</p><p>
|
||||||
<code class="code">static locale::id id;</code>
|
<code class="code">static locale::id id;</code>
|
||||||
</p></li><li><p>
|
</p></li><li><p>
|
||||||
|
|
@ -42,11 +42,11 @@ class id
|
||||||
Provides an index for looking up specific facets.
|
Provides an index for looking up specific facets.
|
||||||
</p></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="locales.locale.design"></a>Design</h3></div></div></div><p>
|
</p></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="locales.locale.design"></a>Design</h3></div></div></div><p>
|
||||||
The major design challenge is fitting an object-orientated and
|
The major design challenge is fitting an object-orientated and
|
||||||
non-global locale design ontop of POSIX and other relevant stanards,
|
non-global locale design on top of POSIX and other relevant standards,
|
||||||
which include the Single Unix (nee X/Open.)
|
which include the Single Unix (nee X/Open.)
|
||||||
</p><p>
|
</p><p>
|
||||||
Because C and earlier versions of POSIX falls down so completely,
|
Because C and earlier versions of POSIX falls down so completely,
|
||||||
portibility is an issue.
|
portability is an issue.
|
||||||
</p></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="locales.locale.impl"></a>Implementation</h3></div></div></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="locale.impl.c"></a>Interacting with "C" locales</h4></div></div></div><div class="itemizedlist"><ul type="disc"><li><p>
|
</p></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="locales.locale.impl"></a>Implementation</h3></div></div></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="locale.impl.c"></a>Interacting with "C" locales</h4></div></div></div><div class="itemizedlist"><ul type="disc"><li><p>
|
||||||
<code class="code">`locale -a`</code> displays available locales.
|
<code class="code">`locale -a`</code> displays available locales.
|
||||||
</p><div class="blockquote"><blockquote class="blockquote"><pre class="programlisting">
|
</p><div class="blockquote"><blockquote class="blockquote"><pre class="programlisting">
|
||||||
|
|
@ -372,7 +372,7 @@ relation (of the C++ locale mechanism) to the C locale mechanism: the
|
||||||
global C locale is modified if a named C++ locale object is set as the
|
global C locale is modified if a named C++ locale object is set as the
|
||||||
global locale" (emphasis Paolo), that is:
|
global locale" (emphasis Paolo), that is:
|
||||||
</p><pre class="programlisting">std::locale::global(std::locale(""));</pre><p>affects the C functions as if the following call was made:</p><pre class="programlisting">std::setlocale(LC_ALL, "");</pre><p>
|
</p><pre class="programlisting">std::locale::global(std::locale(""));</pre><p>affects the C functions as if the following call was made:</p><pre class="programlisting">std::setlocale(LC_ALL, "");</pre><p>
|
||||||
On the other hand, there is *no* viceversa, that is, calling
|
On the other hand, there is *no* vice versa, that is, calling
|
||||||
setlocale has *no* whatsoever on the C++ locale mechanism, in
|
setlocale has *no* whatsoever on the C++ locale mechanism, in
|
||||||
particular on the working of locale(""), which constructs the locale
|
particular on the working of locale(""), which constructs the locale
|
||||||
object from the environment of the running program, that is, in
|
object from the environment of the running program, that is, in
|
||||||
|
|
@ -383,7 +383,7 @@ global locale" (emphasis Paolo), that is:
|
||||||
has already taken place?
|
has already taken place?
|
||||||
</p></li><li><p>
|
</p></li><li><p>
|
||||||
Document how named locales error check when filling data
|
Document how named locales error check when filling data
|
||||||
members. Ie, a fr_FR locale that doesn't have
|
members. I.e., a fr_FR locale that doesn't have
|
||||||
numpunct::truename(): does it use "true"? Or is it a blank
|
numpunct::truename(): does it use "true"? Or is it a blank
|
||||||
string? What's the convention?
|
string? What's the convention?
|
||||||
</p></li><li><p>
|
</p></li><li><p>
|
||||||
|
|
@ -393,27 +393,27 @@ global locale" (emphasis Paolo), that is:
|
||||||
language code and ISO country code (say, "de_DE").
|
language code and ISO country code (say, "de_DE").
|
||||||
</p></li><li><p>
|
</p></li><li><p>
|
||||||
What should non-required facet instantiations do? If the
|
What should non-required facet instantiations do? If the
|
||||||
generic implemenation 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"><div class="titlepage"><div><div><h3 class="title"><a id="locales.locale.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry"><a id="id389722"></a><p><span class="title"><i>
|
</p></li></ul></div></div><div class="bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="locales.locale.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry"><a id="id412273"></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"><a id="id418042"></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"><a id="id398173"></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"><a id="id495535"></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"><a id="id427688"></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"><a id="id434429"></a><p><span class="title"><i>
|
</i>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="id427707"></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"><a id="id434447"></a><p><span class="title"><i>
|
</i>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="id406617"></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.opennc.org/austin/docreg.html" target="_top">
|
<a class="ulink" href="http://www.opennc.org/austin/docreg.html" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry"><a id="id415318"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry"><a id="id471678"></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"><a id="id424745"></a><p><span class="title"><i>
|
. </span></span></p></div><div class="biblioentry"><a id="id414572"></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
|
||||||
|
|
|
||||||
|
|
@ -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>Chapter 15. Facets aka Categories</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="localization.html" title="Part VI. Localization" /><link rel="prev" href="bk01pt06ch14.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="bk01pt06ch14.html">Prev</a> </td><th width="60%" align="center">Part VI. Localization</th><td width="20%" align="right"> <a accesskey="n" href="codecvt.html">Next</a></td></tr></table><hr /></div><div class="chapter" lang="en" xml:lang="en"><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="bk01pt06ch15.html#manual.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="sect2"><a href="bk01pt06ch15.html#facet.ctype.impl">Implementation</a></span></dt><dt><span class="sect2"><a href="bk01pt06ch15.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" lang="en" xml:lang="en"><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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="facet.ctype.impl"></a>Implementation</h3></div></div></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id424267"></a>Specializations</h4></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>Chapter 15. Facets aka Categories</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="localization.html" title="Part VI. Localization" /><link rel="prev" href="bk01pt06ch14.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="bk01pt06ch14.html">Prev</a> </td><th width="60%" align="center">Part VI. Localization</th><td width="20%" align="right"> <a accesskey="n" href="codecvt.html">Next</a></td></tr></table><hr /></div><div class="chapter" lang="en" xml:lang="en"><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="bk01pt06ch15.html#manual.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="sect2"><a href="bk01pt06ch15.html#facet.ctype.impl">Implementation</a></span></dt><dt><span class="sect2"><a href="bk01pt06ch15.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" lang="en" xml:lang="en"><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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="facet.ctype.impl"></a>Implementation</h3></div></div></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id423514"></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
|
||||||
|
|
@ -41,31 +41,31 @@ characters.
|
||||||
this class?
|
this class?
|
||||||
</p></li><li><p>
|
</p></li><li><p>
|
||||||
Get the ctype<wchar_t>::mask stuff under control. Need to
|
Get the ctype<wchar_t>::mask stuff under control. Need to
|
||||||
make some kind of static table, and not do lookup evertime
|
make some kind of static table, and not do lookup every time
|
||||||
somebody hits the do_is... functions. Too bad we can't just
|
somebody hits the do_is... functions. Too bad we can't just
|
||||||
redefine mask for ctype<wchar_t>
|
redefine mask for ctype<wchar_t>
|
||||||
</p></li><li><p>
|
</p></li><li><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"><div class="titlepage"><div><div><h3 class="title"><a id="facet.ctype.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry"><a id="id428438"></a><p><span class="title"><i>
|
</p></li></ul></div></div><div class="bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="facet.ctype.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry"><a id="id397038"></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"><a id="id406217"></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"><a id="id399816"></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"><a id="id406246"></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"><a id="id419755"></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"><a id="id424106"></a><p><span class="title"><i>
|
</i>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="id419773"></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"><a id="id424124"></a><p><span class="title"><i>
|
</i>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="id397810"></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.opennc.org/austin/docreg.html" target="_top">
|
<a class="ulink" href="http://www.opennc.org/austin/docreg.html" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry"><a id="id483804"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry"><a id="id397838"></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"><a id="id428016"></a><p><span class="title"><i>
|
. </span></span></p></div><div class="biblioentry"><a id="id362481"></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
|
||||||
|
|
|
||||||
|
|
@ -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></title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , library , algorithm " /><link rel="start" 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</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt09ch20.html">Next</a></td></tr></table><hr /></div><div class="preface" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="id405802"></a></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></title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , library , algorithm " /><link rel="start" 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</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt09ch20.html">Next</a></td></tr></table><hr /></div><div class="preface" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="id411081"></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="id400605"></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" /><col /><col /></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><td class="auto-generated"> </td><td class="auto-generated"> </td></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><td class="auto-generated"> </td><td class="auto-generated"> </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><td class="auto-generated"> </td><td class="auto-generated"> </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><td class="auto-generated"> </td><td class="auto-generated"> </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><td class="auto-generated"> </td><td class="auto-generated"> </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><td class="auto-generated"> </td><td class="auto-generated"> </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><td class="auto-generated"> </td><td class="auto-generated"> </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><td class="auto-generated"> </td><td class="auto-generated"> </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><td class="auto-generated"> </td><td class="auto-generated"> </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><td class="auto-generated"> </td><td class="auto-generated"> </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><td class="auto-generated"> </td><td class="auto-generated"> </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><td class="auto-generated"> </td><td class="auto-generated"> </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="id391620"></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" /><col /><col /></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><td class="auto-generated"> </td><td class="auto-generated"> </td></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><td class="auto-generated"> </td><td class="auto-generated"> </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><td class="auto-generated"> </td><td class="auto-generated"> </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><td class="auto-generated"> </td><td class="auto-generated"> </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><td class="auto-generated"> </td><td class="auto-generated"> </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><td class="auto-generated"> </td><td class="auto-generated"> </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><td class="auto-generated"> </td><td class="auto-generated"> </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><td class="auto-generated"> </td><td class="auto-generated"> </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><td class="auto-generated"> </td><td class="auto-generated"> </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><td class="auto-generated"> </td><td class="auto-generated"> </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><td class="auto-generated"> </td><td class="auto-generated"> </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><td class="auto-generated"> </td><td class="auto-generated"> </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="id452759"></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" /><col /><col /></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><td class="auto-generated"> </td><td class="auto-generated"> </td></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><td class="auto-generated"> </td><td class="auto-generated"> </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><td class="auto-generated"> </td><td class="auto-generated"> </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><td class="auto-generated"> </td><td class="auto-generated"> </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><td class="auto-generated"> </td><td class="auto-generated"> </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="id417569"></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" /><col /><col /></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><td class="auto-generated"> </td><td class="auto-generated"> </td></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><td class="auto-generated"> </td><td class="auto-generated"> </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><td class="auto-generated"> </td><td class="auto-generated"> </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><td class="auto-generated"> </td><td class="auto-generated"> </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><td class="auto-generated"> </td><td class="auto-generated"> </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>
|
||||||
|
|
|
||||||
|
|
@ -187,7 +187,7 @@ template<typename _Tp, typename _Allocator = allocator<_Tp>
|
||||||
allows release-compiled and debug-compiled code to be linked and
|
allows release-compiled and debug-compiled code to be linked and
|
||||||
executed together without causing unpredictable behavior. This
|
executed together without causing unpredictable behavior. This
|
||||||
guarantee minimizes the recompilation that users are required to
|
guarantee minimizes the recompilation that users are required to
|
||||||
perform, shortening the detect-compile-debug bughunting cycle
|
perform, shortening the detect-compile-debug bug hunting cycle
|
||||||
and making the debug mode easier to incorporate into development
|
and making the debug mode easier to incorporate into development
|
||||||
environments by minimizing dependencies.</p><p>Achieving link- and run-time coexistence is not a trivial
|
environments by minimizing dependencies.</p><p>Achieving link- and run-time coexistence is not a trivial
|
||||||
implementation task. To achieve this goal we required a small
|
implementation task. To achieve this goal we required a small
|
||||||
|
|
|
||||||
|
|
@ -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>Semantics</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" C++ , library , parallel " /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="parallel_mode.html" title="Chapter 31. Parallel Mode" /><link rel="prev" href="parallel_mode.html" title="Chapter 31. Parallel Mode" /><link rel="next" href="bk01pt12ch31s03.html" title="Using" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Semantics</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="parallel_mode.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Parallel Mode</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt12ch31s03.html">Next</a></td></tr></table><hr /></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.parallel_mode.semantics"></a>Semantics</h2></div></div></div><p> The parallel mode STL algorithms are currently not exception-safe,
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Semantics</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" C++ , library , parallel " /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="parallel_mode.html" title="Chapter 31. Parallel Mode" /><link rel="prev" href="parallel_mode.html" title="Chapter 31. Parallel Mode" /><link rel="next" href="bk01pt12ch31s03.html" title="Using" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Semantics</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="parallel_mode.html">Prev</a> </td><th width="60%" align="center">Chapter 31. Parallel Mode</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt12ch31s03.html">Next</a></td></tr></table><hr /></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.parallel_mode.semantics"></a>Semantics</h2></div></div></div><p> The parallel mode STL algorithms are currently not exception-safe,
|
||||||
i. e. user-defined functors must not throw exceptions.
|
i.e. user-defined functors must not throw exceptions.
|
||||||
</p><p> Since the current GCC OpenMP implementation does not support
|
</p><p> Since the current GCC OpenMP implementation does not support
|
||||||
OpenMP parallel regions in concurrent threads,
|
OpenMP parallel regions in concurrent threads,
|
||||||
it is not possible to call parallel STL algorithm in
|
it is not possible to call parallel STL algorithm in
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -27,15 +27,15 @@ namespace std
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</pre><p>But.... why the elipses?
|
</pre><p>But.... why the ellipses?
|
||||||
</p><p> The elipses in the example above represent additional overloads
|
</p><p> The ellipses in the example above represent additional overloads
|
||||||
required for the parallel version of the function. These additional
|
required for the parallel version of the function. These additional
|
||||||
overloads are used to dispatch calls from the ISO C++ function
|
overloads are used to dispatch calls from the ISO C++ function
|
||||||
signature to the appropriate parallel function (or sequential
|
signature to the appropriate parallel function (or sequential
|
||||||
function, if no parallel functions are deemed worthy), based on either
|
function, if no parallel functions are deemed worthy), based on either
|
||||||
compile-time or run-time conditions.
|
compile-time or run-time conditions.
|
||||||
</p><p> Compile-time conditions are referred to as "embarrassingly
|
</p><p> Compile-time conditions are referred to as "embarrassingly
|
||||||
parallel," and are denoted with the appropriate dispatch object, ie
|
parallel," and are denoted with the appropriate dispatch object, i.e.,
|
||||||
one of <code class="code">__gnu_parallel::sequential_tag</code>,
|
one of <code class="code">__gnu_parallel::sequential_tag</code>,
|
||||||
<code class="code">__gnu_parallel::parallel_tag</code>,
|
<code class="code">__gnu_parallel::parallel_tag</code>,
|
||||||
<code class="code">__gnu_parallel::balanced_tag</code>,
|
<code class="code">__gnu_parallel::balanced_tag</code>,
|
||||||
|
|
@ -74,8 +74,6 @@ int main()
|
||||||
const int threads_wanted = 20;
|
const int threads_wanted = 20;
|
||||||
omp_set_dynamic(false);
|
omp_set_dynamic(false);
|
||||||
omp_set_num_threads(threads_wanted);
|
omp_set_num_threads(threads_wanted);
|
||||||
if (omp_get_num_threads() != threads_wanted)
|
|
||||||
abort();
|
|
||||||
|
|
||||||
// Do work.
|
// Do work.
|
||||||
|
|
||||||
|
|
@ -107,7 +105,7 @@ at compile-time.
|
||||||
See <a class="ulink" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00446.html" target="_top"><code class="filename">compiletime_settings.h</code></a> and
|
See <a class="ulink" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00446.html" target="_top"><code class="filename">compiletime_settings.h</code></a> and
|
||||||
See <a class="ulink" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00505.html" target="_top"><code class="filename">features.h</code></a> for details.
|
See <a class="ulink" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00505.html" target="_top"><code class="filename">features.h</code></a> for details.
|
||||||
</p></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="parallel_mode.design.tuning.settings"></a>Run Time Settings and Defaults</h4></div></div></div><p>
|
</p></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="parallel_mode.design.tuning.settings"></a>Run Time Settings and Defaults</h4></div></div></div><p>
|
||||||
The default parallization strategy, the choice of specific algorithm
|
The default parallelization strategy, the choice of specific algorithm
|
||||||
strategy, the minimum threshold limits for individual parallel
|
strategy, the minimum threshold limits for individual parallel
|
||||||
algorithms, and aspects of the underlying hardware can be specified as
|
algorithms, and aspects of the underlying hardware can be specified as
|
||||||
desired via manipulation
|
desired via manipulation
|
||||||
|
|
@ -120,7 +118,7 @@ value of enum <span class="type">__gnu_parallel::_AlgorithmStrategy</span>
|
||||||
type. Choices
|
type. Choices
|
||||||
include: <span class="type">heuristic</span>, <span class="type">force_sequential</span>,
|
include: <span class="type">heuristic</span>, <span class="type">force_sequential</span>,
|
||||||
and <span class="type">force_parallel</span>. The default is
|
and <span class="type">force_parallel</span>. The default is
|
||||||
implementation-deduced, ie <span class="type">heuristic</span>.
|
implementation-deduced, i.e. <span class="type">heuristic</span>.
|
||||||
</p><p>
|
</p><p>
|
||||||
Next, the sub-choices for algorithm implementation. Specific
|
Next, the sub-choices for algorithm implementation. Specific
|
||||||
algorithms like <code class="function">find</code> or <code class="function">sort</code>
|
algorithms like <code class="function">find</code> or <code class="function">sort</code>
|
||||||
|
|
@ -133,7 +131,7 @@ enum <span class="type">__gnu_parallel::_SortAlgorithm</span>: <span class="type
|
||||||
or <span class="type">QS_BALANCED</span>.
|
or <span class="type">QS_BALANCED</span>.
|
||||||
</p><p>
|
</p><p>
|
||||||
Likewise for setting the minimal threshold for algorithm
|
Likewise for setting the minimal threshold for algorithm
|
||||||
paralleization. Parallelism always incurs some overhead. Thus, it is
|
parallelization. Parallelism always incurs some overhead. Thus, it is
|
||||||
not helpful to parallelize operations on very small sets of
|
not helpful to parallelize operations on very small sets of
|
||||||
data. Because of this, measures are taken to avoid parallelizing below
|
data. Because of this, measures are taken to avoid parallelizing below
|
||||||
a certain, pre-determined threshold. For each algorithm, a minimum
|
a certain, pre-determined threshold. For each algorithm, a minimum
|
||||||
|
|
|
||||||
|
|
@ -10,15 +10,15 @@
|
||||||
<strong class="userinput"><code>make check-parallel</code></strong>
|
<strong class="userinput"><code>make check-parallel</code></strong>
|
||||||
</pre><p>
|
</pre><p>
|
||||||
The log and summary files for conformance testing are in the
|
The log and summary files for conformance testing are in the
|
||||||
<code class="code">testsuite/parallel</code> directory.
|
<code class="filename">testsuite/parallel</code> directory.
|
||||||
</p><p>
|
</p><p>
|
||||||
To run the performance tests with the parallel mode active,
|
To run the performance tests with the parallel mode active,
|
||||||
</p><pre class="screen">
|
</p><pre class="screen">
|
||||||
<strong class="userinput"><code>check-performance-parallel</code></strong>
|
<strong class="userinput"><code>make check-performance-parallel</code></strong>
|
||||||
</pre><p>
|
</pre><p>
|
||||||
The result file for performance testing are in the
|
The result file for performance testing are in the
|
||||||
<code class="code">testsuite</code> directory, in the file
|
<code class="filename">testsuite</code> directory, in the file
|
||||||
<code class="code">libstdc++_performance.sum</code>. In addition, the
|
<code class="filename">libstdc++_performance.sum</code>. In addition, the
|
||||||
policy-based containers have their own visualizations, which have
|
policy-based containers have their own visualizations, which have
|
||||||
additional software dependencies than the usual bare-boned text
|
additional software dependencies than the usual bare-boned text
|
||||||
file, and can be generated by using the <code class="code">make
|
file, and can be generated by using the <code class="code">make
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
</p><p>25.3 (sorting 'n' heaps 'n' stuff) is extended with some helper
|
</p><p>25.3 (sorting 'n' heaps 'n' stuff) is extended with some helper
|
||||||
predicates. Look in the doxygen-generated pages for notes on these.
|
predicates. Look in the doxygen-generated pages for notes on these.
|
||||||
</p><div class="itemizedlist"><ul type="disc"><li><p><code class="code">is_heap</code> tests whether or not a range is a heap.</p></li><li><p><code class="code">is_sorted</code> tests whether or not a range is sorted in
|
</p><div class="itemizedlist"><ul type="disc"><li><p><code class="code">is_heap</code> tests whether or not a range is a heap.</p></li><li><p><code class="code">is_sorted</code> tests whether or not a range is sorted in
|
||||||
nondescending order.</p></li></ul></div><p>25.3.8 (lexigraphical_compare) is extended with
|
nondescending order.</p></li></ul></div><p>25.3.8 (lexicographical_compare) is extended with
|
||||||
</p><pre class="programlisting">
|
</p><pre class="programlisting">
|
||||||
lexicographical_compare_3way(_InputIter1 first1, _InputIter1 last1,
|
lexicographical_compare_3way(_InputIter1 first1, _InputIter1 last1,
|
||||||
_InputIter2 first2, _InputIter2 last2)</pre><p>which does... what?
|
_InputIter2 first2, _InputIter2 last2)</pre><p>which does... what?
|
||||||
|
|
|
||||||
|
|
@ -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>Chapter 39. Demangling</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="extensions.html" title="Part XII. Extensions" /><link rel="prev" href="bk01pt12ch38.html" title="Chapter 38. Input and Output" /><link rel="next" href="concurrency.html" title="Chapter 40. Concurrency" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 39. Demangling</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt12ch38.html">Prev</a> </td><th width="60%" align="center">Part XII. Extensions</th><td width="20%" align="right"> <a accesskey="n" href="concurrency.html">Next</a></td></tr></table><hr /></div><div class="chapter" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.demangle"></a>Chapter 39. Demangling</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>Chapter 39. Demangling</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="extensions.html" title="Part XII. Extensions" /><link rel="prev" href="bk01pt12ch38.html" title="Chapter 38. Input and Output" /><link rel="next" href="concurrency.html" title="Chapter 40. Concurrency" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 39. Demangling</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt12ch38.html">Prev</a> </td><th width="60%" align="center">Part XII. Extensions</th><td width="20%" align="right"> <a accesskey="n" href="concurrency.html">Next</a></td></tr></table><hr /></div><div class="chapter" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.demangle"></a>Chapter 39. Demangling</h2></div></div></div><p>
|
||||||
Transforming C++ ABI itentifiers (like RTTI symbols) into the
|
Transforming C++ ABI identifiers (like RTTI symbols) into the
|
||||||
original C++ source identifiers is called
|
original C++ source identifiers is called
|
||||||
“<span class="quote">demangling.</span>”
|
“<span class="quote">demangling.</span>”
|
||||||
</p><p>
|
</p><p>
|
||||||
|
|
|
||||||
|
|
@ -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>Implementation</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="concurrency.html" title="Chapter 40. Concurrency" /><link rel="prev" href="concurrency.html" title="Chapter 40. Concurrency" /><link rel="next" href="bk01pt12ch40s03.html" title="Use" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Implementation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="concurrency.html">Prev</a> </td><th width="60%" align="center">Chapter 40. Concurrency</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt12ch40s03.html">Next</a></td></tr></table><hr /></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.concurrency.impl"></a>Implementation</h2></div></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.impl.atomic_fallbacks"></a>Using Builitin Atomic Functions</h3></div></div></div><p>The functions for atomic operations described above are either
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Implementation</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="concurrency.html" title="Chapter 40. Concurrency" /><link rel="prev" href="concurrency.html" title="Chapter 40. Concurrency" /><link rel="next" href="bk01pt12ch40s03.html" title="Use" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Implementation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="concurrency.html">Prev</a> </td><th width="60%" align="center">Chapter 40. Concurrency</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt12ch40s03.html">Next</a></td></tr></table><hr /></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.concurrency.impl"></a>Implementation</h2></div></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.impl.atomic_fallbacks"></a>Using Builtin Atomic Functions</h3></div></div></div><p>The functions for atomic operations described above are either
|
||||||
implemented via compiler intrinsics (if the underlying host is
|
implemented via compiler intrinsics (if the underlying host is
|
||||||
capable) or by library fallbacks.</p><p>Compiler intrinsics (builtins) are always preferred. However, as
|
capable) or by library fallbacks.</p><p>Compiler intrinsics (builtins) are always preferred. However, as
|
||||||
the compiler builtins for atomics are not universally implemented,
|
the compiler builtins for atomics are not universally implemented,
|
||||||
|
|
@ -22,7 +22,7 @@ hardware, hand-crafted assembly is selected. This is the case for the following
|
||||||
</p><div class="itemizedlist"><ul type="disc"><li><p>cris</p></li><li><p>hppa</p></li><li><p>i386</p></li><li><p>i486</p></li><li><p>m48k</p></li><li><p>mips</p></li><li><p>sparc</p></li></ul></div><p>And for the rest, a simulated atomic lock via pthreads.
|
</p><div class="itemizedlist"><ul type="disc"><li><p>cris</p></li><li><p>hppa</p></li><li><p>i386</p></li><li><p>i486</p></li><li><p>m48k</p></li><li><p>mips</p></li><li><p>sparc</p></li></ul></div><p>And for the rest, a simulated atomic lock via pthreads.
|
||||||
</p><p> Detailed information about compiler intrinsics for atomic operations can be found in the GCC <a class="ulink" href="http://gcc.gnu.org/onlinedocs/gcc/Atomic-Builtins.html" target="_top"> documentation</a>.
|
</p><p> Detailed information about compiler intrinsics for atomic operations can be found in the GCC <a class="ulink" href="http://gcc.gnu.org/onlinedocs/gcc/Atomic-Builtins.html" target="_top"> documentation</a>.
|
||||||
</p><p> More details on the library fallbacks from the porting <a class="ulink" href="http://gcc.gnu.org/onlinedocs/libstdc++/17_intro/porting.html#Thread%20safety" target="_top">section</a>.
|
</p><p> More details on the library fallbacks from the porting <a class="ulink" href="http://gcc.gnu.org/onlinedocs/libstdc++/17_intro/porting.html#Thread%20safety" target="_top">section</a>.
|
||||||
</p></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.impl.thread"></a>Thread Abstraction</h3></div></div></div><p>A thin layer above IEEE 1003.1 (ie pthreads) is used to abstract
|
</p></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.impl.thread"></a>Thread Abstraction</h3></div></div></div><p>A thin layer above IEEE 1003.1 (i.e. pthreads) is used to abstract
|
||||||
the thread interface for GCC. This layer is called "gthread," and is
|
the thread interface for GCC. This layer is called "gthread," and is
|
||||||
comprised of one header file that wraps the host's default thread layer with
|
comprised of one header file that wraps the host's default thread layer with
|
||||||
a POSIX-like interface.
|
a POSIX-like interface.
|
||||||
|
|
|
||||||
|
|
@ -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></title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" 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="bk01pt12ch29.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</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt12ch29.html">Next</a></td></tr></table><hr /></div><div class="preface" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="id516952"></a></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></title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" 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="bk01pt12ch29.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</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt12ch29.html">Next</a></td></tr></table><hr /></div><div class="preface" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="id418164"></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.
|
||||||
|
|
|
||||||
|
|
@ -111,7 +111,7 @@ UCS2, UCS4, UNICODE, UNICODEBIG, UNICODELIcodeLE, US-ASCII, US, UTF-8,
|
||||||
UTF-16, UTF8, UTF16).
|
UTF-16, UTF8, UTF16).
|
||||||
</pre></blockquote></div><p>
|
</pre></blockquote></div><p>
|
||||||
For iconv-based implementations, string literals for each of the
|
For iconv-based implementations, string literals for each of the
|
||||||
encodings (ie. "UCS-2" and "UTF-8") are necessary,
|
encodings (i.e. "UCS-2" and "UTF-8") are necessary,
|
||||||
although for other,
|
although for other,
|
||||||
non-iconv implementations a table of enumerated values or some other
|
non-iconv implementations a table of enumerated values or some other
|
||||||
mechanism may be required.
|
mechanism may be required.
|
||||||
|
|
@ -130,7 +130,7 @@ mechanism may be required.
|
||||||
conversion descriptor encodes more information than a simple encoding
|
conversion descriptor encodes more information than a simple encoding
|
||||||
state type.
|
state type.
|
||||||
</p></li><li><p>
|
</p></li><li><p>
|
||||||
Conversion descriptors for both directions of encoding. (ie, both
|
Conversion descriptors for both directions of encoding. (i.e., both
|
||||||
UCS-2 to UTF-8 and UTF-8 to UCS-2.)
|
UCS-2 to UTF-8 and UTF-8 to UCS-2.)
|
||||||
</p></li><li><p>
|
</p></li><li><p>
|
||||||
Something to indicate if the conversion requested if valid.
|
Something to indicate if the conversion requested if valid.
|
||||||
|
|
@ -179,7 +179,7 @@ The two required specializations are implemented as follows:
|
||||||
codecvt<char, char, mbstate_t>
|
codecvt<char, char, mbstate_t>
|
||||||
</code>
|
</code>
|
||||||
</p><p>
|
</p><p>
|
||||||
This is a degenerate (ie, does nothing) specialization. Implementing
|
This is a degenerate (i.e., does nothing) specialization. Implementing
|
||||||
this was a piece of cake.
|
this was a piece of cake.
|
||||||
</p><p>
|
</p><p>
|
||||||
<code class="code">
|
<code class="code">
|
||||||
|
|
@ -337,41 +337,41 @@ codecvt usage.
|
||||||
</p></li><li><p>
|
</p></li><li><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"><div class="titlepage"><div><div><h3 class="title"><a id="facet.codecvt.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry"><a id="id400718"></a><p><span class="title"><i>
|
</p></li></ul></div></li></ul></div></div><div class="bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="facet.codecvt.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry"><a id="id394270"></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"><a id="id487971"></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"><a id="id464999"></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"><a id="id452178"></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"><a id="id465028"></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"><a id="id452196"></a><p><span class="title"><i>
|
</i>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="id426183"></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"><a id="id461282"></a><p><span class="title"><i>
|
</i>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="id426202"></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.opennc.org/austin/docreg.html" target="_top">
|
<a class="ulink" href="http://www.opennc.org/austin/docreg.html" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry"><a id="id461308"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry"><a id="id402703"></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"><a id="id494830"></a><p><span class="title"><i>
|
. </span></span></p></div><div class="biblioentry"><a id="id413189"></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"><a id="id417572"></a><p><span class="title"><i>
|
. </span></span></p></div><div class="biblioentry"><a id="id427920"></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"><a id="id417604"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry"><a id="id458138"></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="ftp://ftp.ilog.fr/pub/Users/haible/utf8/Unicode-HOWTO.html" target="_top">
|
<a class="ulink" href="ftp://ftp.ilog.fr/pub/Users/haible/utf8/Unicode-HOWTO.html" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry"><a id="id427552"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry"><a id="id458167"></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">
|
||||||
|
|
|
||||||
|
|
@ -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>Chapter 40. Concurrency</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="extensions.html" title="Part XII. Extensions" /><link rel="prev" href="bk01pt12ch39.html" title="Chapter 39. Demangling" /><link rel="next" href="bk01pt12ch40s02.html" title="Implementation" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 40. Concurrency</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt12ch39.html">Prev</a> </td><th width="60%" align="center">Part XII. Extensions</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt12ch40s02.html">Next</a></td></tr></table><hr /></div><div class="chapter" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.concurrency"></a>Chapter 40. Concurrency</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="concurrency.html#manual.ext.concurrency.design">Design</a></span></dt><dd><dl><dt><span class="sect2"><a href="concurrency.html#manual.ext.concurrency.design.threads">Interface to Locks and Mutexes</a></span></dt><dt><span class="sect2"><a href="concurrency.html#manual.ext.concurrency.design.atomics">Interface to Atomic Functions</a></span></dt></dl></dd><dt><span class="sect1"><a href="bk01pt12ch40s02.html">Implementation</a></span></dt><dd><dl><dt><span class="sect2"><a href="bk01pt12ch40s02.html#manual.ext.concurrency.impl.atomic_fallbacks">Using Builitin Atomic Functions</a></span></dt><dt><span class="sect2"><a href="bk01pt12ch40s02.html#manual.ext.concurrency.impl.thread">Thread Abstraction</a></span></dt></dl></dd><dt><span class="sect1"><a href="bk01pt12ch40s03.html">Use</a></span></dt></dl></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.concurrency.design"></a>Design</h2></div></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.design.threads"></a>Interface to Locks and Mutexes</h3></div></div></div><p>The file <ext/concurrence.h> contains all the higher-level
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 40. Concurrency</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , library " /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="extensions.html" title="Part XII. Extensions" /><link rel="prev" href="bk01pt12ch39.html" title="Chapter 39. Demangling" /><link rel="next" href="bk01pt12ch40s02.html" title="Implementation" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 40. Concurrency</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt12ch39.html">Prev</a> </td><th width="60%" align="center">Part XII. Extensions</th><td width="20%" align="right"> <a accesskey="n" href="bk01pt12ch40s02.html">Next</a></td></tr></table><hr /></div><div class="chapter" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.concurrency"></a>Chapter 40. Concurrency</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="concurrency.html#manual.ext.concurrency.design">Design</a></span></dt><dd><dl><dt><span class="sect2"><a href="concurrency.html#manual.ext.concurrency.design.threads">Interface to Locks and Mutexes</a></span></dt><dt><span class="sect2"><a href="concurrency.html#manual.ext.concurrency.design.atomics">Interface to Atomic Functions</a></span></dt></dl></dd><dt><span class="sect1"><a href="bk01pt12ch40s02.html">Implementation</a></span></dt><dd><dl><dt><span class="sect2"><a href="bk01pt12ch40s02.html#manual.ext.concurrency.impl.atomic_fallbacks">Using Builtin Atomic Functions</a></span></dt><dt><span class="sect2"><a href="bk01pt12ch40s02.html#manual.ext.concurrency.impl.thread">Thread Abstraction</a></span></dt></dl></dd><dt><span class="sect1"><a href="bk01pt12ch40s03.html">Use</a></span></dt></dl></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.concurrency.design"></a>Design</h2></div></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.design.threads"></a>Interface to Locks and Mutexes</h3></div></div></div><p>The file <ext/concurrence.h> contains all the higher-level
|
||||||
constructs for playing with threads. In contrast to the atomics layer,
|
constructs for playing with threads. In contrast to the atomics layer,
|
||||||
the concurrence layer consists largely of types. All types are defined within <code class="code">namespace __gnu_cxx</code>.
|
the concurrence layer consists largely of types. All types are defined within <code class="code">namespace __gnu_cxx</code>.
|
||||||
</p><p>
|
</p><p>
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -133,7 +133,7 @@ model.
|
||||||
library locale support is necessary for more than just the
|
library locale support is necessary for more than just the
|
||||||
<code class="code">LC_MESSAGES</code> mask: <code class="code">LC_CTYPE</code> is also
|
<code class="code">LC_MESSAGES</code> mask: <code class="code">LC_CTYPE</code> is also
|
||||||
necessary. To avoid any unpleasantness, all bits of the "C" mask
|
necessary. To avoid any unpleasantness, all bits of the "C" mask
|
||||||
(ie <code class="code">LC_ALL</code>) are set before retrieving messages.
|
(i.e. <code class="code">LC_ALL</code>) are set before retrieving messages.
|
||||||
</p><p>
|
</p><p>
|
||||||
Making the message catalogs can be initially tricky, but become
|
Making the message catalogs can be initially tricky, but become
|
||||||
quite simple with practice. For complete info, see the gettext
|
quite simple with practice. For complete info, see the gettext
|
||||||
|
|
@ -205,7 +205,7 @@ void test01()
|
||||||
There are issues with gettext needing the global locale set
|
There are issues with gettext needing the global locale set
|
||||||
to extract a message. This dependence on the global locale
|
to extract a message. This dependence on the global locale
|
||||||
makes the current "gnu" model non MT-safe. Future versions
|
makes the current "gnu" model non MT-safe. Future versions
|
||||||
of glibc, ie glibc 2.3.x will fix this, and the C++ library
|
of glibc, i.e. glibc 2.3.x will fix this, and the C++ library
|
||||||
bits are already in place.
|
bits are already in place.
|
||||||
</p></li></ul></div></li><li><p>
|
</p></li></ul></div></li><li><p>
|
||||||
Development versions of the GNU "C" library, glibc 2.3 will allow
|
Development versions of the GNU "C" library, glibc 2.3 will allow
|
||||||
|
|
@ -218,7 +218,7 @@ void test01()
|
||||||
library functionality.
|
library functionality.
|
||||||
</p></li><li><p>
|
</p></li><li><p>
|
||||||
At some point in the near future, std::numpunct will probably use
|
At some point in the near future, std::numpunct will probably use
|
||||||
std::messages facilities to implement truename/falename
|
std::messages facilities to implement truename/falsename
|
||||||
correctly. This is currently not done, but entries in
|
correctly. This is currently not done, but entries in
|
||||||
libstdc++.pot have already been made for "true" and "false" string
|
libstdc++.pot have already been made for "true" and "false" string
|
||||||
literals, so all that remains is the std::numpunct coding and the
|
literals, so all that remains is the std::numpunct coding and the
|
||||||
|
|
@ -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"><div class="titlepage"><div><div><h3 class="title"><a id="facet.messages.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry"><a id="id486645"></a><p><span class="title"><i>
|
</p></li></ul></div></div><div class="bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="facet.messages.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry"><a id="id413448"></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"><a id="id420122"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry"><a id="id460385"></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"><a id="id420151"></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"><a id="id434210"></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"><a id="id483860"></a><p><span class="title"><i>
|
</i>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="id434229"></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"><a id="id483878"></a><p><span class="title"><i>
|
</i>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="id480692"></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.opennc.org/austin/docreg.html" target="_top">
|
<a class="ulink" href="http://www.opennc.org/austin/docreg.html" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry"><a id="id428875"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry"><a id="id480719"></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"><a id="id420793"></a><p><span class="title"><i>
|
. </span></span></p></div><div class="biblioentry"><a id="id410108"></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"><a id="id487716"></a><p><span class="title"><i>
|
. </span></span></p></div><div class="biblioentry"><a id="id405725"></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/j2se/1.3/docs/api" target="_top">
|
<a class="ulink" href="http://java.sun.com/j2se/1.3/docs/api" target="_top">
|
||||||
</a>
|
</a>
|
||||||
. </span></p></div><div class="biblioentry"><a id="id487737"></a><p><span class="title"><i>
|
. </span></p></div><div class="biblioentry"><a id="id421361"></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">
|
||||||
|
|
|
||||||
|
|
@ -4,18 +4,17 @@
|
||||||
implementation of many algorithms the C++ Standard Library.
|
implementation of many algorithms the C++ Standard Library.
|
||||||
</p><p>
|
</p><p>
|
||||||
Several of the standard algorithms, for instance
|
Several of the standard algorithms, for instance
|
||||||
<code class="code">std::sort</code>, are made parallel using OpenMP
|
<code class="function">std::sort</code>, are made parallel using OpenMP
|
||||||
annotations. These parallel mode constructs and can be invoked by
|
annotations. These parallel mode constructs and can be invoked by
|
||||||
explicit source declaration or by compiling existing sources with a
|
explicit source declaration or by compiling existing sources with a
|
||||||
specific compiler flag.
|
specific compiler flag.
|
||||||
</p><div class="sect1" lang="en" xml:lang="en"><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" lang="en" xml:lang="en"><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="code"><numeric></code> are included in the parallel mode:</p><div class="itemizedlist"><ul type="disc"><li><p><code class="code">std::accumulate</code></p></li><li><p><code class="code">std::adjacent_difference</code></p></li><li><p><code class="code">std::inner_product</code></p></li><li><p><code class="code">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 type="disc"><li><p><code class="function">std::accumulate</code></p></li><li><p><code class="function">std::adjacent_difference</code></p></li><li><p><code class="function">std::inner_product</code></p></li><li><p><code class="function">std::partial_sum</code></p></li></ul></div><p>The following library components in the include
|
||||||
<code class="code"><algorithm></code> are included in the parallel mode:</p><div class="itemizedlist"><ul type="disc"><li><p><code class="code">std::adjacent_find</code></p></li><li><p><code class="code">std::count</code></p></li><li><p><code class="code">std::count_if</code></p></li><li><p><code class="code">std::equal</code></p></li><li><p><code class="code">std::find</code></p></li><li><p><code class="code">std::find_if</code></p></li><li><p><code class="code">std::find_first_of</code></p></li><li><p><code class="code">std::for_each</code></p></li><li><p><code class="code">std::generate</code></p></li><li><p><code class="code">std::generate_n</code></p></li><li><p><code class="code">std::lexicographical_compare</code></p></li><li><p><code class="code">std::mismatch</code></p></li><li><p><code class="code">std::search</code></p></li><li><p><code class="code">std::search_n</code></p></li><li><p><code class="code">std::transform</code></p></li><li><p><code class="code">std::replace</code></p></li><li><p><code class="code">std::replace_if</code></p></li><li><p><code class="code">std::max_element</code></p></li><li><p><code class="code">std::merge</code></p></li><li><p><code class="code">std::min_element</code></p></li><li><p><code class="code">std::nth_element</code></p></li><li><p><code class="code">std::partial_sort</code></p></li><li><p><code class="code">std::partition</code></p></li><li><p><code class="code">std::random_shuffle</code></p></li><li><p><code class="code">std::set_union</code></p></li><li><p><code class="code">std::set_intersection</code></p></li><li><p><code class="code">std::set_symmetric_difference</code></p></li><li><p><code class="code">std::set_difference</code></p></li><li><p><code class="code">std::sort</code></p></li><li><p><code class="code">std::stable_sort</code></p></li><li><p><code class="code">std::unique_copy</code></p></li></ul></div><p>The following library components in the includes
|
<code class="filename">algorithm</code> are included in the parallel mode:</p><div class="itemizedlist"><ul type="disc"><li><p><code class="function">std::adjacent_find</code></p></li><li><p><code class="function">std::count</code></p></li><li><p><code class="function">std::count_if</code></p></li><li><p><code class="function">std::equal</code></p></li><li><p><code class="function">std::find</code></p></li><li><p><code class="function">std::find_if</code></p></li><li><p><code class="function">std::find_first_of</code></p></li><li><p><code class="function">std::for_each</code></p></li><li><p><code class="function">std::generate</code></p></li><li><p><code class="function">std::generate_n</code></p></li><li><p><code class="function">std::lexicographical_compare</code></p></li><li><p><code class="function">std::mismatch</code></p></li><li><p><code class="function">std::search</code></p></li><li><p><code class="function">std::search_n</code></p></li><li><p><code class="function">std::transform</code></p></li><li><p><code class="function">std::replace</code></p></li><li><p><code class="function">std::replace_if</code></p></li><li><p><code class="function">std::max_element</code></p></li><li><p><code class="function">std::merge</code></p></li><li><p><code class="function">std::min_element</code></p></li><li><p><code class="function">std::nth_element</code></p></li><li><p><code class="function">std::partial_sort</code></p></li><li><p><code class="function">std::partition</code></p></li><li><p><code class="function">std::random_shuffle</code></p></li><li><p><code class="function">std::set_union</code></p></li><li><p><code class="function">std::set_intersection</code></p></li><li><p><code class="function">std::set_symmetric_difference</code></p></li><li><p><code class="function">std::set_difference</code></p></li><li><p><code class="function">std::sort</code></p></li><li><p><code class="function">std::stable_sort</code></p></li><li><p><code class="function">std::unique_copy</code></p></li></ul></div></div><div class="bibliography"><div class="titlepage"><div><div><h2 class="title"><a id="parallel_mode.biblio"></a>Bibliography</h2></div></div></div><div class="biblioentry"><a id="id459041"></a><p><span class="title"><i>
|
||||||
<code class="code"><set></code> and <code class="code"><map></code> are included in the parallel mode:</p><div class="itemizedlist"><ul type="disc"><li><p><code class="code">std::(multi_)map/set<T>::(multi_)map/set(Iterator begin, Iterator end)</code> (bulk construction)</p></li><li><p><code class="code">std::(multi_)map/set<T>::insert(Iterator begin, Iterator end)</code> (bulk insertion)</p></li></ul></div></div><div class="bibliography"><div class="titlepage"><div><div><h2 class="title"><a id="parallel_mode.biblio"></a>Bibliography</h2></div></div></div><div class="biblioentry"><a id="id343037"></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"><a id="id343084"></a><p><span class="title"><i>
|
. </span></span></p></div><div class="biblioentry"><a id="id484021"></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)
|
||||||
|
|
|
||||||
|
|
@ -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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="shared_ptr.impl"></a>Implementation</h3></div></div></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id461761"></a>Class Hierarchy</h4></div></div></div><p>
|
</p></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="shared_ptr.impl"></a>Implementation</h3></div></div></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id407519"></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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id360970"></a>Thread Safety</h4></div></div></div><p>
|
</p></dd></dl></div></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id419862"></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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id396141"></a>Selecting Lock Policy</h4></div></div></div><p>
|
</p></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id395234"></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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id420953"></a>Dual C++0x and TR1 Implementation</h4></div></div></div><p>
|
</p></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id427440"></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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id454146"></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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id420169"></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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="shared_ptr.using"></a>Use</h3></div></div></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id404984"></a>Examples</h4></div></div></div><p>
|
</p></dd></dl></div></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="shared_ptr.using"></a>Use</h3></div></div></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id457752"></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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id398405"></a>Unresolved Issues</h4></div></div></div><p>
|
</p></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id457768"></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"><div class="titlepage"><div><div><h3 class="title"><a id="shared_ptr.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry"><a id="id485662"></a><p>[<abbr class="abbrev">
|
</p></div><div class="bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="shared_ptr.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry"><a id="id419191"></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"><a id="id485686"></a><p>[<abbr class="abbrev">
|
. </span></p></div><div class="biblioentry"><a id="id405886"></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"><a id="id403091"></a><p>[<abbr class="abbrev">
|
. </span></p></div><div class="biblioentry"><a id="id411352"></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"><a id="id514547"></a><p>[<abbr class="abbrev">
|
. </span></p></div><div class="biblioentry"><a id="id400175"></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
|
|
@ -1,3 +1,3 @@
|
||||||
<?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>Part V. Strings</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="spine.html" title="The GNU C++ Library" /><link rel="prev" href="shared_ptr.html" title="shared_ptr" /><link rel="next" href="bk01pt05ch13.html" title="Chapter 13. String Classes" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part V. Strings</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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="manual.strings"></a>Part V. Strings</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 Sensivitity</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>
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part V. Strings</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content=" ISO C++ , library " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="spine.html" title="The GNU C++ Library" /><link rel="prev" href="shared_ptr.html" title="shared_ptr" /><link rel="next" href="bk01pt05ch13.html" title="Chapter 13. String Classes" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part V. Strings</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" lang="en" xml:lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="manual.strings"></a>Part V. Strings</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>
|
||||||
|
|
|
||||||
|
|
@ -293,7 +293,7 @@ runtest --tool libstdc++ --srcdir=/path/to/gcc/libstdc++-v3/testsuite
|
||||||
<span class="emphasis"><em>testsuite_thread</em></span>
|
<span class="emphasis"><em>testsuite_thread</em></span>
|
||||||
</p><p>
|
</p><p>
|
||||||
This file indicates that the host system can run tests which
|
This file indicates that the host system can run tests which
|
||||||
incolved multiple threads.
|
involved multiple threads.
|
||||||
</p></li><li><p>
|
</p></li><li><p>
|
||||||
<span class="emphasis"><em>testsuite_wchar_t</em></span>
|
<span class="emphasis"><em>testsuite_wchar_t</em></span>
|
||||||
</p><p>
|
</p><p>
|
||||||
|
|
@ -324,7 +324,7 @@ runtest --tool libstdc++ --srcdir=/path/to/gcc/libstdc++-v3/testsuite
|
||||||
flux.
|
flux.
|
||||||
</p><p>
|
</p><p>
|
||||||
We are interested in any strange failures of the testsuite;
|
We are interested in any strange failures of the testsuite;
|
||||||
please email the main libstdc++ mainling list if you see
|
please email the main libstdc++ mailing list if you see
|
||||||
something odd or have questions.
|
something odd or have questions.
|
||||||
</p></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="test.run.permutations"></a>Test Permutations</h4></div></div></div><p>
|
</p></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="test.run.permutations"></a>Test Permutations</h4></div></div></div><p>
|
||||||
To run the libstdc++ test suite under the <a class="link" href="debug_mode.html" title="Chapter 30. Debug Mode">debug mode</a>, edit
|
To run the libstdc++ test suite under the <a class="link" href="debug_mode.html" title="Chapter 30. Debug Mode">debug mode</a>, edit
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -154,7 +154,7 @@
|
||||||
|
|
||||||
<authorblurb>
|
<authorblurb>
|
||||||
<para>
|
<para>
|
||||||
Policy Based Datastructures, Associative Containers, Unordered
|
Policy Based Data Structures, Associative Containers, Unordered
|
||||||
Containers.
|
Containers.
|
||||||
</para>
|
</para>
|
||||||
</authorblurb>
|
</authorblurb>
|
||||||
|
|
|
||||||
|
|
@ -461,7 +461,7 @@
|
||||||
</qandadiv>
|
</qandadiv>
|
||||||
|
|
||||||
|
|
||||||
<!-- Platorm-Specific Issues -->
|
<!-- Platform-Specific Issues -->
|
||||||
<qandadiv id="faq.platform-specific" xreflabel="Platform-Specific Issues">
|
<qandadiv id="faq.platform-specific" xreflabel="Platform-Specific Issues">
|
||||||
<title>Platform-Specific Issues</title>
|
<title>Platform-Specific Issues</title>
|
||||||
|
|
||||||
|
|
@ -661,7 +661,7 @@
|
||||||
enough to detect when the minimal support to
|
enough to detect when the minimal support to
|
||||||
enable <type>wchar_t</type> and C++ library structures
|
enable <type>wchar_t</type> and C++ library structures
|
||||||
like <classname>wstring</classname> were present. This impacted Solaris,
|
like <classname>wstring</classname> were present. This impacted Solaris,
|
||||||
Darwin, and BSD varients, and is fixed in libstdc++ versions post 4.1.0.
|
Darwin, and BSD variants, and is fixed in libstdc++ versions post 4.1.0.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
</para>
|
</para>
|
||||||
|
|
@ -1098,7 +1098,7 @@
|
||||||
</question>
|
</question>
|
||||||
<answer id="a-extensions_and_backwards_compat">
|
<answer id="a-extensions_and_backwards_compat">
|
||||||
<para>
|
<para>
|
||||||
See the <link linkend="manual.appendix.porting.backwards">link</link> on backwards compatiblity and <link linkend="appendix.porting.api">link</link> on evolution.
|
See the <link linkend="manual.appendix.porting.backwards">link</link> on backwards compatibility and <link linkend="appendix.porting.api">link</link> on evolution.
|
||||||
</para>
|
</para>
|
||||||
</answer>
|
</answer>
|
||||||
</qandaentry>
|
</qandaentry>
|
||||||
|
|
@ -1251,4 +1251,4 @@
|
||||||
|
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
</book>
|
</book>
|
||||||
|
|
|
||||||
|
|
@ -99,7 +99,7 @@ given compiler ABI. In a nutshell:
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
To use a specific version of the C++ ABI, one must use a
|
To use a specific version of the C++ ABI, one must use a
|
||||||
corresponding GNU C++ toolchain (Ie, g++ and libstdc++) that
|
corresponding GNU C++ toolchain (i.e., g++ and libstdc++) that
|
||||||
implements the C++ ABI in question.
|
implements the C++ ABI in question.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
|
@ -183,7 +183,7 @@ release of the series to remain link compatible.
|
||||||
<para>It is versioned with the following labels and version
|
<para>It is versioned with the following labels and version
|
||||||
definitions, where the version definition is the maximum for a
|
definitions, where the version definition is the maximum for a
|
||||||
particular release. Labels are cumulative. If a particular release
|
particular release. Labels are cumulative. If a particular release
|
||||||
is not listed, it has the same version labels as the preceeding
|
is not listed, it has the same version labels as the preceding
|
||||||
release.</para>
|
release.</para>
|
||||||
|
|
||||||
<para>This corresponds to the mapfile: gcc/libgcc-std.ver</para>
|
<para>This corresponds to the mapfile: gcc/libgcc-std.ver</para>
|
||||||
|
|
@ -252,7 +252,7 @@ release of the series to remain link compatible.
|
||||||
gcc-3.2.1 release, which has GLIBCPP_3.2.1 for new symbols and
|
gcc-3.2.1 release, which has GLIBCPP_3.2.1 for new symbols and
|
||||||
GLIBCPP_3.2 for symbols that were introduced in the gcc-3.2.0
|
GLIBCPP_3.2 for symbols that were introduced in the gcc-3.2.0
|
||||||
release.) If a particular release is not listed, it has the same
|
release.) If a particular release is not listed, it has the same
|
||||||
version labels as the preceeding release.
|
version labels as the preceding release.
|
||||||
</para>
|
</para>
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem><para>gcc-3.0.0: (Error, not versioned)</para></listitem>
|
<listitem><para>gcc-3.0.0: (Error, not versioned)</para></listitem>
|
||||||
|
|
@ -737,7 +737,7 @@ class in registers, the compiler will be forced to use memory. See <ulink url="h
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><code>namespace std</code></term>
|
<term><code>namespace std</code></term>
|
||||||
<listitem><para> Defaults to exporting all symbols in label
|
<listitem><para> Defaults to exporting all symbols in label
|
||||||
<code>GLIBCXX</code> that do not begin with an underscore, ie
|
<code>GLIBCXX</code> that do not begin with an underscore, i.e.,
|
||||||
<code>__test_func</code> would not be exported by default. Select
|
<code>__test_func</code> would not be exported by default. Select
|
||||||
exceptional symbols are allowed to be visible.</para></listitem>
|
exceptional symbols are allowed to be visible.</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
@ -972,7 +972,7 @@ gcc test.c -g -O2 -L. -lone -ltwo /usr/lib/libstdc++.so.5 /usr/lib/libstdc++.so.
|
||||||
difficult. In particular, compiler generated constructs such as
|
difficult. In particular, compiler generated constructs such as
|
||||||
implicit instantiations for templates, typeinfo information, and
|
implicit instantiations for templates, typeinfo information, and
|
||||||
virtual tables all may cause ABI leakage across shared library
|
virtual tables all may cause ABI leakage across shared library
|
||||||
boundaries. Because of this, mixing C++ ABI's is not recommended at
|
boundaries. Because of this, mixing C++ ABIs is not recommended at
|
||||||
this time.
|
this time.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
|
@ -1127,4 +1127,4 @@ gcc test.c -g -O2 -L. -lone -ltwo /usr/lib/libstdc++.so.5 /usr/lib/libstdc++.so.
|
||||||
|
|
||||||
</bibliography>
|
</bibliography>
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
class template called <classname>allocator</classname>. The
|
class template called <classname>allocator</classname>. The
|
||||||
<classname>allocator</classname> abstraction is used throughout the
|
<classname>allocator</classname> abstraction is used throughout the
|
||||||
library in <classname>string</classname>, container classes,
|
library in <classname>string</classname>, container classes,
|
||||||
algorithnms, and parts of iostreams. This class, and base classes of
|
algorithms, and parts of iostreams. This class, and base classes of
|
||||||
it, are the superset of available free store (<quote>heap</quote>)
|
it, are the superset of available free store (<quote>heap</quote>)
|
||||||
management classes.
|
management classes.
|
||||||
</para>
|
</para>
|
||||||
|
|
@ -261,7 +261,7 @@
|
||||||
directly, for every allocation. (See
|
directly, for every allocation. (See
|
||||||
<filename>include/ext/new_allocator.h</filename>, for instance.)
|
<filename>include/ext/new_allocator.h</filename>, for instance.)
|
||||||
However, that option would involve changing source code to use
|
However, that option would involve changing source code to use
|
||||||
the a non-default allocator. Another option is to force the
|
a non-default allocator. Another option is to force the
|
||||||
default allocator to remove caching and pools, and to directly
|
default allocator to remove caching and pools, and to directly
|
||||||
allocate with every call of <function>allocate</function> and
|
allocate with every call of <function>allocate</function> and
|
||||||
directly deallocate with every call of
|
directly deallocate with every call of
|
||||||
|
|
@ -397,7 +397,7 @@
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Includes memory tracking and marking abilities as well as hooks for
|
Includes memory tracking and marking abilities as well as hooks for
|
||||||
throwing exceptinos at configurable intervals (including random,
|
throwing exceptions at configurable intervals (including random,
|
||||||
all, none).
|
all, none).
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
@ -447,7 +447,7 @@
|
||||||
<para>The <varname>thr</varname> boolean determines whether the
|
<para>The <varname>thr</varname> boolean determines whether the
|
||||||
pool should be manipulated atomically or not. When
|
pool should be manipulated atomically or not. When
|
||||||
<varname>thr</varname> = <constant>true</constant>, the allocator
|
<varname>thr</varname> = <constant>true</constant>, the allocator
|
||||||
is is threadsafe, while <varname>thr</varname> =
|
is is thread-safe, while <varname>thr</varname> =
|
||||||
<constant>false</constant>, and is slightly faster but unsafe for
|
<constant>false</constant>, and is slightly faster but unsafe for
|
||||||
multiple threads.
|
multiple threads.
|
||||||
</para>
|
</para>
|
||||||
|
|
@ -455,7 +455,7 @@
|
||||||
<para>
|
<para>
|
||||||
For thread-enabled configurations, the pool is locked with a
|
For thread-enabled configurations, the pool is locked with a
|
||||||
single big lock. In some situations, this implementation detail
|
single big lock. In some situations, this implementation detail
|
||||||
may result in severe performance degredation.
|
may result in severe performance degradation.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
|
|
||||||
|
|
@ -316,7 +316,7 @@ indicate a place that may require attention for multi-thread safety.
|
||||||
<para>
|
<para>
|
||||||
</para>
|
</para>
|
||||||
<sect2 id="coding_style.bad_identifiers" xreflabel="coding_style.bad">
|
<sect2 id="coding_style.bad_identifiers" xreflabel="coding_style.bad">
|
||||||
<title>Bad Itentifiers</title>
|
<title>Bad Identifiers</title>
|
||||||
<para>
|
<para>
|
||||||
Identifiers that conflict and should be avoided.
|
Identifiers that conflict and should be avoided.
|
||||||
</para>
|
</para>
|
||||||
|
|
@ -653,7 +653,7 @@ indicate a place that may require attention for multi-thread safety.
|
||||||
for definitions. For C++, where we have member functions that can
|
for definitions. For C++, where we have member functions that can
|
||||||
be either inline definitions or declarations, keeping to this
|
be either inline definitions or declarations, keeping to this
|
||||||
standard allows all member function names for a given class to be
|
standard allows all member function names for a given class to be
|
||||||
aligned to the same margin, increasing readibility.
|
aligned to the same margin, increasing readability.
|
||||||
|
|
||||||
|
|
||||||
10. Invocation of member functions with "this->"
|
10. Invocation of member functions with "this->"
|
||||||
|
|
@ -679,7 +679,7 @@ indicate a place that may require attention for multi-thread safety.
|
||||||
|
|
||||||
12. Spacing under protected and private in class declarations:
|
12. Spacing under protected and private in class declarations:
|
||||||
space above, none below
|
space above, none below
|
||||||
ie
|
i.e.
|
||||||
|
|
||||||
public:
|
public:
|
||||||
int foo;
|
int foo;
|
||||||
|
|
@ -691,7 +691,7 @@ indicate a place that may require attention for multi-thread safety.
|
||||||
|
|
||||||
13. Spacing WRT return statements.
|
13. Spacing WRT return statements.
|
||||||
no extra spacing before returns, no parenthesis
|
no extra spacing before returns, no parenthesis
|
||||||
ie
|
i.e.
|
||||||
|
|
||||||
}
|
}
|
||||||
return __ret;
|
return __ret;
|
||||||
|
|
@ -708,7 +708,7 @@ indicate a place that may require attention for multi-thread safety.
|
||||||
|
|
||||||
|
|
||||||
14. Location of global variables.
|
14. Location of global variables.
|
||||||
All global variables of class type, whether in the "user visable"
|
All global variables of class type, whether in the "user visible"
|
||||||
space (e.g., cin) or the implementation namespace, must be defined
|
space (e.g., cin) or the implementation namespace, must be defined
|
||||||
as a character array with the appropriate alignment and then later
|
as a character array with the appropriate alignment and then later
|
||||||
re-initialized to the correct value.
|
re-initialized to the correct value.
|
||||||
|
|
@ -1055,7 +1055,7 @@ indicate a place that may require attention for multi-thread safety.
|
||||||
<title>Prerequisites</title>
|
<title>Prerequisites</title>
|
||||||
<para>
|
<para>
|
||||||
Editing the DocBook sources requires an XML editor. Many
|
Editing the DocBook sources requires an XML editor. Many
|
||||||
exist: some noteable options
|
exist: some notable options
|
||||||
include <command>emacs</command>, <application>Kate</application>,
|
include <command>emacs</command>, <application>Kate</application>,
|
||||||
or <application>Conglomerate</application>.
|
or <application>Conglomerate</application>.
|
||||||
</para>
|
</para>
|
||||||
|
|
@ -1083,7 +1083,7 @@ indicate a place that may require attention for multi-thread safety.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
For procesessing XML, an XML processor and some style
|
For processing XML, an XML processor and some style
|
||||||
sheets are necessary. Defaults are <command>xsltproc</command>
|
sheets are necessary. Defaults are <command>xsltproc</command>
|
||||||
provided by <filename>libxslt</filename>.
|
provided by <filename>libxslt</filename>.
|
||||||
</para>
|
</para>
|
||||||
|
|
@ -1163,10 +1163,10 @@ xmllint --noout --valid <filename>xml/index.xml</filename>
|
||||||
faq.xml - index to FAQ
|
faq.xml - index to FAQ
|
||||||
api.xml - index to source level / API
|
api.xml - index to source level / API
|
||||||
|
|
||||||
All *.txml files are template xml files, ie otherwise empty files with
|
All *.txml files are template xml files, i.e., otherwise empty files with
|
||||||
the correct structure, suitable for filling in with new information.
|
the correct structure, suitable for filling in with new information.
|
||||||
|
|
||||||
<emphasis>Cannonical Writing Style</emphasis>
|
<emphasis>Canonical Writing Style</emphasis>
|
||||||
|
|
||||||
class template
|
class template
|
||||||
function template
|
function template
|
||||||
|
|
@ -1496,7 +1496,7 @@ xmllint --noout --valid <filename>xml/index.xml</filename>
|
||||||
"export") is badly needed.
|
"export") is badly needed.
|
||||||
|
|
||||||
When building a shared library, the current compiler/linker cannot
|
When building a shared library, the current compiler/linker cannot
|
||||||
automatically generate the instantiatiations needed. This creates a
|
automatically generate the instantiations needed. This creates a
|
||||||
miserable situation; it means any time something is changed in the
|
miserable situation; it means any time something is changed in the
|
||||||
library, before a shared library can be built someone must manually
|
library, before a shared library can be built someone must manually
|
||||||
copy the declarations of all templates that are needed by other parts
|
copy the declarations of all templates that are needed by other parts
|
||||||
|
|
@ -2100,7 +2100,7 @@ xmllint --noout --valid <filename>xml/index.xml</filename>
|
||||||
by filebuf. These wrappings have not been completed, though there
|
by filebuf. These wrappings have not been completed, though there
|
||||||
is scaffolding in place.
|
is scaffolding in place.
|
||||||
|
|
||||||
The encapulation of certain C header <cstdio> names presents an
|
The encapsulation of certain C header <cstdio> names presents an
|
||||||
interesting problem. It is possible to define an inline std::fprintf()
|
interesting problem. It is possible to define an inline std::fprintf()
|
||||||
implemented in terms of the 'extern "C"' vfprintf(), but there is no
|
implemented in terms of the 'extern "C"' vfprintf(), but there is no
|
||||||
standard vfscanf() to use to implement std::fscanf(). It appears that
|
standard vfscanf() to use to implement std::fscanf(). It appears that
|
||||||
|
|
|
||||||
|
|
@ -148,7 +148,7 @@ considered replaced and rewritten.
|
||||||
then using that to set a value for the <code>NAMESPACE_STD</code>
|
then using that to set a value for the <code>NAMESPACE_STD</code>
|
||||||
macro. At that point, one is able to use
|
macro. At that point, one is able to use
|
||||||
<code>NAMESPACE_STD::string</code>, which will evaluate to
|
<code>NAMESPACE_STD::string</code>, which will evaluate to
|
||||||
<code>std::string</code> or <code>::string</code> (ie, in the
|
<code>std::string</code> or <code>::string</code> (i.e., in the
|
||||||
global namespace on systems that do not put <code>string</code> in
|
global namespace on systems that do not put <code>string</code> in
|
||||||
<code>std::</code>).
|
<code>std::</code>).
|
||||||
</para>
|
</para>
|
||||||
|
|
@ -346,7 +346,7 @@ erase(size_type __pos = 0, size_type __n = npos)
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Unfortunately, ut <code>clear</code> is not implemented in this
|
Unfortunately, <code>clear</code> is not implemented in this
|
||||||
version, so you should use <code>erase</code> (which is probably
|
version, so you should use <code>erase</code> (which is probably
|
||||||
faster than <code>operator=(charT*)</code>).
|
faster than <code>operator=(charT*)</code>).
|
||||||
</para>
|
</para>
|
||||||
|
|
@ -815,7 +815,7 @@ No <code>stream::attach(int fd)</code>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
For a portable solution (among systems which use
|
For a portable solution (among systems which use
|
||||||
filedescriptors), you need to implement a subclass of
|
file descriptors), you need to implement a subclass of
|
||||||
<code>std::streambuf</code> (or
|
<code>std::streambuf</code> (or
|
||||||
<code>std::basic_streambuf<..></code>) which opens a file
|
<code>std::basic_streambuf<..></code>) which opens a file
|
||||||
given a descriptor, and then pass an instance of this to the
|
given a descriptor, and then pass an instance of this to the
|
||||||
|
|
@ -1312,4 +1312,4 @@ AC_DEFUN([AC_HEADER_UNORDERED_SET], [
|
||||||
|
|
||||||
</bibliography>
|
</bibliography>
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
|
||||||
|
|
@ -240,8 +240,8 @@ else return false.</para></listitem>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Where, k => The constant overhead per node. eg. for list, it is
|
where k is the constant overhead per node (e.g., for list, it is
|
||||||
8 bytes, and for map it is 12 bytes. c => The size of the
|
8 bytes, and for map it is 12 bytes) and c is the size of the
|
||||||
base type on which the map/list is instantiated. Thus, suppose the
|
base type on which the map/list is instantiated. Thus, suppose the
|
||||||
type1 is int and type2 is double, they are related by the relation
|
type1 is int and type2 is double, they are related by the relation
|
||||||
sizeof(double) == 2*sizeof(int). Thus, all types must have this
|
sizeof(double) == 2*sizeof(int). Thus, all types must have this
|
||||||
|
|
@ -556,4 +556,4 @@ equivalent.</para></listitem>
|
||||||
|
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
|
||||||
|
|
@ -104,7 +104,7 @@
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Most comments should use {octothorpes, shibboleths, hash marks,
|
Most comments should use {octothorpes, shibboleths, hash marks,
|
||||||
pound signs, whatevers} rather than "dnl". Nearly all comments in
|
pound signs, whatever} rather than "dnl". Nearly all comments in
|
||||||
configure.ac should. Comments inside macros written in ancilliary
|
configure.ac should. Comments inside macros written in ancilliary
|
||||||
.m4 files should. About the only comments which should
|
.m4 files should. About the only comments which should
|
||||||
<emphasis>not</emphasis> use #, but use dnl instead, are comments
|
<emphasis>not</emphasis> use #, but use dnl instead, are comments
|
||||||
|
|
@ -351,4 +351,4 @@
|
||||||
|
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
|
||||||
|
|
@ -190,7 +190,7 @@ UTF-16, UTF8, UTF16).
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
For iconv-based implementations, string literals for each of the
|
For iconv-based implementations, string literals for each of the
|
||||||
encodings (ie. "UCS-2" and "UTF-8") are necessary,
|
encodings (i.e. "UCS-2" and "UTF-8") are necessary,
|
||||||
although for other,
|
although for other,
|
||||||
non-iconv implementations a table of enumerated values or some other
|
non-iconv implementations a table of enumerated values or some other
|
||||||
mechanism may be required.
|
mechanism may be required.
|
||||||
|
|
@ -218,7 +218,7 @@ mechanism may be required.
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
|
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
Conversion descriptors for both directions of encoding. (ie, both
|
Conversion descriptors for both directions of encoding. (i.e., both
|
||||||
UCS-2 to UTF-8 and UTF-8 to UCS-2.)
|
UCS-2 to UTF-8 and UTF-8 to UCS-2.)
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
|
|
||||||
|
|
@ -301,7 +301,7 @@ codecvt<char, char, mbstate_t>
|
||||||
</code>
|
</code>
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
This is a degenerate (ie, does nothing) specialization. Implementing
|
This is a degenerate (i.e., does nothing) specialization. Implementing
|
||||||
this was a piece of cake.
|
this was a piece of cake.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
|
@ -727,4 +727,4 @@ codecvt usage.
|
||||||
|
|
||||||
</bibliography>
|
</bibliography>
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
|
||||||
|
|
@ -194,7 +194,7 @@ host hardware and operating system.
|
||||||
<sect1 id="manual.ext.concurrency.impl" xreflabel="Implementation">
|
<sect1 id="manual.ext.concurrency.impl" xreflabel="Implementation">
|
||||||
<title>Implementation</title>
|
<title>Implementation</title>
|
||||||
<sect2 id="manual.ext.concurrency.impl.atomic_fallbacks" xreflabel="Atomic F">
|
<sect2 id="manual.ext.concurrency.impl.atomic_fallbacks" xreflabel="Atomic F">
|
||||||
<title>Using Builitin Atomic Functions</title>
|
<title>Using Builtin Atomic Functions</title>
|
||||||
|
|
||||||
<para>The functions for atomic operations described above are either
|
<para>The functions for atomic operations described above are either
|
||||||
implemented via compiler intrinsics (if the underlying host is
|
implemented via compiler intrinsics (if the underlying host is
|
||||||
|
|
@ -261,7 +261,7 @@ hardware, hand-crafted assembly is selected. This is the case for the following
|
||||||
<sect2 id="manual.ext.concurrency.impl.thread" xreflabel="Pthread">
|
<sect2 id="manual.ext.concurrency.impl.thread" xreflabel="Pthread">
|
||||||
<title>Thread Abstraction</title>
|
<title>Thread Abstraction</title>
|
||||||
|
|
||||||
<para>A thin layer above IEEE 1003.1 (ie pthreads) is used to abstract
|
<para>A thin layer above IEEE 1003.1 (i.e. pthreads) is used to abstract
|
||||||
the thread interface for GCC. This layer is called "gthread," and is
|
the thread interface for GCC. This layer is called "gthread," and is
|
||||||
comprised of one header file that wraps the host's default thread layer with
|
comprised of one header file that wraps the host's default thread layer with
|
||||||
a POSIX-like interface.
|
a POSIX-like interface.
|
||||||
|
|
|
||||||
|
|
@ -99,7 +99,7 @@ characters.
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Get the ctype<wchar_t>::mask stuff under control. Need to
|
Get the ctype<wchar_t>::mask stuff under control. Need to
|
||||||
make some kind of static table, and not do lookup evertime
|
make some kind of static table, and not do lookup every time
|
||||||
somebody hits the do_is... functions. Too bad we can't just
|
somebody hits the do_is... functions. Too bad we can't just
|
||||||
redefine mask for ctype<wchar_t>
|
redefine mask for ctype<wchar_t>
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
|
|
@ -256,4 +256,4 @@ characters.
|
||||||
|
|
||||||
</bibliography>
|
</bibliography>
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
|
||||||
|
|
@ -582,7 +582,7 @@ template<typename _Tp, typename _Allocator = allocator<_Tp>
|
||||||
allows release-compiled and debug-compiled code to be linked and
|
allows release-compiled and debug-compiled code to be linked and
|
||||||
executed together without causing unpredictable behavior. This
|
executed together without causing unpredictable behavior. This
|
||||||
guarantee minimizes the recompilation that users are required to
|
guarantee minimizes the recompilation that users are required to
|
||||||
perform, shortening the detect-compile-debug bughunting cycle
|
perform, shortening the detect-compile-debug bug hunting cycle
|
||||||
and making the debug mode easier to incorporate into development
|
and making the debug mode easier to incorporate into development
|
||||||
environments by minimizing dependencies.</para>
|
environments by minimizing dependencies.</para>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Derived from this are several classes that may have a
|
Derived from this are several classes that may have a
|
||||||
<classname>string</classname> member: a full heirarchy can be
|
<classname>string</classname> member: a full hierarchy can be
|
||||||
found in the <ulink url="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00233.html">source documentation</ulink>.
|
found in the <ulink url="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00233.html">source documentation</ulink>.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
<title>API Evolution and Deprecation History</title>
|
<title>API Evolution and Deprecation History</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
A list of user-visible changes, in cronological order
|
A list of user-visible changes, in chronological order
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<sect2 id="api.rel_300" xreflabel="api.rel_300">
|
<sect2 id="api.rel_300" xreflabel="api.rel_300">
|
||||||
|
|
@ -135,7 +135,7 @@ _Alloc_traits</code> have been removed.
|
||||||
<para>
|
<para>
|
||||||
Previous versions prior to 3.4 cache allocations in a memory
|
Previous versions prior to 3.4 cache allocations in a memory
|
||||||
pool, instead of passing through to call the global allocation
|
pool, instead of passing through to call the global allocation
|
||||||
operators (ie, <classname>__gnu_cxx::pool_allocator</classname>). More
|
operators (i.e., <classname>__gnu_cxx::pool_allocator</classname>). More
|
||||||
recent versions default to the
|
recent versions default to the
|
||||||
simpler <classname>__gnu_cxx::new_allocator</classname>.
|
simpler <classname>__gnu_cxx::new_allocator</classname>.
|
||||||
</para>
|
</para>
|
||||||
|
|
@ -449,4 +449,4 @@ Namespace pb_ds moved to __gnu_pb_ds.
|
||||||
|
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
|
||||||
|
|
@ -357,7 +357,7 @@ get_temporary_buffer(5, (int*)0);
|
||||||
<listitem><para><code>is_sorted</code> tests whether or not a range is sorted in
|
<listitem><para><code>is_sorted</code> tests whether or not a range is sorted in
|
||||||
nondescending order.</para></listitem>
|
nondescending order.</para></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
<para>25.3.8 (lexigraphical_compare) is extended with
|
<para>25.3.8 (lexicographical_compare) is extended with
|
||||||
</para>
|
</para>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
lexicographical_compare_3way(_InputIter1 first1, _InputIter1 last1,
|
lexicographical_compare_3way(_InputIter1 first1, _InputIter1 last1,
|
||||||
|
|
@ -488,7 +488,7 @@ get_temporary_buffer(5, (int*)0);
|
||||||
<chapter id="manual.ext.demangle" xreflabel="Demangling">
|
<chapter id="manual.ext.demangle" xreflabel="Demangling">
|
||||||
<title>Demangling</title>
|
<title>Demangling</title>
|
||||||
<para>
|
<para>
|
||||||
Transforming C++ ABI itentifiers (like RTTI symbols) into the
|
Transforming C++ ABI identifiers (like RTTI symbols) into the
|
||||||
original C++ source identifiers is called
|
original C++ source identifiers is called
|
||||||
<quote>demangling.</quote>
|
<quote>demangling.</quote>
|
||||||
</para>
|
</para>
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ Literally, a facet is strictly defined:
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Dontaining the following public data member:
|
Containing the following public data member:
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
<code>static locale::id id;</code>
|
<code>static locale::id id;</code>
|
||||||
|
|
@ -95,13 +95,13 @@ Provides an index for looking up specific facets.
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The major design challenge is fitting an object-orientated and
|
The major design challenge is fitting an object-orientated and
|
||||||
non-global locale design ontop of POSIX and other relevant stanards,
|
non-global locale design on top of POSIX and other relevant standards,
|
||||||
which include the Single Unix (nee X/Open.)
|
which include the Single Unix (nee X/Open.)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Because C and earlier versions of POSIX falls down so completely,
|
Because C and earlier versions of POSIX falls down so completely,
|
||||||
portibility is an issue.
|
portability is an issue.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
@ -461,7 +461,7 @@ global locale" (emphasis Paolo), that is:
|
||||||
<programlisting>std::setlocale(LC_ALL, "");</programlisting>
|
<programlisting>std::setlocale(LC_ALL, "");</programlisting>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
On the other hand, there is *no* viceversa, that is, calling
|
On the other hand, there is *no* vice versa, that is, calling
|
||||||
setlocale has *no* whatsoever on the C++ locale mechanism, in
|
setlocale has *no* whatsoever on the C++ locale mechanism, in
|
||||||
particular on the working of locale(""), which constructs the locale
|
particular on the working of locale(""), which constructs the locale
|
||||||
object from the environment of the running program, that is, in
|
object from the environment of the running program, that is, in
|
||||||
|
|
@ -486,7 +486,7 @@ global locale" (emphasis Paolo), that is:
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Document how named locales error check when filling data
|
Document how named locales error check when filling data
|
||||||
members. Ie, a fr_FR locale that doesn't have
|
members. I.e., a fr_FR locale that doesn't have
|
||||||
numpunct::truename(): does it use "true"? Or is it a blank
|
numpunct::truename(): does it use "true"? Or is it a blank
|
||||||
string? What's the convention?
|
string? What's the convention?
|
||||||
</para>
|
</para>
|
||||||
|
|
@ -504,7 +504,7 @@ global locale" (emphasis Paolo), that is:
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
What should non-required facet instantiations do? If the
|
What should non-required facet instantiations do? If the
|
||||||
generic implemenation is provided, then how to end-users
|
generic implementation is provided, then how to end-users
|
||||||
provide specializations?
|
provide specializations?
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
@ -650,4 +650,4 @@ global locale" (emphasis Paolo), that is:
|
||||||
|
|
||||||
</bibliography>
|
</bibliography>
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
|
||||||
|
|
@ -238,7 +238,7 @@ model.
|
||||||
library locale support is necessary for more than just the
|
library locale support is necessary for more than just the
|
||||||
<code>LC_MESSAGES</code> mask: <code>LC_CTYPE</code> is also
|
<code>LC_MESSAGES</code> mask: <code>LC_CTYPE</code> is also
|
||||||
necessary. To avoid any unpleasantness, all bits of the "C" mask
|
necessary. To avoid any unpleasantness, all bits of the "C" mask
|
||||||
(ie <code>LC_ALL</code>) are set before retrieving messages.
|
(i.e. <code>LC_ALL</code>) are set before retrieving messages.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
|
@ -377,7 +377,7 @@ void test01()
|
||||||
There are issues with gettext needing the global locale set
|
There are issues with gettext needing the global locale set
|
||||||
to extract a message. This dependence on the global locale
|
to extract a message. This dependence on the global locale
|
||||||
makes the current "gnu" model non MT-safe. Future versions
|
makes the current "gnu" model non MT-safe. Future versions
|
||||||
of glibc, ie glibc 2.3.x will fix this, and the C++ library
|
of glibc, i.e. glibc 2.3.x will fix this, and the C++ library
|
||||||
bits are already in place.
|
bits are already in place.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
@ -399,7 +399,7 @@ void test01()
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
At some point in the near future, std::numpunct will probably use
|
At some point in the near future, std::numpunct will probably use
|
||||||
std::messages facilities to implement truename/falename
|
std::messages facilities to implement truename/falsename
|
||||||
correctly. This is currently not done, but entries in
|
correctly. This is currently not done, but entries in
|
||||||
libstdc++.pot have already been made for "true" and "false" string
|
libstdc++.pot have already been made for "true" and "false" string
|
||||||
literals, so all that remains is the std::numpunct coding and the
|
literals, so all that remains is the std::numpunct coding and the
|
||||||
|
|
@ -601,4 +601,4 @@ Library and Tools.
|
||||||
|
|
||||||
</bibliography>
|
</bibliography>
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
|
||||||
|
|
@ -83,20 +83,13 @@ specific compiler flag.
|
||||||
<listitem><para><function>std::unique_copy</function></para></listitem>
|
<listitem><para><function>std::unique_copy</function></para></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
<para>The following library components in the includes
|
|
||||||
<filename class="headerfile">set</filename> and <filename class="headerfile">map</filename> are included in the parallel mode:</para>
|
|
||||||
<itemizedlist>
|
|
||||||
<listitem><para><code>std::(multi_)map/set<T>::(multi_)map/set(Iterator begin, Iterator end)</code> (bulk construction)</para></listitem>
|
|
||||||
<listitem><para><code>std::(multi_)map/set<T>::insert(Iterator begin, Iterator end)</code> (bulk insertion)</para></listitem>
|
|
||||||
</itemizedlist>
|
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="manual.ext.parallel_mode.semantics" xreflabel="Semantics">
|
<sect1 id="manual.ext.parallel_mode.semantics" xreflabel="Semantics">
|
||||||
<title>Semantics</title>
|
<title>Semantics</title>
|
||||||
|
|
||||||
<para> The parallel mode STL algorithms are currently not exception-safe,
|
<para> The parallel mode STL algorithms are currently not exception-safe,
|
||||||
i. e. user-defined functors must not throw exceptions.
|
i.e. user-defined functors must not throw exceptions.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para> Since the current GCC OpenMP implementation does not support
|
<para> Since the current GCC OpenMP implementation does not support
|
||||||
|
|
@ -455,10 +448,10 @@ namespace std
|
||||||
}
|
}
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
<para>But.... why the elipses?
|
<para>But.... why the ellipses?
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para> The elipses in the example above represent additional overloads
|
<para> The ellipses in the example above represent additional overloads
|
||||||
required for the parallel version of the function. These additional
|
required for the parallel version of the function. These additional
|
||||||
overloads are used to dispatch calls from the ISO C++ function
|
overloads are used to dispatch calls from the ISO C++ function
|
||||||
signature to the appropriate parallel function (or sequential
|
signature to the appropriate parallel function (or sequential
|
||||||
|
|
@ -467,7 +460,7 @@ compile-time or run-time conditions.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para> Compile-time conditions are referred to as "embarrassingly
|
<para> Compile-time conditions are referred to as "embarrassingly
|
||||||
parallel," and are denoted with the appropriate dispatch object, ie
|
parallel," and are denoted with the appropriate dispatch object, i.e.,
|
||||||
one of <code>__gnu_parallel::sequential_tag</code>,
|
one of <code>__gnu_parallel::sequential_tag</code>,
|
||||||
<code>__gnu_parallel::parallel_tag</code>,
|
<code>__gnu_parallel::parallel_tag</code>,
|
||||||
<code>__gnu_parallel::balanced_tag</code>,
|
<code>__gnu_parallel::balanced_tag</code>,
|
||||||
|
|
@ -533,8 +526,6 @@ int main()
|
||||||
const int threads_wanted = 20;
|
const int threads_wanted = 20;
|
||||||
omp_set_dynamic(false);
|
omp_set_dynamic(false);
|
||||||
omp_set_num_threads(threads_wanted);
|
omp_set_num_threads(threads_wanted);
|
||||||
if (omp_get_num_threads() != threads_wanted)
|
|
||||||
abort();
|
|
||||||
|
|
||||||
// Do work.
|
// Do work.
|
||||||
|
|
||||||
|
|
@ -593,7 +584,7 @@ See <ulink url="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00505.ht
|
||||||
<title>Run Time Settings and Defaults</title>
|
<title>Run Time Settings and Defaults</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The default parallization strategy, the choice of specific algorithm
|
The default parallelization strategy, the choice of specific algorithm
|
||||||
strategy, the minimum threshold limits for individual parallel
|
strategy, the minimum threshold limits for individual parallel
|
||||||
algorithms, and aspects of the underlying hardware can be specified as
|
algorithms, and aspects of the underlying hardware can be specified as
|
||||||
desired via manipulation
|
desired via manipulation
|
||||||
|
|
@ -608,7 +599,7 @@ value of enum <type>__gnu_parallel::_AlgorithmStrategy</type>
|
||||||
type. Choices
|
type. Choices
|
||||||
include: <type>heuristic</type>, <type>force_sequential</type>,
|
include: <type>heuristic</type>, <type>force_sequential</type>,
|
||||||
and <type>force_parallel</type>. The default is
|
and <type>force_parallel</type>. The default is
|
||||||
implementation-deduced, ie <type>heuristic</type>.
|
implementation-deduced, i.e. <type>heuristic</type>.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -626,7 +617,7 @@ or <type>QS_BALANCED</type>.
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Likewise for setting the minimal threshold for algorithm
|
Likewise for setting the minimal threshold for algorithm
|
||||||
paralleization. Parallelism always incurs some overhead. Thus, it is
|
parallelization. Parallelism always incurs some overhead. Thus, it is
|
||||||
not helpful to parallelize operations on very small sets of
|
not helpful to parallelize operations on very small sets of
|
||||||
data. Because of this, measures are taken to avoid parallelizing below
|
data. Because of this, measures are taken to avoid parallelizing below
|
||||||
a certain, pre-determined threshold. For each algorithm, a minimum
|
a certain, pre-determined threshold. For each algorithm, a minimum
|
||||||
|
|
|
||||||
|
|
@ -1052,7 +1052,7 @@ particular release.
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>26.4.7.2</entry>
|
<entry>26.4.7.2</entry>
|
||||||
<entry>Function template <code>generate_cannonical</code></entry>
|
<entry>Function template <code>generate_canonical</code></entry>
|
||||||
<entry></entry>
|
<entry></entry>
|
||||||
<entry></entry>
|
<entry></entry>
|
||||||
<entry>missing</entry>
|
<entry>missing</entry>
|
||||||
|
|
@ -2238,4 +2238,4 @@ Footnotes
|
||||||
shared_ptr</ulink> library.
|
shared_ptr</ulink> library.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
<code>transform<></code> is used.
|
<code>transform<></code> is used.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
This code will go through some iterations. Here's a simiple
|
This code will go through some iterations. Here's a simple
|
||||||
version:
|
version:
|
||||||
</para>
|
</para>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
|
|
@ -126,7 +126,7 @@
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="strings.string.case" xreflabel="Case Sensitivity">
|
<sect1 id="strings.string.case" xreflabel="Case Sensitivity">
|
||||||
<title>Case Sensivitity</title>
|
<title>Case Sensitivity</title>
|
||||||
<para>
|
<para>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -98,7 +98,7 @@
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="manual.support.types.numeric_limits" xreflabel="Numeric Properites">
|
<sect1 id="manual.support.types.numeric_limits" xreflabel="Numeric Properties">
|
||||||
<title>Numeric Properties</title>
|
<title>Numeric Properties</title>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -511,7 +511,7 @@ runtest --tool libstdc++ --srcdir=/path/to/gcc/libstdc++-v3/testsuite
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
This file indicates that the host system can run tests which
|
This file indicates that the host system can run tests which
|
||||||
incolved multiple threads.
|
involved multiple threads.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
|
@ -563,7 +563,7 @@ runtest --tool libstdc++ --srcdir=/path/to/gcc/libstdc++-v3/testsuite
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
We are interested in any strange failures of the testsuite;
|
We are interested in any strange failures of the testsuite;
|
||||||
please email the main libstdc++ mainling list if you see
|
please email the main libstdc++ mailing list if you see
|
||||||
something odd or have questions.
|
something odd or have questions.
|
||||||
</para>
|
</para>
|
||||||
</sect3>
|
</sect3>
|
||||||
|
|
@ -820,4 +820,4 @@ Currently plans for supported keywords include:
|
||||||
|
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
|
||||||
|
|
@ -110,7 +110,7 @@
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
C++98/03 include files. These are available in the default compilation mode, ie <code>-std=c++98</code> or <code>-std=gnu++98</code>.
|
C++98/03 include files. These are available in the default compilation mode, i.e. <code>-std=c++98</code> or <code>-std=gnu++98</code>.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<table frame='all'>
|
<table frame='all'>
|
||||||
|
|
@ -149,7 +149,7 @@
|
||||||
</tgroup>
|
</tgroup>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<para>C++0x include files. These are only available in C++0x compilation mode, ie <code>-std=c++0x</code> or <code>-std=gnu++0x</code>.
|
<para>C++0x include files. These are only available in C++0x compilation mode, i.e. <code>-std=c++0x</code> or <code>-std=gnu++0x</code>.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para></para>
|
<para></para>
|
||||||
|
|
@ -470,7 +470,7 @@ g++ -Winvalid-pch -I. -include stdc++.h -H -g -O2 hello.cc -o test.exe
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem><para>std</para>
|
<listitem><para>std</para>
|
||||||
<para>The ISO C++ standards specify that "all library entities are defined
|
<para>The ISO C++ standards specify that "all library entities are defined
|
||||||
within namespace std." This includes namepaces nested
|
within namespace std." This includes namespaces nested
|
||||||
within <code>namespace std</code>, such as <code>namespace
|
within <code>namespace std</code>, such as <code>namespace
|
||||||
std::tr1</code>.
|
std::tr1</code>.
|
||||||
</para>
|
</para>
|
||||||
|
|
@ -521,7 +521,7 @@ cases where the qualified verbiage becomes unwieldy.)
|
||||||
|
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2 id="manual.intro.using.namespaces.comp" xreflabel="Using Namepace Composition">
|
<sect2 id="manual.intro.using.namespaces.comp" xreflabel="Using Namespace Composition">
|
||||||
<title>Using Namespace Composition</title>
|
<title>Using Namespace Composition</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue