Commit 4394b61e by Benjamin Kosnik

[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
parent 276e95ca
2008-04-10 Benjamin Kosnik <bkoz@redhat.com> 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>
* include/c_global/cstdatomic: C++ types only, format, doxygen markup. * include/c_global/cstdatomic: C++ types only, format, doxygen markup.
* include/c_compatibility/stdatomic.h: "C" only, format, doxygen markup. * include/c_compatibility/stdatomic.h: "C" only, format, doxygen markup.
* src/atomic.c: Format, doxygen markup, edits. * src/atomic.c: Format, doxygen markup, edits.
......
...@@ -5,7 +5,7 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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>
......
<?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="&#10; ISO C++&#10; , &#10; library&#10; " /><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="&#10; ISO C++&#10; , &#10; library&#10; " /><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. ...@@ -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. ...@@ -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&lt;T&gt;</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&lt;T&gt;</code></td><td align="left"><code class="filename">ext/malloc_allocator.h</code></td><td align="left"><code class="classname">std::__malloc_alloc_template&lt;int&gt;</code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::debug_allocator&lt;T&gt;</code></td><td align="left"><code class="filename">ext/debug_allocator.h</code></td><td align="left"><code class="classname">std::debug_alloc&lt;T&gt;</code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::__pool_alloc&lt;T&gt;</code></td><td align="left"><code class="filename">ext/pool_allocator.h</code></td><td align="left"><code class="classname">std::__default_alloc_template&lt;bool,int&gt;</code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::__mt_alloc&lt;T&gt;</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&lt;T&gt;</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&lt;T&gt;</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&lt;T&gt;</code></td><td align="left"><code class="filename">ext/malloc_allocator.h</code></td><td align="left"><code class="classname">std::__malloc_alloc_template&lt;int&gt;</code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::debug_allocator&lt;T&gt;</code></td><td align="left"><code class="filename">ext/debug_allocator.h</code></td><td align="left"><code class="classname">std::debug_alloc&lt;T&gt;</code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::__pool_alloc&lt;T&gt;</code></td><td align="left"><code class="filename">ext/pool_allocator.h</code></td><td align="left"><code class="classname">std::__default_alloc_template&lt;bool,int&gt;</code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::__mt_alloc&lt;T&gt;</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&lt;T&gt;</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&lt;T&gt;</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&lt;T&gt;</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&lt;T&gt;</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&lt;T&gt;</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.
......
<?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="&#10; ISO C++&#10; , &#10; library&#10; " /><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="&#10; ISO C++&#10; , &#10; library&#10; " /><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 @@ ...@@ -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
......
...@@ -103,7 +103,7 @@ else return false.</p></li></ol></div><p> ...@@ -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 -&gt; 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 -&gt; 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> ...@@ -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 =&gt; 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 =&gt; 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
......
<?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="&#10; ISO C++&#10; , &#10; library&#10; " /><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="&#10; ISO C++&#10; , &#10; library&#10; " /><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 @@ ...@@ -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-&gt;"<br />       10. Invocation of member functions with "this-&gt;"<br />
...@@ -356,7 +356,7 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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> ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 &lt;cstdio&gt; names presents an<br />     The encapsulation of certain C header &lt;cstdio&gt; 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 />
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -2,7 +2,7 @@ ...@@ -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="&#10; ISO C++&#10; , &#10; library&#10; " /><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="&#10; ISO C++&#10; , &#10; library&#10; " /><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
......
<?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="&#10; ISO C++&#10; , &#10; library&#10; " /><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="&#10; ISO C++&#10; , &#10; library&#10; " /><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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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">
......
<?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="&#10; ISO C++&#10; , &#10; library&#10; " /><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="&#10; ISO C++&#10; , &#10; library&#10; " /><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&lt;&gt;</code> is used. <code class="code">transform&lt;&gt;</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 &lt;string&gt; #include &lt;string&gt;
...@@ -86,4 +86,4 @@ ...@@ -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>
<?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="&#10; ISO C++&#10; , &#10; library&#10; " /><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="&#10; ISO C++&#10; , &#10; library&#10; " /><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.
......
<?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="&#10; ISO C++&#10; , &#10; library&#10; " /><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="&#10; ISO C++&#10; , &#10; library&#10; " /><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 @@ ...@@ -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. ...@@ -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 ...@@ -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 ...@@ -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: ...@@ -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: ...@@ -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
......
<?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="&#10; ISO C++&#10; , &#10; library&#10; , &#10; algorithm&#10; " /><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="&#10; ISO C++&#10; , &#10; library&#10; , &#10; algorithm&#10; " /><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:
......
...@@ -187,7 +187,7 @@ template&lt;typename _Tp, typename _Allocator = allocator&lt;_Tp&gt; ...@@ -187,7 +187,7 @@ template&lt;typename _Tp, typename _Allocator = allocator&lt;_Tp&gt;
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
......
<?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="&#10; C++&#10; , &#10; library&#10; , &#10; parallel&#10; " /><meta name="keywords" content="&#10; ISO C++&#10; , &#10; library&#10; " /><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="&#10; C++&#10; , &#10; library&#10; , &#10; parallel&#10; " /><meta name="keywords" content="&#10; ISO C++&#10; , &#10; library&#10; " /><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
......
...@@ -27,15 +27,15 @@ namespace std ...@@ -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() ...@@ -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. ...@@ -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> ...@@ -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 ...@@ -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 @@ ...@@ -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 @@ ...@@ -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?
......
<?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="&#10; ISO C++&#10; , &#10; library&#10; " /><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="&#10; ISO C++&#10; , &#10; library&#10; " /><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>
......
<?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="&#10; ISO C++&#10; , &#10; library&#10; " /><meta name="keywords" content="&#10; ISO C++&#10; , &#10; library&#10; " /><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="&#10; ISO C++&#10; , &#10; library&#10; " /><meta name="keywords" content="&#10; ISO C++&#10; , &#10; library&#10; " /><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 ...@@ -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.
......
<?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="&#10; ISO C++&#10; , &#10; library&#10; " /><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="&#10; ISO C++&#10; , &#10; library&#10; " /><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, ...@@ -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. ...@@ -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: ...@@ -179,7 +179,7 @@ The two required specializations are implemented as follows:
codecvt&lt;char, char, mbstate_t&gt; codecvt&lt;char, char, mbstate_t&gt;
</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. ...@@ -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">
......
<?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="&#10; ISO C++&#10; , &#10; library&#10; " /><meta name="keywords" content="&#10; ISO C++&#10; , &#10; library&#10; " /><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 &lt;ext/concurrence.h&gt; 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="&#10; ISO C++&#10; , &#10; library&#10; " /><meta name="keywords" content="&#10; ISO C++&#10; , &#10; library&#10; " /><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 &lt;ext/concurrence.h&gt; 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>
......
...@@ -133,7 +133,7 @@ model. ...@@ -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() ...@@ -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() ...@@ -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() ...@@ -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 @@ ...@@ -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">&lt;numeric&gt;</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">&lt;algorithm&gt;</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">&lt;set&gt;</code> and <code class="code">&lt;map&gt;</code> are included in the parallel mode:</p><div class="itemizedlist"><ul type="disc"><li><p><code class="code">std::(multi_)map/set&lt;T&gt;::(multi_)map/set(Iterator begin, Iterator end)</code> (bulk construction)</p></li><li><p><code class="code">std::(multi_)map/set&lt;T&gt;::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. ...@@ -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&lt;T&gt;</code> contains a pointer of A <code class="classname">shared_ptr&lt;T&gt;</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. ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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. ...@@ -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. ...@@ -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. ...@@ -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. ...@@ -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. ...@@ -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
......
<?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="&#10; ISO C++&#10; , &#10; library&#10; " /><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="&#10; ISO C++&#10; , &#10; library&#10; " /><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 ...@@ -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 ...@@ -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
......
...@@ -154,7 +154,7 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -1251,4 +1251,4 @@
</article> </article>
</book> </book>
\ No newline at end of file
...@@ -99,7 +99,7 @@ given compiler ABI. In a nutshell: ...@@ -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. ...@@ -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. ...@@ -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 ...@@ -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. ...@@ -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. ...@@ -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>
\ No newline at end of file
...@@ -19,7 +19,7 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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. ...@@ -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. ...@@ -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-&gt;" 10. Invocation of member functions with "this-&gt;"
...@@ -679,7 +679,7 @@ indicate a place that may require attention for multi-thread safety. ...@@ -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. ...@@ -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. ...@@ -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. ...@@ -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. ...@@ -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> ...@@ -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> ...@@ -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> ...@@ -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 &lt;cstdio&gt; names presents an The encapsulation of certain C header &lt;cstdio&gt; 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. ...@@ -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) ...@@ -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> ...@@ -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&lt;..&gt;</code>) which opens a file <code>std::basic_streambuf&lt;..&gt;</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], [ ...@@ -1312,4 +1312,4 @@ AC_DEFUN([AC_HEADER_UNORDERED_SET], [
</bibliography> </bibliography>
</sect1> </sect1>
\ No newline at end of file
...@@ -240,8 +240,8 @@ else return false.</para></listitem> ...@@ -240,8 +240,8 @@ else return false.</para></listitem>
</para> </para>
<para> <para>
Where, k =&gt; 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 =&gt; 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> ...@@ -556,4 +556,4 @@ equivalent.</para></listitem>
</sect2> </sect2>
</sect1> </sect1>
\ No newline at end of file
...@@ -104,7 +104,7 @@ ...@@ -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 @@ ...@@ -351,4 +351,4 @@
</sect2> </sect2>
</sect1> </sect1>
\ No newline at end of file
...@@ -190,7 +190,7 @@ UTF-16, UTF8, UTF16). ...@@ -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. &quot;UCS-2&quot; and &quot;UTF-8&quot;) are necessary, encodings (i.e. &quot;UCS-2&quot; and &quot;UTF-8&quot;) 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. ...@@ -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&lt;char, char, mbstate_t&gt; ...@@ -301,7 +301,7 @@ codecvt&lt;char, char, mbstate_t&gt;
</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. ...@@ -727,4 +727,4 @@ codecvt usage.
</bibliography> </bibliography>
</sect1> </sect1>
\ No newline at end of file
...@@ -194,7 +194,7 @@ host hardware and operating system. ...@@ -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 ...@@ -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. ...@@ -99,7 +99,7 @@ characters.
<listitem> <listitem>
<para> <para>
Get the ctype&lt;wchar_t&gt;::mask stuff under control. Need to Get the ctype&lt;wchar_t&gt;::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&lt;wchar_t&gt; redefine mask for ctype&lt;wchar_t&gt;
</para></listitem> </para></listitem>
...@@ -256,4 +256,4 @@ characters. ...@@ -256,4 +256,4 @@ characters.
</bibliography> </bibliography>
</sect1> </sect1>
\ No newline at end of file
...@@ -582,7 +582,7 @@ template&lt;typename _Tp, typename _Allocator = allocator&lt;_Tp&gt; ...@@ -582,7 +582,7 @@ template&lt;typename _Tp, typename _Allocator = allocator&lt;_Tp&gt;
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 @@ ...@@ -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 @@ ...@@ -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. ...@@ -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. ...@@ -449,4 +449,4 @@ Namespace pb_ds moved to __gnu_pb_ds.
</sect2> </sect2>
</sect1> </sect1>
\ No newline at end of file
...@@ -357,7 +357,7 @@ get_temporary_buffer(5, (int*)0); ...@@ -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); ...@@ -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: ...@@ -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. ...@@ -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: ...@@ -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: ...@@ -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: ...@@ -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: ...@@ -650,4 +650,4 @@ global locale" (emphasis Paolo), that is:
</bibliography> </bibliography>
</sect1> </sect1>
\ No newline at end of file
...@@ -238,7 +238,7 @@ model. ...@@ -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() ...@@ -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() ...@@ -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. ...@@ -601,4 +601,4 @@ Library and Tools.
</bibliography> </bibliography>
</sect1> </sect1>
\ No newline at end of file
...@@ -83,20 +83,13 @@ specific compiler flag. ...@@ -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&lt;T&gt;::(multi_)map/set(Iterator begin, Iterator end)</code> (bulk construction)</para></listitem>
<listitem><para><code>std::(multi_)map/set&lt;T&gt;::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 ...@@ -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. ...@@ -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() ...@@ -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 ...@@ -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> ...@@ -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>. ...@@ -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. ...@@ -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 ...@@ -2238,4 +2238,4 @@ Footnotes
shared_ptr</ulink> library. shared_ptr</ulink> library.
</para> </para>
</sect2> </sect2>
\ No newline at end of file
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
<code>transform&lt;&gt;</code> is used. <code>transform&lt;&gt;</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 @@ ...@@ -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 @@ ...@@ -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 ...@@ -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 ...@@ -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: ...@@ -820,4 +820,4 @@ Currently plans for supported keywords include:
</sect2> </sect2>
</sect1> </sect1>
\ No newline at end of file
...@@ -110,7 +110,7 @@ ...@@ -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 @@ ...@@ -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 ...@@ -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.) ...@@ -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>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment