*: Regenerate.
2011-11-03 Benjamin Kosnik <bkoz@redhat.com> * doc/html/*: Regenerate. From-SVN: r180837
This commit is contained in:
parent
e941124721
commit
b22e43930f
|
@ -1,3 +1,7 @@
|
||||||
|
2011-11-03 Benjamin Kosnik <bkoz@redhat.com>
|
||||||
|
|
||||||
|
* doc/html/*: Regenerate.
|
||||||
|
|
||||||
2011-11-02 Richard B. Kreckel <kreckel@ginac.de>
|
2011-11-02 Richard B. Kreckel <kreckel@ginac.de>
|
||||||
Paolo Carlini <paolo.carlini@oracle.com>
|
Paolo Carlini <paolo.carlini@oracle.com>
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
<a class="link" href="http://www.fsf.org/">FSF
|
<a class="link" href="http://www.fsf.org/">FSF
|
||||||
</a>
|
</a>
|
||||||
</p></div><div><div class="legalnotice" title="Legal Notice"><a id="id548867"/><p>
|
</p></div><div><div class="legalnotice" title="Legal Notice"><a id="id404125"/><p>
|
||||||
<a class="link" href="manual/license.html" title="License">License
|
<a class="link" href="manual/license.html" title="License">License
|
||||||
</a>
|
</a>
|
||||||
</p></div></div></div><hr/></div><p>
|
</p></div></div></div><hr/></div><p>
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
2008, 2010
|
2008, 2010
|
||||||
|
|
||||||
<a class="link" href="http://www.fsf.org">FSF</a>
|
<a class="link" href="http://www.fsf.org">FSF</a>
|
||||||
</p></div></div><hr/></div><div class="qandaset" title="Frequently Asked Questions"><a id="id522425"/><dl><dt/><dd><dl><dt>1.1. <a href="faq.html#faq.what">
|
</p></div></div><hr/></div><div class="qandaset" title="Frequently Asked Questions"><a id="id409549"/><dl><dt/><dd><dl><dt>1.1. <a href="faq.html#faq.what">
|
||||||
What is libstdc++?
|
What is libstdc++?
|
||||||
</a></dt><dt>1.2. <a href="faq.html#faq.why">
|
</a></dt><dt>1.2. <a href="faq.html#faq.why">
|
||||||
Why should I use libstdc++?
|
Why should I use libstdc++?
|
||||||
|
@ -145,7 +145,7 @@
|
||||||
Who's in charge of it?
|
Who's in charge of it?
|
||||||
</p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-who"/></td><td align="left" valign="top"><p>
|
</p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-who"/></td><td align="left" valign="top"><p>
|
||||||
The libstdc++ project is contributed to by several developers
|
The libstdc++ project is contributed to by several developers
|
||||||
all over the world, in the same way as GCC or Linux.
|
all over the world, in the same way as GCC or the Linux kernel.
|
||||||
Benjamin Kosnik, Gabriel Dos Reis, Phil Edwards, Ulrich Drepper,
|
Benjamin Kosnik, Gabriel Dos Reis, Phil Edwards, Ulrich Drepper,
|
||||||
Loren James Rittle, and Paolo Carlini are the lead maintainers of
|
Loren James Rittle, and Paolo Carlini are the lead maintainers of
|
||||||
the SVN archive.
|
the SVN archive.
|
||||||
|
@ -237,7 +237,7 @@
|
||||||
</a></dt></dl></td></tr><tr class="question" title="3.1."><td align="left" valign="top"><a id="faq.how_to_install"/><a id="q-how_to_install"/><p><strong>3.1.</strong></p></td><td align="left" valign="top"><p>How do I install libstdc++?
|
</a></dt></dl></td></tr><tr class="question" title="3.1."><td align="left" valign="top"><a id="faq.how_to_install"/><a id="q-how_to_install"/><p><strong>3.1.</strong></p></td><td align="left" valign="top"><p>How do I install libstdc++?
|
||||||
</p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-how_to_install"/></td><td align="left" valign="top"><p>
|
</p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-how_to_install"/></td><td align="left" valign="top"><p>
|
||||||
Often libstdc++ comes pre-installed as an integral part of many
|
Often libstdc++ comes pre-installed as an integral part of many
|
||||||
existing Linux and Unix systems, as well as many embedded
|
existing GNU/Linux and Unix systems, as well as many embedded
|
||||||
development tools. It may be necessary to install extra
|
development tools. It may be necessary to install extra
|
||||||
development packages to get the headers, or the documentation, or
|
development packages to get the headers, or the documentation, or
|
||||||
the source: please consult your vendor for details.
|
the source: please consult your vendor for details.
|
||||||
|
|
|
@ -35,13 +35,13 @@
|
||||||
</a></span></dt><dd><dl><dt><span class="section"><a href="manual/diagnostics.html#std.diagnostics.exceptions">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="manual/diagnostics.html#std.diagnostics.exceptions.api">API Reference</a></span></dt><dt><span class="section"><a href="manual/diagnostics.html#std.diagnostics.exceptions.data">Adding Data to <code class="classname">exception</code></a></span></dt></dl></dd><dt><span class="section"><a href="manual/bk01pt02ch05s02.html">Concept Checking</a></span></dt></dl></dd><dt><span class="chapter"><a href="manual/utilities.html">6.
|
</a></span></dt><dd><dl><dt><span class="section"><a href="manual/diagnostics.html#std.diagnostics.exceptions">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="manual/diagnostics.html#std.diagnostics.exceptions.api">API Reference</a></span></dt><dt><span class="section"><a href="manual/diagnostics.html#std.diagnostics.exceptions.data">Adding Data to <code class="classname">exception</code></a></span></dt></dl></dd><dt><span class="section"><a href="manual/bk01pt02ch05s02.html">Concept Checking</a></span></dt></dl></dd><dt><span class="chapter"><a href="manual/utilities.html">6.
|
||||||
Utilities
|
Utilities
|
||||||
|
|
||||||
</a></span></dt><dd><dl><dt><span class="section"><a href="manual/utilities.html#std.util.functors">Functors</a></span></dt><dt><span class="section"><a href="manual/pairs.html">Pairs</a></span></dt><dt><span class="section"><a href="manual/memory.html">Memory</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#std.util.memory.allocator">Allocators</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#allocator.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/memory.html#allocator.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="manual/memory.html#allocator.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#id633362">Interface Design</a></span></dt><dt><span class="section"><a href="manual/memory.html#id633392">Selecting Default Allocation Policy</a></span></dt><dt><span class="section"><a href="manual/memory.html#id633502">Disabling Memory Caching</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#allocator.using">Using a Specific Allocator</a></span></dt><dt><span class="section"><a href="manual/memory.html#allocator.custom">Custom Allocators</a></span></dt><dt><span class="section"><a href="manual/memory.html#allocator.ext">Extension Allocators</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#std.util.memory.auto_ptr">auto_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#auto_ptr.limitations">Limitations</a></span></dt><dt><span class="section"><a href="manual/memory.html#auto_ptr.using">Use in Containers</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#std.util.memory.shared_ptr">shared_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#shared_ptr.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/memory.html#shared_ptr.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="manual/memory.html#shared_ptr.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#id634511">Class Hierarchy</a></span></dt><dt><span class="section"><a href="manual/memory.html#id634689">Thread Safety</a></span></dt><dt><span class="section"><a href="manual/memory.html#id634759">Selecting Lock Policy</a></span></dt><dt><span class="section"><a href="manual/memory.html#id634881">Dual C++0x and TR1 Implementation</a></span></dt><dt><span class="section"><a href="manual/memory.html#id634937">Related functions and classes</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#shared_ptr.using">Use</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#id635086">Examples</a></span></dt><dt><span class="section"><a href="manual/memory.html#id635116">Unresolved Issues</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#shared_ptr.ack">Acknowledgments</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/traits.html">Traits</a></span></dt></dl></dd><dt><span class="chapter"><a href="manual/strings.html">7.
|
</a></span></dt><dd><dl><dt><span class="section"><a href="manual/utilities.html#std.util.functors">Functors</a></span></dt><dt><span class="section"><a href="manual/pairs.html">Pairs</a></span></dt><dt><span class="section"><a href="manual/memory.html">Memory</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#std.util.memory.allocator">Allocators</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#allocator.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/memory.html#allocator.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="manual/memory.html#allocator.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#id463447">Interface Design</a></span></dt><dt><span class="section"><a href="manual/memory.html#id463477">Selecting Default Allocation Policy</a></span></dt><dt><span class="section"><a href="manual/memory.html#id463588">Disabling Memory Caching</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#allocator.using">Using a Specific Allocator</a></span></dt><dt><span class="section"><a href="manual/memory.html#allocator.custom">Custom Allocators</a></span></dt><dt><span class="section"><a href="manual/memory.html#allocator.ext">Extension Allocators</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#std.util.memory.auto_ptr">auto_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#auto_ptr.limitations">Limitations</a></span></dt><dt><span class="section"><a href="manual/memory.html#auto_ptr.using">Use in Containers</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#std.util.memory.shared_ptr">shared_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#shared_ptr.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/memory.html#shared_ptr.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="manual/memory.html#shared_ptr.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#id464596">Class Hierarchy</a></span></dt><dt><span class="section"><a href="manual/memory.html#id464775">Thread Safety</a></span></dt><dt><span class="section"><a href="manual/memory.html#id464844">Selecting Lock Policy</a></span></dt><dt><span class="section"><a href="manual/memory.html#id464966">Dual C++0x and TR1 Implementation</a></span></dt><dt><span class="section"><a href="manual/memory.html#id465022">Related functions and classes</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#shared_ptr.using">Use</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#id465171">Examples</a></span></dt><dt><span class="section"><a href="manual/memory.html#id465201">Unresolved Issues</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#shared_ptr.ack">Acknowledgments</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/traits.html">Traits</a></span></dt></dl></dd><dt><span class="chapter"><a href="manual/strings.html">7.
|
||||||
Strings
|
Strings
|
||||||
|
|
||||||
</a></span></dt><dd><dl><dt><span class="section"><a href="manual/strings.html#std.strings.string">String Classes</a></span></dt><dd><dl><dt><span class="section"><a href="manual/strings.html#strings.string.simple">Simple Transformations</a></span></dt><dt><span class="section"><a href="manual/strings.html#strings.string.case">Case Sensitivity</a></span></dt><dt><span class="section"><a href="manual/strings.html#strings.string.character_types">Arbitrary Character Types</a></span></dt><dt><span class="section"><a href="manual/strings.html#strings.string.token">Tokenizing</a></span></dt><dt><span class="section"><a href="manual/strings.html#strings.string.shrink">Shrink to Fit</a></span></dt><dt><span class="section"><a href="manual/strings.html#strings.string.Cstring">CString (MFC)</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="manual/localization.html">8.
|
</a></span></dt><dd><dl><dt><span class="section"><a href="manual/strings.html#std.strings.string">String Classes</a></span></dt><dd><dl><dt><span class="section"><a href="manual/strings.html#strings.string.simple">Simple Transformations</a></span></dt><dt><span class="section"><a href="manual/strings.html#strings.string.case">Case Sensitivity</a></span></dt><dt><span class="section"><a href="manual/strings.html#strings.string.character_types">Arbitrary Character Types</a></span></dt><dt><span class="section"><a href="manual/strings.html#strings.string.token">Tokenizing</a></span></dt><dt><span class="section"><a href="manual/strings.html#strings.string.shrink">Shrink to Fit</a></span></dt><dt><span class="section"><a href="manual/strings.html#strings.string.Cstring">CString (MFC)</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="manual/localization.html">8.
|
||||||
Localization
|
Localization
|
||||||
|
|
||||||
</a></span></dt><dd><dl><dt><span class="section"><a href="manual/localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="manual/localization.html#std.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="section"><a href="manual/localization.html#locales.locale.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/localization.html#locales.locale.design">Design</a></span></dt><dt><span class="section"><a href="manual/localization.html#locales.locale.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/localization.html#locale.impl.c">Interacting with "C" locales</a></span></dt></dl></dd><dt><span class="section"><a href="manual/localization.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#std.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#facet.ctype.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#id649036">Specializations</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.codecvt.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#codecvt.design.wchar_t_size"><span class="type">wchar_t</span> Size</a></span></dt><dt><span class="section"><a href="manual/facets.html#codecvt.design.unicode">Support for Unicode</a></span></dt><dt><span class="section"><a href="manual/facets.html#codecvt.design.issues">Other Issues</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.codecvt.use">Use</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#manual.localization.facet.messages">messages</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#facet.messages.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.messages.design">Design</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.messages.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#messages.impl.models">Models</a></span></dt><dt><span class="section"><a href="manual/facets.html#messages.impl.gnu">The GNU Model</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#facet.messages.use">Use</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="chapter"><a href="manual/containers.html">9.
|
</a></span></dt><dd><dl><dt><span class="section"><a href="manual/localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="manual/localization.html#std.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="section"><a href="manual/localization.html#locales.locale.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/localization.html#locales.locale.design">Design</a></span></dt><dt><span class="section"><a href="manual/localization.html#locales.locale.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/localization.html#locale.impl.c">Interacting with "C" locales</a></span></dt></dl></dd><dt><span class="section"><a href="manual/localization.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#std.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#facet.ctype.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#id479120">Specializations</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.codecvt.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#codecvt.design.wchar_t_size"><span class="type">wchar_t</span> Size</a></span></dt><dt><span class="section"><a href="manual/facets.html#codecvt.design.unicode">Support for Unicode</a></span></dt><dt><span class="section"><a href="manual/facets.html#codecvt.design.issues">Other Issues</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.codecvt.use">Use</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#manual.localization.facet.messages">messages</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#facet.messages.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.messages.design">Design</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.messages.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#messages.impl.models">Models</a></span></dt><dt><span class="section"><a href="manual/facets.html#messages.impl.gnu">The GNU Model</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#facet.messages.use">Use</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="chapter"><a href="manual/containers.html">9.
|
||||||
Containers
|
Containers
|
||||||
|
|
||||||
</a></span></dt><dd><dl><dt><span class="section"><a href="manual/containers.html#std.containers.sequences">Sequences</a></span></dt><dd><dl><dt><span class="section"><a href="manual/containers.html#containers.sequences.list">list</a></span></dt><dd><dl><dt><span class="section"><a href="manual/containers.html#sequences.list.size">list::size() is O(n)</a></span></dt></dl></dd><dt><span class="section"><a href="manual/containers.html#containers.sequences.vector">vector</a></span></dt><dd><dl><dt><span class="section"><a href="manual/containers.html#sequences.vector.management">Space Overhead Management</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/associative.html">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="manual/associative.html#containers.associative.insert_hints">Insertion Hints</a></span></dt><dt><span class="section"><a href="manual/associative.html#containers.associative.bitset">bitset</a></span></dt><dd><dl><dt><span class="section"><a href="manual/associative.html#associative.bitset.size_variable">Size Variable</a></span></dt><dt><span class="section"><a href="manual/associative.html#associative.bitset.type_string">Type String</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/containers_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="manual/containers_and_c.html#containers.c.vs_array">Containers vs. Arrays</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="manual/iterators.html">10.
|
</a></span></dt><dd><dl><dt><span class="section"><a href="manual/containers.html#std.containers.sequences">Sequences</a></span></dt><dd><dl><dt><span class="section"><a href="manual/containers.html#containers.sequences.list">list</a></span></dt><dd><dl><dt><span class="section"><a href="manual/containers.html#sequences.list.size">list::size() is O(n)</a></span></dt></dl></dd><dt><span class="section"><a href="manual/containers.html#containers.sequences.vector">vector</a></span></dt><dd><dl><dt><span class="section"><a href="manual/containers.html#sequences.vector.management">Space Overhead Management</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/associative.html">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="manual/associative.html#containers.associative.insert_hints">Insertion Hints</a></span></dt><dt><span class="section"><a href="manual/associative.html#containers.associative.bitset">bitset</a></span></dt><dd><dl><dt><span class="section"><a href="manual/associative.html#associative.bitset.size_variable">Size Variable</a></span></dt><dt><span class="section"><a href="manual/associative.html#associative.bitset.type_string">Type String</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/containers_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="manual/containers_and_c.html#containers.c.vs_array">Containers vs. Arrays</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="manual/iterators.html">10.
|
||||||
|
@ -145,20 +145,20 @@
|
||||||
Existing tests
|
Existing tests
|
||||||
</a></span></dt><dt><span class="section"><a href="manual/test.html#test.exception.safety.containers">
|
</a></span></dt><dt><span class="section"><a href="manual/test.html#test.exception.safety.containers">
|
||||||
C++0x Requirements Test Sequence Descriptions
|
C++0x Requirements Test Sequence Descriptions
|
||||||
</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a href="manual/abi.html">ABI Policy and Guidelines</a></span></dt><dd><dl><dt><span class="section"><a href="manual/abi.html#abi.cxx_interface">The C++ Interface</a></span></dt><dt><span class="section"><a href="manual/abi.html#abi.versioning">Versioning</a></span></dt><dd><dl><dt><span class="section"><a href="manual/abi.html#abi.versioning.goals">Goals</a></span></dt><dt><span class="section"><a href="manual/abi.html#abi.versioning.history">History</a></span></dt><dt><span class="section"><a href="manual/abi.html#abi.versioning.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="manual/abi.html#abi.versioning.config">Configuring</a></span></dt><dt><span class="section"><a href="manual/abi.html#abi.versioning.active">Checking Active</a></span></dt></dl></dd><dt><span class="section"><a href="manual/abi.html#abi.changes_allowed">Allowed Changes</a></span></dt><dt><span class="section"><a href="manual/abi.html#abi.changes_no">Prohibited Changes</a></span></dt><dt><span class="section"><a href="manual/abi.html#abi.impl">Implementation</a></span></dt><dt><span class="section"><a href="manual/abi.html#abi.testing">Testing</a></span></dt><dd><dl><dt><span class="section"><a href="manual/abi.html#abi.testing.single">Single ABI Testing</a></span></dt><dt><span class="section"><a href="manual/abi.html#abi.testing.multi">Multiple ABI Testing</a></span></dt></dl></dd><dt><span class="section"><a href="manual/abi.html#abi.issues">Outstanding Issues</a></span></dt></dl></dd><dt><span class="section"><a href="manual/api.html">API Evolution and Deprecation History</a></span></dt><dd><dl><dt><span class="section"><a href="manual/api.html#api.rel_300"><code class="constant">3.0</code></a></span></dt><dt><span class="section"><a href="manual/api.html#api.rel_310"><code class="constant">3.1</code></a></span></dt><dt><span class="section"><a href="manual/api.html#api.rel_320"><code class="constant">3.2</code></a></span></dt><dt><span class="section"><a href="manual/api.html#api.rel_330"><code class="constant">3.3</code></a></span></dt><dt><span class="section"><a href="manual/api.html#api.rel_340"><code class="constant">3.4</code></a></span></dt><dt><span class="section"><a href="manual/api.html#api.rel_400"><code class="constant">4.0</code></a></span></dt><dt><span class="section"><a href="manual/api.html#api.rel_410"><code class="constant">4.1</code></a></span></dt><dt><span class="section"><a href="manual/api.html#api.rel_420"><code class="constant">4.2</code></a></span></dt><dt><span class="section"><a href="manual/api.html#api.rel_430"><code class="constant">4.3</code></a></span></dt><dt><span class="section"><a href="manual/api.html#api.rel_440"><code class="constant">4.4</code></a></span></dt><dt><span class="section"><a href="manual/api.html#api.rel_450"><code class="constant">4.5</code></a></span></dt></dl></dd><dt><span class="section"><a href="manual/backwards.html">Backwards Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="manual/backwards.html#backwards.first">First</a></span></dt><dd><dl><dt><span class="section"><a href="manual/backwards.html#id710570">No <code class="code">ios_base</code></a></span></dt><dt><span class="section"><a href="manual/backwards.html#id710603">No <code class="code">cout</code> in <code class="code">ostream.h</code>, no <code class="code">cin</code> in <code class="code">istream.h</code></a></span></dt></dl></dd><dt><span class="section"><a href="manual/backwards.html#backwards.second">Second</a></span></dt><dd><dl><dt><span class="section"><a href="manual/backwards.html#id710706">Namespace <code class="code">std::</code> not supported</a></span></dt><dt><span class="section"><a href="manual/backwards.html#id710832">Illegal iterator usage</a></span></dt><dt><span class="section"><a href="manual/backwards.html#id710893"><code class="code">isspace</code> from <code class="filename">cctype</code> is a macro
|
</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a href="manual/abi.html">ABI Policy and Guidelines</a></span></dt><dd><dl><dt><span class="section"><a href="manual/abi.html#abi.cxx_interface">The C++ Interface</a></span></dt><dt><span class="section"><a href="manual/abi.html#abi.versioning">Versioning</a></span></dt><dd><dl><dt><span class="section"><a href="manual/abi.html#abi.versioning.goals">Goals</a></span></dt><dt><span class="section"><a href="manual/abi.html#abi.versioning.history">History</a></span></dt><dt><span class="section"><a href="manual/abi.html#abi.versioning.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="manual/abi.html#abi.versioning.config">Configuring</a></span></dt><dt><span class="section"><a href="manual/abi.html#abi.versioning.active">Checking Active</a></span></dt></dl></dd><dt><span class="section"><a href="manual/abi.html#abi.changes_allowed">Allowed Changes</a></span></dt><dt><span class="section"><a href="manual/abi.html#abi.changes_no">Prohibited Changes</a></span></dt><dt><span class="section"><a href="manual/abi.html#abi.impl">Implementation</a></span></dt><dt><span class="section"><a href="manual/abi.html#abi.testing">Testing</a></span></dt><dd><dl><dt><span class="section"><a href="manual/abi.html#abi.testing.single">Single ABI Testing</a></span></dt><dt><span class="section"><a href="manual/abi.html#abi.testing.multi">Multiple ABI Testing</a></span></dt></dl></dd><dt><span class="section"><a href="manual/abi.html#abi.issues">Outstanding Issues</a></span></dt></dl></dd><dt><span class="section"><a href="manual/api.html">API Evolution and Deprecation History</a></span></dt><dd><dl><dt><span class="section"><a href="manual/api.html#api.rel_300"><code class="constant">3.0</code></a></span></dt><dt><span class="section"><a href="manual/api.html#api.rel_310"><code class="constant">3.1</code></a></span></dt><dt><span class="section"><a href="manual/api.html#api.rel_320"><code class="constant">3.2</code></a></span></dt><dt><span class="section"><a href="manual/api.html#api.rel_330"><code class="constant">3.3</code></a></span></dt><dt><span class="section"><a href="manual/api.html#api.rel_340"><code class="constant">3.4</code></a></span></dt><dt><span class="section"><a href="manual/api.html#api.rel_400"><code class="constant">4.0</code></a></span></dt><dt><span class="section"><a href="manual/api.html#api.rel_410"><code class="constant">4.1</code></a></span></dt><dt><span class="section"><a href="manual/api.html#api.rel_420"><code class="constant">4.2</code></a></span></dt><dt><span class="section"><a href="manual/api.html#api.rel_430"><code class="constant">4.3</code></a></span></dt><dt><span class="section"><a href="manual/api.html#api.rel_440"><code class="constant">4.4</code></a></span></dt><dt><span class="section"><a href="manual/api.html#api.rel_450"><code class="constant">4.5</code></a></span></dt></dl></dd><dt><span class="section"><a href="manual/backwards.html">Backwards Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="manual/backwards.html#backwards.first">First</a></span></dt><dd><dl><dt><span class="section"><a href="manual/backwards.html#id540654">No <code class="code">ios_base</code></a></span></dt><dt><span class="section"><a href="manual/backwards.html#id540687">No <code class="code">cout</code> in <code class="code">ostream.h</code>, no <code class="code">cin</code> in <code class="code">istream.h</code></a></span></dt></dl></dd><dt><span class="section"><a href="manual/backwards.html#backwards.second">Second</a></span></dt><dd><dl><dt><span class="section"><a href="manual/backwards.html#id540790">Namespace <code class="code">std::</code> not supported</a></span></dt><dt><span class="section"><a href="manual/backwards.html#id540916">Illegal iterator usage</a></span></dt><dt><span class="section"><a href="manual/backwards.html#id540977"><code class="code">isspace</code> from <code class="filename">cctype</code> is a macro
|
||||||
</a></span></dt><dt><span class="section"><a href="manual/backwards.html#id710989">No <code class="code">vector::at</code>, <code class="code">deque::at</code>, <code class="code">string::at</code></a></span></dt><dt><span class="section"><a href="manual/backwards.html#id711028">No <code class="code">std::char_traits<char>::eof</code></a></span></dt><dt><span class="section"><a href="manual/backwards.html#id711046">No <code class="code">string::clear</code></a></span></dt><dt><span class="section"><a href="manual/backwards.html#id711092">
|
</a></span></dt><dt><span class="section"><a href="manual/backwards.html#id541073">No <code class="code">vector::at</code>, <code class="code">deque::at</code>, <code class="code">string::at</code></a></span></dt><dt><span class="section"><a href="manual/backwards.html#id541112">No <code class="code">std::char_traits<char>::eof</code></a></span></dt><dt><span class="section"><a href="manual/backwards.html#id541130">No <code class="code">string::clear</code></a></span></dt><dt><span class="section"><a href="manual/backwards.html#id541176">
|
||||||
Removal of <code class="code">ostream::form</code> and <code class="code">istream::scan</code>
|
Removal of <code class="code">ostream::form</code> and <code class="code">istream::scan</code>
|
||||||
extensions
|
extensions
|
||||||
</a></span></dt><dt><span class="section"><a href="manual/backwards.html#id711111">No <code class="code">basic_stringbuf</code>, <code class="code">basic_stringstream</code></a></span></dt><dt><span class="section"><a href="manual/backwards.html#id711267">Little or no wide character support</a></span></dt><dt><span class="section"><a href="manual/backwards.html#id711285">No templatized iostreams</a></span></dt><dt><span class="section"><a href="manual/backwards.html#id711304">Thread safety issues</a></span></dt></dl></dd><dt><span class="section"><a href="manual/backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span class="section"><a href="manual/backwards.html#id711429">Pre-ISO headers moved to backwards or removed</a></span></dt><dt><span class="section"><a href="manual/backwards.html#id711514">Extension headers hash_map, hash_set moved to ext or backwards</a></span></dt><dt><span class="section"><a href="manual/backwards.html#id711617">No <code class="code">ios::nocreate/ios::noreplace</code>.
|
</a></span></dt><dt><span class="section"><a href="manual/backwards.html#id541195">No <code class="code">basic_stringbuf</code>, <code class="code">basic_stringstream</code></a></span></dt><dt><span class="section"><a href="manual/backwards.html#id541351">Little or no wide character support</a></span></dt><dt><span class="section"><a href="manual/backwards.html#id541369">No templatized iostreams</a></span></dt><dt><span class="section"><a href="manual/backwards.html#id541388">Thread safety issues</a></span></dt></dl></dd><dt><span class="section"><a href="manual/backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span class="section"><a href="manual/backwards.html#id541513">Pre-ISO headers moved to backwards or removed</a></span></dt><dt><span class="section"><a href="manual/backwards.html#id541598">Extension headers hash_map, hash_set moved to ext or backwards</a></span></dt><dt><span class="section"><a href="manual/backwards.html#id541701">No <code class="code">ios::nocreate/ios::noreplace</code>.
|
||||||
</a></span></dt><dt><span class="section"><a href="manual/backwards.html#id711664">
|
</a></span></dt><dt><span class="section"><a href="manual/backwards.html#id541749">
|
||||||
No <code class="code">stream::attach(int fd)</code>
|
No <code class="code">stream::attach(int fd)</code>
|
||||||
</a></span></dt><dt><span class="section"><a href="manual/backwards.html#id711732">
|
</a></span></dt><dt><span class="section"><a href="manual/backwards.html#id541817">
|
||||||
Support for C++98 dialect.
|
Support for C++98 dialect.
|
||||||
</a></span></dt><dt><span class="section"><a href="manual/backwards.html#id711760">
|
</a></span></dt><dt><span class="section"><a href="manual/backwards.html#id541844">
|
||||||
Support for C++TR1 dialect.
|
Support for C++TR1 dialect.
|
||||||
</a></span></dt><dt><span class="section"><a href="manual/backwards.html#id711804">
|
</a></span></dt><dt><span class="section"><a href="manual/backwards.html#id541888">
|
||||||
Support for C++0x dialect.
|
Support for C++0x dialect.
|
||||||
</a></span></dt><dt><span class="section"><a href="manual/backwards.html#id711882">
|
</a></span></dt><dt><span class="section"><a href="manual/backwards.html#id541966">
|
||||||
Container::iterator_type is not necessarily Container::value_type*
|
Container::iterator_type is not necessarily Container::value_type*
|
||||||
</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="appendix"><a href="manual/appendix_free.html">C.
|
</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="appendix"><a href="manual/appendix_free.html">C.
|
||||||
Free Software Needs Free Documentation
|
Free Software Needs Free Documentation
|
||||||
|
|
|
@ -490,39 +490,39 @@ gcc test.c -g -O2 -L. -lone -ltwo /usr/lib/libstdc++.so.5 /usr/lib/libstdc++.so.
|
||||||
<a class="link" href="http://www.codesourcery.com/public/cxx-abi">
|
<a class="link" href="http://www.codesourcery.com/public/cxx-abi">
|
||||||
C++ ABI Summary
|
C++ ABI Summary
|
||||||
</a>
|
</a>
|
||||||
</em>. </span></p></div><div class="biblioentry" title="Intel Compilers for Linux Compatibility with the GNU Compilers"><a id="id708142"/><p><span class="title"><em>
|
</em>. </span></p></div><div class="biblioentry" title="Intel Compilers for Linux Compatibility with the GNU Compilers"><a id="id538227"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://www.intel.com/cd/software/products/asmo-na/eng/284736.htm">
|
<a class="link" href="http://www.intel.com/cd/software/products/asmo-na/eng/284736.htm">
|
||||||
Intel Compilers for Linux Compatibility with the GNU Compilers
|
Intel Compilers for Linux Compatibility with the GNU Compilers
|
||||||
</a>
|
</a>
|
||||||
</em>. </span></p></div><div class="biblioentry" title="Linker and Libraries Guide (document 819-0690)"><a id="id708158"/><p><span class="title"><em>
|
</em>. </span></p></div><div class="biblioentry" title="Linker and Libraries Guide (document 819-0690)"><a id="id538242"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://download.oracle.com/docs/cd/E19963-01/html/819-0690/index.html">
|
<a class="link" href="http://download.oracle.com/docs/cd/E19963-01/html/819-0690/index.html">
|
||||||
Linker and Libraries Guide (document 819-0690)
|
Linker and Libraries Guide (document 819-0690)
|
||||||
</a>
|
</a>
|
||||||
</em>. </span></p></div><div class="biblioentry" title="Sun Studio 11: C++ Migration Guide (document 819-3689)"><a id="id708173"/><p><span class="title"><em>
|
</em>. </span></p></div><div class="biblioentry" title="Sun Studio 11: C++ Migration Guide (document 819-3689)"><a id="id538257"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://download.oracle.com/docs/cd/E19422-01/819-3689/index.html">
|
<a class="link" href="http://download.oracle.com/docs/cd/E19422-01/819-3689/index.html">
|
||||||
Sun Studio 11: C++ Migration Guide (document 819-3689)
|
Sun Studio 11: C++ Migration Guide (document 819-3689)
|
||||||
</a>
|
</a>
|
||||||
</em>. </span></p></div><div class="biblioentry" title="How to Write Shared Libraries"><a id="id708189"/><p><span class="title"><em>
|
</em>. </span></p></div><div class="biblioentry" title="How to Write Shared Libraries"><a id="id538273"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://www.akkadia.org/drepper/dsohowto.pdf">
|
<a class="link" href="http://www.akkadia.org/drepper/dsohowto.pdf">
|
||||||
How to Write Shared Libraries
|
How to Write Shared Libraries
|
||||||
</a>
|
</a>
|
||||||
</em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span></p></div><div class="biblioentry" title="C++ ABI for the ARM Architecture"><a id="id708217"/><p><span class="title"><em>
|
</em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span></p></div><div class="biblioentry" title="C++ ABI for the ARM Architecture"><a id="id538302"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://www.arm.com/miscPDFs/8033.pdf">
|
<a class="link" href="http://www.arm.com/miscPDFs/8033.pdf">
|
||||||
C++ ABI for the ARM Architecture
|
C++ ABI for the ARM Architecture
|
||||||
</a>
|
</a>
|
||||||
</em>. </span></p></div><div class="biblioentry" title="Dynamic Shared Objects: Survey and Issues"><a id="id708232"/><p><span class="title"><em>
|
</em>. </span></p></div><div class="biblioentry" title="Dynamic Shared Objects: Survey and Issues"><a id="id538317"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1976.html">
|
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1976.html">
|
||||||
Dynamic Shared Objects: Survey and Issues
|
Dynamic Shared Objects: Survey and Issues
|
||||||
</a>
|
</a>
|
||||||
</em>. </span><span class="subtitle">
|
</em>. </span><span class="subtitle">
|
||||||
ISO C++ J16/06-0046
|
ISO C++ J16/06-0046
|
||||||
. </span><span class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span>. </span></p></div><div class="biblioentry" title="Versioning With Namespaces"><a id="id708260"/><p><span class="title"><em>
|
. </span><span class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span>. </span></p></div><div class="biblioentry" title="Versioning With Namespaces"><a id="id538344"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2013.html">
|
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2013.html">
|
||||||
Versioning With Namespaces
|
Versioning With Namespaces
|
||||||
</a>
|
</a>
|
||||||
</em>. </span><span class="subtitle">
|
</em>. </span><span class="subtitle">
|
||||||
ISO C++ J16/06-0083
|
ISO C++ J16/06-0083
|
||||||
. </span><span class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span>. </span></p></div><div class="biblioentry" title="Binary Compatibility of Shared Libraries Implemented in C++ on GNU/Linux Systems"><a id="id708287"/><p><span class="title"><em>
|
. </span><span class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span>. </span></p></div><div class="biblioentry" title="Binary Compatibility of Shared Libraries Implemented in C++ on GNU/Linux Systems"><a id="id538371"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://syrcose.ispras.ru/2009/files/SYRCoSE2009-CfP.pdf">
|
<a class="link" href="http://syrcose.ispras.ru/2009/files/SYRCoSE2009-CfP.pdf">
|
||||||
Binary Compatibility of Shared Libraries Implemented in C++
|
Binary Compatibility of Shared Libraries Implemented in C++
|
||||||
on GNU/Linux Systems
|
on GNU/Linux Systems
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
Standard Contents
|
Standard Contents
|
||||||
</th><td align="right"> <a accesskey="n" href="numerics.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 11. Algorithms"><div class="titlepage"><div><div><h2 class="title"><a id="std.algorithms"/>Chapter 11.
|
</th><td align="right"> <a accesskey="n" href="numerics.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 11. Algorithms"><div class="titlepage"><div><div><h2 class="title"><a id="std.algorithms"/>Chapter 11.
|
||||||
Algorithms
|
Algorithms
|
||||||
<a id="id652390" class="indexterm"/>
|
<a id="id482474" class="indexterm"/>
|
||||||
</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="algorithms.html#std.algorithms.mutating">Mutating</a></span></dt><dd><dl><dt><span class="section"><a href="algorithms.html#algorithms.mutating.swap"><code class="function">swap</code></a></span></dt><dd><dl><dt><span class="section"><a href="algorithms.html#algorithms.swap.specializations">Specializations</a></span></dt></dl></dd></dl></dd></dl></div><p>
|
</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="algorithms.html#std.algorithms.mutating">Mutating</a></span></dt><dd><dl><dt><span class="section"><a href="algorithms.html#algorithms.mutating.swap"><code class="function">swap</code></a></span></dt><dd><dl><dt><span class="section"><a href="algorithms.html#algorithms.swap.specializations">Specializations</a></span></dt></dl></dd></dl></dd></dl></div><p>
|
||||||
The neatest accomplishment of the algorithms sect1 is that all the
|
The neatest accomplishment of the algorithms sect1 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
|
||||||
|
|
|
@ -75,11 +75,11 @@ _Alloc_traits</code> have been removed.
|
||||||
<span class="type">__alloc</span> to select an underlying allocator that
|
<span class="type">__alloc</span> to select an underlying allocator that
|
||||||
satisfied memory allocation requests. The selection of this
|
satisfied memory allocation requests. The selection of this
|
||||||
underlying allocator was not user-configurable.
|
underlying allocator was not user-configurable.
|
||||||
</p><div class="table"><a id="id708847"/><p class="title"><strong>Table B.6. Extension Allocators</strong></p><div class="table-contents"><table summary="Extension Allocators" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Allocator (3.4)</th><th style="text-align: left">Header (3.4)</th><th style="text-align: left">Allocator (3.[0-3])</th><th style="text-align: left">Header (3.[0-3])</th></tr></thead><tbody><tr><td style="text-align: left"><code class="classname">__gnu_cxx::new_allocator<T></code></td><td style="text-align: left"><code class="filename">ext/new_allocator.h</code></td><td style="text-align: left"><code class="classname">std::__new_alloc</code></td><td style="text-align: left"><code class="filename">memory</code></td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::malloc_allocator<T></code></td><td style="text-align: left"><code class="filename">ext/malloc_allocator.h</code></td><td style="text-align: left"><code class="classname">std::__malloc_alloc_template<int></code></td><td style="text-align: left"><code class="filename">memory</code></td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::debug_allocator<T></code></td><td style="text-align: left"><code class="filename">ext/debug_allocator.h</code></td><td style="text-align: left"><code class="classname">std::debug_alloc<T></code></td><td style="text-align: left"><code class="filename">memory</code></td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::__pool_alloc<T></code></td><td style="text-align: left"><code class="filename">ext/pool_allocator.h</code></td><td style="text-align: left"><code class="classname">std::__default_alloc_template<bool,int></code></td><td style="text-align: left"><code class="filename">memory</code></td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::__mt_alloc<T></code></td><td style="text-align: left"><code class="filename">ext/mt_allocator.h</code></td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::bitmap_allocator<T></code></td><td style="text-align: left"><code class="filename">ext/bitmap_allocator.h</code></td><td style="text-align: left"> </td><td style="text-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="id538931"/><p class="title"><strong>Table B.6. Extension Allocators</strong></p><div class="table-contents"><table summary="Extension Allocators" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Allocator (3.4)</th><th style="text-align: left">Header (3.4)</th><th style="text-align: left">Allocator (3.[0-3])</th><th style="text-align: left">Header (3.[0-3])</th></tr></thead><tbody><tr><td style="text-align: left"><code class="classname">__gnu_cxx::new_allocator<T></code></td><td style="text-align: left"><code class="filename">ext/new_allocator.h</code></td><td style="text-align: left"><code class="classname">std::__new_alloc</code></td><td style="text-align: left"><code class="filename">memory</code></td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::malloc_allocator<T></code></td><td style="text-align: left"><code class="filename">ext/malloc_allocator.h</code></td><td style="text-align: left"><code class="classname">std::__malloc_alloc_template<int></code></td><td style="text-align: left"><code class="filename">memory</code></td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::debug_allocator<T></code></td><td style="text-align: left"><code class="filename">ext/debug_allocator.h</code></td><td style="text-align: left"><code class="classname">std::debug_alloc<T></code></td><td style="text-align: left"><code class="filename">memory</code></td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::__pool_alloc<T></code></td><td style="text-align: left"><code class="filename">ext/pool_allocator.h</code></td><td style="text-align: left"><code class="classname">std::__default_alloc_template<bool,int></code></td><td style="text-align: left"><code class="filename">memory</code></td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::__mt_alloc<T></code></td><td style="text-align: left"><code class="filename">ext/mt_allocator.h</code></td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::bitmap_allocator<T></code></td><td style="text-align: left"><code class="filename">ext/bitmap_allocator.h</code></td><td style="text-align: left"> </td><td style="text-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="id709077"/><p class="title"><strong>Table B.7. Extension Allocators Continued</strong></p><div class="table-contents"><table summary="Extension Allocators Continued" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/></colgroup><thead><tr><th style="text-align: left">Allocator</th><th style="text-align: left">Include</th><th style="text-align: left">Version</th></tr></thead><tbody><tr><td style="text-align: left"><code class="classname">__gnu_cxx::array_allocator<T></code></td><td style="text-align: left"><code class="filename">ext/array_allocator.h</code></td><td style="text-align: left">4.0.0</td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::throw_allocator<T></code></td><td style="text-align: left"><code class="filename">ext/throw_allocator.h</code></td><td style="text-align: left">4.2.0</td></tr></tbody></table></div></div><br class="table-break"/><p>
|
</p><div class="table"><a id="id539161"/><p class="title"><strong>Table B.7. Extension Allocators Continued</strong></p><div class="table-contents"><table summary="Extension Allocators Continued" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/></colgroup><thead><tr><th style="text-align: left">Allocator</th><th style="text-align: left">Include</th><th style="text-align: left">Version</th></tr></thead><tbody><tr><td style="text-align: left"><code class="classname">__gnu_cxx::array_allocator<T></code></td><td style="text-align: left"><code class="filename">ext/array_allocator.h</code></td><td style="text-align: left">4.0.0</td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::throw_allocator<T></code></td><td style="text-align: left"><code class="filename">ext/throw_allocator.h</code></td><td style="text-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.
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
Appendices
|
Appendices
|
||||||
</th><td align="right"> <a accesskey="n" href="source_organization.html">Next</a></td></tr></table><hr/></div><div class="appendix" title="Appendix A. Contributing"><div class="titlepage"><div><div><h1 class="title"><a id="appendix.contrib"/>
|
</th><td align="right"> <a accesskey="n" href="source_organization.html">Next</a></td></tr></table><hr/></div><div class="appendix" title="Appendix A. Contributing"><div class="titlepage"><div><div><h1 class="title"><a id="appendix.contrib"/>
|
||||||
Contributing
|
Contributing
|
||||||
<a id="id699646" class="indexterm"/>
|
<a id="id529730" class="indexterm"/>
|
||||||
</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="appendix_contributing.html#contrib.list">Contributor Checklist</a></span></dt><dd><dl><dt><span class="section"><a href="appendix_contributing.html#list.reading">Reading</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.copyright">Assignment</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.getting">Getting Sources</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.patches">Submitting Patches</a></span></dt></dl></dd><dt><span class="section"><a href="source_organization.html">Directory Layout and Source Conventions</a></span></dt><dt><span class="section"><a href="source_code_style.html">Coding Style</a></span></dt><dd><dl><dt><span class="section"><a href="source_code_style.html#coding_style.bad_identifiers">Bad Identifiers</a></span></dt><dt><span class="section"><a href="source_code_style.html#coding_style.example">By Example</a></span></dt></dl></dd><dt><span class="section"><a href="source_design_notes.html">Design Notes</a></span></dt></dl></div><p>
|
</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="appendix_contributing.html#contrib.list">Contributor Checklist</a></span></dt><dd><dl><dt><span class="section"><a href="appendix_contributing.html#list.reading">Reading</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.copyright">Assignment</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.getting">Getting Sources</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.patches">Submitting Patches</a></span></dt></dl></dd><dt><span class="section"><a href="source_organization.html">Directory Layout and Source Conventions</a></span></dt><dt><span class="section"><a href="source_code_style.html">Coding Style</a></span></dt><dd><dl><dt><span class="section"><a href="source_code_style.html#coding_style.bad_identifiers">Bad Identifiers</a></span></dt><dt><span class="section"><a href="source_code_style.html#coding_style.example">By Example</a></span></dt></dl></dd><dt><span class="section"><a href="source_design_notes.html">Design Notes</a></span></dt></dl></div><p>
|
||||||
The GNU C++ Library follows an open development model. Active
|
The GNU C++ Library follows an open development model. Active
|
||||||
contributors are assigned maintainer-ship responsibility, and given
|
contributors are assigned maintainer-ship responsibility, and given
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
Appendices
|
Appendices
|
||||||
</th><td align="right"> <a accesskey="n" href="appendix_gpl.html">Next</a></td></tr></table><hr/></div><div class="appendix" title="Appendix C. Free Software Needs Free Documentation"><div class="titlepage"><div><div><h1 class="title"><a id="appendix.free"/>
|
</th><td align="right"> <a accesskey="n" href="appendix_gpl.html">Next</a></td></tr></table><hr/></div><div class="appendix" title="Appendix C. Free Software Needs Free Documentation"><div class="titlepage"><div><div><h1 class="title"><a id="appendix.free"/>
|
||||||
Free Software Needs Free Documentation
|
Free Software Needs Free Documentation
|
||||||
<a id="id712010" class="indexterm"/>
|
<a id="id542094" class="indexterm"/>
|
||||||
</h1></div></div></div><p>
|
</h1></div></div></div><p>
|
||||||
The biggest deficiency in free operating systems is not in the
|
The biggest deficiency in free operating systems is not in the
|
||||||
software--it is the lack of good free manuals that we can include in
|
software--it is the lack of good free manuals that we can include in
|
||||||
|
|
|
@ -78,7 +78,7 @@
|
||||||
</p><p>
|
</p><p>
|
||||||
The precise terms and conditions for copying, distribution and modification
|
The precise terms and conditions for copying, distribution and modification
|
||||||
follow.
|
follow.
|
||||||
</p><h2><a id="id712349"/>
|
</p><h2><a id="id542433"/>
|
||||||
TERMS AND CONDITIONS
|
TERMS AND CONDITIONS
|
||||||
</h2><h2><a id="gpl-3-definitions"/>
|
</h2><h2><a id="gpl-3-definitions"/>
|
||||||
0. Definitions.
|
0. Definitions.
|
||||||
|
@ -619,7 +619,7 @@
|
||||||
waiver of all civil liability in connection with the Program, unless a
|
waiver of all civil liability in connection with the Program, unless a
|
||||||
warranty or assumption of liability accompanies a copy of the Program in
|
warranty or assumption of liability accompanies a copy of the Program in
|
||||||
return for a fee.
|
return for a fee.
|
||||||
</p><h2><a id="id713173"/>
|
</p><h2><a id="id543257"/>
|
||||||
END OF TERMS AND CONDITIONS
|
END OF TERMS AND CONDITIONS
|
||||||
</h2><h2><a id="HowToApply"/>
|
</h2><h2><a id="HowToApply"/>
|
||||||
How to Apply These Terms to Your New Programs
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
Appendices
|
Appendices
|
||||||
</th><td align="right"> <a accesskey="n" href="documentation_hacking.html">Next</a></td></tr></table><hr/></div><div class="appendix" title="Appendix B. Porting and Maintenance"><div class="titlepage"><div><div><h1 class="title"><a id="appendix.porting"/>
|
</th><td align="right"> <a accesskey="n" href="documentation_hacking.html">Next</a></td></tr></table><hr/></div><div class="appendix" title="Appendix B. Porting and Maintenance"><div class="titlepage"><div><div><h1 class="title"><a id="appendix.porting"/>
|
||||||
Porting and Maintenance
|
Porting and Maintenance
|
||||||
<a id="id700765" class="indexterm"/>
|
<a id="id530849" class="indexterm"/>
|
||||||
</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="appendix_porting.html#appendix.porting.build_hacking">Configure and Build Hacking</a></span></dt><dd><dl><dt><span class="section"><a href="appendix_porting.html#build_hacking.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.map">Overview: What Comes from Where</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.scripts">Storing Information in non-AC files (like configure.host)</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.conventions">Coding and Commenting Conventions</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.acinclude">The acinclude.m4 layout</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.enable"><code class="constant">GLIBCXX_ENABLE</code>, the <code class="literal">--enable</code> maker</a></span></dt></dl></dd><dt><span class="section"><a href="documentation_hacking.html">Writing and Generating Documentation</a></span></dt><dd><dl><dt><span class="section"><a href="documentation_hacking.html#doc.intro">Introduction</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doc.generation">Generating Documentation</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doc.doxygen">Doxygen</a></span></dt><dd><dl><dt><span class="section"><a href="documentation_hacking.html#doxygen.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doxygen.rules">Generating the Doxygen Files</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doxygen.markup">Markup</a></span></dt></dl></dd><dt><span class="section"><a href="documentation_hacking.html#doc.docbook">Docbook</a></span></dt><dd><dl><dt><span class="section"><a href="documentation_hacking.html#docbook.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#docbook.rules">Generating the DocBook Files</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#docbook.validation">Editing and Validation</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#docbook.examples">File Organization and Basics</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#docbook.markup">Markup By Example</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="internals.html">Porting to New Hardware or Operating Systems</a></span></dt><dd><dl><dt><span class="section"><a href="internals.html#internals.os">Operating System</a></span></dt><dt><span class="section"><a href="internals.html#internals.cpu">CPU</a></span></dt><dt><span class="section"><a href="internals.html#internals.char_types">Character Types</a></span></dt><dt><span class="section"><a href="internals.html#internals.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="internals.html#internals.numeric_limits">Numeric Limits</a></span></dt><dt><span class="section"><a href="internals.html#internals.libtool">Libtool</a></span></dt></dl></dd><dt><span class="section"><a href="test.html">Test</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.organization">Organization</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.organization.layout">Directory Layout</a></span></dt><dt><span class="section"><a href="test.html#test.organization.naming">Naming Conventions</a></span></dt></dl></dd><dt><span class="section"><a href="test.html#test.run">Running the Testsuite</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.run.basic">Basic</a></span></dt><dt><span class="section"><a href="test.html#test.run.variations">Variations</a></span></dt><dt><span class="section"><a href="test.html#test.run.permutations">Permutations</a></span></dt></dl></dd><dt><span class="section"><a href="test.html#test.new_tests">Writing a new test case</a></span></dt><dt><span class="section"><a href="test.html#test.harness">Test Harness and Utilities</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.harness.dejagnu">Dejagnu Harness Details</a></span></dt><dt><span class="section"><a href="test.html#test.harness.utils">Utilities</a></span></dt></dl></dd><dt><span class="section"><a href="test.html#test.special">Special Topics</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.exception.safety">
|
</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="appendix_porting.html#appendix.porting.build_hacking">Configure and Build Hacking</a></span></dt><dd><dl><dt><span class="section"><a href="appendix_porting.html#build_hacking.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.map">Overview: What Comes from Where</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.scripts">Storing Information in non-AC files (like configure.host)</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.conventions">Coding and Commenting Conventions</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.acinclude">The acinclude.m4 layout</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.enable"><code class="constant">GLIBCXX_ENABLE</code>, the <code class="literal">--enable</code> maker</a></span></dt></dl></dd><dt><span class="section"><a href="documentation_hacking.html">Writing and Generating Documentation</a></span></dt><dd><dl><dt><span class="section"><a href="documentation_hacking.html#doc.intro">Introduction</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doc.generation">Generating Documentation</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doc.doxygen">Doxygen</a></span></dt><dd><dl><dt><span class="section"><a href="documentation_hacking.html#doxygen.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doxygen.rules">Generating the Doxygen Files</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doxygen.markup">Markup</a></span></dt></dl></dd><dt><span class="section"><a href="documentation_hacking.html#doc.docbook">Docbook</a></span></dt><dd><dl><dt><span class="section"><a href="documentation_hacking.html#docbook.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#docbook.rules">Generating the DocBook Files</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#docbook.validation">Editing and Validation</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#docbook.examples">File Organization and Basics</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#docbook.markup">Markup By Example</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="internals.html">Porting to New Hardware or Operating Systems</a></span></dt><dd><dl><dt><span class="section"><a href="internals.html#internals.os">Operating System</a></span></dt><dt><span class="section"><a href="internals.html#internals.cpu">CPU</a></span></dt><dt><span class="section"><a href="internals.html#internals.char_types">Character Types</a></span></dt><dt><span class="section"><a href="internals.html#internals.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="internals.html#internals.numeric_limits">Numeric Limits</a></span></dt><dt><span class="section"><a href="internals.html#internals.libtool">Libtool</a></span></dt></dl></dd><dt><span class="section"><a href="test.html">Test</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.organization">Organization</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.organization.layout">Directory Layout</a></span></dt><dt><span class="section"><a href="test.html#test.organization.naming">Naming Conventions</a></span></dt></dl></dd><dt><span class="section"><a href="test.html#test.run">Running the Testsuite</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.run.basic">Basic</a></span></dt><dt><span class="section"><a href="test.html#test.run.variations">Variations</a></span></dt><dt><span class="section"><a href="test.html#test.run.permutations">Permutations</a></span></dt></dl></dd><dt><span class="section"><a href="test.html#test.new_tests">Writing a new test case</a></span></dt><dt><span class="section"><a href="test.html#test.harness">Test Harness and Utilities</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.harness.dejagnu">Dejagnu Harness Details</a></span></dt><dt><span class="section"><a href="test.html#test.harness.utils">Utilities</a></span></dt></dl></dd><dt><span class="section"><a href="test.html#test.special">Special Topics</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.exception.safety">
|
||||||
Qualifying Exception Safety Guarantees
|
Qualifying Exception Safety Guarantees
|
||||||
|
|
||||||
|
@ -15,20 +15,20 @@
|
||||||
Existing tests
|
Existing tests
|
||||||
</a></span></dt><dt><span class="section"><a href="test.html#test.exception.safety.containers">
|
</a></span></dt><dt><span class="section"><a href="test.html#test.exception.safety.containers">
|
||||||
C++0x Requirements Test Sequence Descriptions
|
C++0x Requirements Test Sequence Descriptions
|
||||||
</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a href="abi.html">ABI Policy and Guidelines</a></span></dt><dd><dl><dt><span class="section"><a href="abi.html#abi.cxx_interface">The C++ Interface</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning">Versioning</a></span></dt><dd><dl><dt><span class="section"><a href="abi.html#abi.versioning.goals">Goals</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning.history">History</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning.config">Configuring</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning.active">Checking Active</a></span></dt></dl></dd><dt><span class="section"><a href="abi.html#abi.changes_allowed">Allowed Changes</a></span></dt><dt><span class="section"><a href="abi.html#abi.changes_no">Prohibited Changes</a></span></dt><dt><span class="section"><a href="abi.html#abi.impl">Implementation</a></span></dt><dt><span class="section"><a href="abi.html#abi.testing">Testing</a></span></dt><dd><dl><dt><span class="section"><a href="abi.html#abi.testing.single">Single ABI Testing</a></span></dt><dt><span class="section"><a href="abi.html#abi.testing.multi">Multiple ABI Testing</a></span></dt></dl></dd><dt><span class="section"><a href="abi.html#abi.issues">Outstanding Issues</a></span></dt></dl></dd><dt><span class="section"><a href="api.html">API Evolution and Deprecation History</a></span></dt><dd><dl><dt><span class="section"><a href="api.html#api.rel_300"><code class="constant">3.0</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_310"><code class="constant">3.1</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_320"><code class="constant">3.2</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_330"><code class="constant">3.3</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_340"><code class="constant">3.4</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_400"><code class="constant">4.0</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_410"><code class="constant">4.1</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_420"><code class="constant">4.2</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_430"><code class="constant">4.3</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_440"><code class="constant">4.4</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_450"><code class="constant">4.5</code></a></span></dt></dl></dd><dt><span class="section"><a href="backwards.html">Backwards Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#backwards.first">First</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#id710570">No <code class="code">ios_base</code></a></span></dt><dt><span class="section"><a href="backwards.html#id710603">No <code class="code">cout</code> in <code class="code">ostream.h</code>, no <code class="code">cin</code> in <code class="code">istream.h</code></a></span></dt></dl></dd><dt><span class="section"><a href="backwards.html#backwards.second">Second</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#id710706">Namespace <code class="code">std::</code> not supported</a></span></dt><dt><span class="section"><a href="backwards.html#id710832">Illegal iterator usage</a></span></dt><dt><span class="section"><a href="backwards.html#id710893"><code class="code">isspace</code> from <code class="filename">cctype</code> is a macro
|
</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a href="abi.html">ABI Policy and Guidelines</a></span></dt><dd><dl><dt><span class="section"><a href="abi.html#abi.cxx_interface">The C++ Interface</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning">Versioning</a></span></dt><dd><dl><dt><span class="section"><a href="abi.html#abi.versioning.goals">Goals</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning.history">History</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning.config">Configuring</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning.active">Checking Active</a></span></dt></dl></dd><dt><span class="section"><a href="abi.html#abi.changes_allowed">Allowed Changes</a></span></dt><dt><span class="section"><a href="abi.html#abi.changes_no">Prohibited Changes</a></span></dt><dt><span class="section"><a href="abi.html#abi.impl">Implementation</a></span></dt><dt><span class="section"><a href="abi.html#abi.testing">Testing</a></span></dt><dd><dl><dt><span class="section"><a href="abi.html#abi.testing.single">Single ABI Testing</a></span></dt><dt><span class="section"><a href="abi.html#abi.testing.multi">Multiple ABI Testing</a></span></dt></dl></dd><dt><span class="section"><a href="abi.html#abi.issues">Outstanding Issues</a></span></dt></dl></dd><dt><span class="section"><a href="api.html">API Evolution and Deprecation History</a></span></dt><dd><dl><dt><span class="section"><a href="api.html#api.rel_300"><code class="constant">3.0</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_310"><code class="constant">3.1</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_320"><code class="constant">3.2</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_330"><code class="constant">3.3</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_340"><code class="constant">3.4</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_400"><code class="constant">4.0</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_410"><code class="constant">4.1</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_420"><code class="constant">4.2</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_430"><code class="constant">4.3</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_440"><code class="constant">4.4</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_450"><code class="constant">4.5</code></a></span></dt></dl></dd><dt><span class="section"><a href="backwards.html">Backwards Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#backwards.first">First</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#id540654">No <code class="code">ios_base</code></a></span></dt><dt><span class="section"><a href="backwards.html#id540687">No <code class="code">cout</code> in <code class="code">ostream.h</code>, no <code class="code">cin</code> in <code class="code">istream.h</code></a></span></dt></dl></dd><dt><span class="section"><a href="backwards.html#backwards.second">Second</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#id540790">Namespace <code class="code">std::</code> not supported</a></span></dt><dt><span class="section"><a href="backwards.html#id540916">Illegal iterator usage</a></span></dt><dt><span class="section"><a href="backwards.html#id540977"><code class="code">isspace</code> from <code class="filename">cctype</code> is a macro
|
||||||
</a></span></dt><dt><span class="section"><a href="backwards.html#id710989">No <code class="code">vector::at</code>, <code class="code">deque::at</code>, <code class="code">string::at</code></a></span></dt><dt><span class="section"><a href="backwards.html#id711028">No <code class="code">std::char_traits<char>::eof</code></a></span></dt><dt><span class="section"><a href="backwards.html#id711046">No <code class="code">string::clear</code></a></span></dt><dt><span class="section"><a href="backwards.html#id711092">
|
</a></span></dt><dt><span class="section"><a href="backwards.html#id541073">No <code class="code">vector::at</code>, <code class="code">deque::at</code>, <code class="code">string::at</code></a></span></dt><dt><span class="section"><a href="backwards.html#id541112">No <code class="code">std::char_traits<char>::eof</code></a></span></dt><dt><span class="section"><a href="backwards.html#id541130">No <code class="code">string::clear</code></a></span></dt><dt><span class="section"><a href="backwards.html#id541176">
|
||||||
Removal of <code class="code">ostream::form</code> and <code class="code">istream::scan</code>
|
Removal of <code class="code">ostream::form</code> and <code class="code">istream::scan</code>
|
||||||
extensions
|
extensions
|
||||||
</a></span></dt><dt><span class="section"><a href="backwards.html#id711111">No <code class="code">basic_stringbuf</code>, <code class="code">basic_stringstream</code></a></span></dt><dt><span class="section"><a href="backwards.html#id711267">Little or no wide character support</a></span></dt><dt><span class="section"><a href="backwards.html#id711285">No templatized iostreams</a></span></dt><dt><span class="section"><a href="backwards.html#id711304">Thread safety issues</a></span></dt></dl></dd><dt><span class="section"><a href="backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#id711429">Pre-ISO headers moved to backwards or removed</a></span></dt><dt><span class="section"><a href="backwards.html#id711514">Extension headers hash_map, hash_set moved to ext or backwards</a></span></dt><dt><span class="section"><a href="backwards.html#id711617">No <code class="code">ios::nocreate/ios::noreplace</code>.
|
</a></span></dt><dt><span class="section"><a href="backwards.html#id541195">No <code class="code">basic_stringbuf</code>, <code class="code">basic_stringstream</code></a></span></dt><dt><span class="section"><a href="backwards.html#id541351">Little or no wide character support</a></span></dt><dt><span class="section"><a href="backwards.html#id541369">No templatized iostreams</a></span></dt><dt><span class="section"><a href="backwards.html#id541388">Thread safety issues</a></span></dt></dl></dd><dt><span class="section"><a href="backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#id541513">Pre-ISO headers moved to backwards or removed</a></span></dt><dt><span class="section"><a href="backwards.html#id541598">Extension headers hash_map, hash_set moved to ext or backwards</a></span></dt><dt><span class="section"><a href="backwards.html#id541701">No <code class="code">ios::nocreate/ios::noreplace</code>.
|
||||||
</a></span></dt><dt><span class="section"><a href="backwards.html#id711664">
|
</a></span></dt><dt><span class="section"><a href="backwards.html#id541749">
|
||||||
No <code class="code">stream::attach(int fd)</code>
|
No <code class="code">stream::attach(int fd)</code>
|
||||||
</a></span></dt><dt><span class="section"><a href="backwards.html#id711732">
|
</a></span></dt><dt><span class="section"><a href="backwards.html#id541817">
|
||||||
Support for C++98 dialect.
|
Support for C++98 dialect.
|
||||||
</a></span></dt><dt><span class="section"><a href="backwards.html#id711760">
|
</a></span></dt><dt><span class="section"><a href="backwards.html#id541844">
|
||||||
Support for C++TR1 dialect.
|
Support for C++TR1 dialect.
|
||||||
</a></span></dt><dt><span class="section"><a href="backwards.html#id711804">
|
</a></span></dt><dt><span class="section"><a href="backwards.html#id541888">
|
||||||
Support for C++0x dialect.
|
Support for C++0x dialect.
|
||||||
</a></span></dt><dt><span class="section"><a href="backwards.html#id711882">
|
</a></span></dt><dt><span class="section"><a href="backwards.html#id541966">
|
||||||
Container::iterator_type is not necessarily Container::value_type*
|
Container::iterator_type is not necessarily Container::value_type*
|
||||||
</a></span></dt></dl></dd></dl></dd></dl></div><div class="section" title="Configure and Build Hacking"><div class="titlepage"><div><div><h2 class="title"><a id="appendix.porting.build_hacking"/>Configure and Build Hacking</h2></div></div></div><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h3 class="title"><a id="build_hacking.prereq"/>Prerequisites</h3></div></div></div><p>
|
</a></span></dt></dl></dd></dl></dd></dl></div><div class="section" title="Configure and Build Hacking"><div class="titlepage"><div><div><h2 class="title"><a id="appendix.porting.build_hacking"/>Configure and Build Hacking</h2></div></div></div><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h3 class="title"><a id="build_hacking.prereq"/>Prerequisites</h3></div></div></div><p>
|
||||||
As noted <a class="link" href="http://gcc.gnu.org/install/prerequisites.html">previously</a>,
|
As noted <a class="link" href="http://gcc.gnu.org/install/prerequisites.html">previously</a>,
|
||||||
|
@ -41,7 +41,7 @@ Support for C++0x dialect.
|
||||||
in GCC try to stay in sync with each other in terms of versions of
|
in GCC try to stay in sync with each other in terms of versions of
|
||||||
the auto-tools used, so please try to play nicely with the
|
the auto-tools used, so please try to play nicely with the
|
||||||
neighbors.
|
neighbors.
|
||||||
</p></div><div class="section" title="Overview: What Comes from Where"><div class="titlepage"><div><div><h3 class="title"><a id="build_hacking.map"/>Overview: What Comes from Where</h3></div></div></div><div class="figure"><a id="id700897"/><p class="title"><strong>Figure B.1. Configure and Build File Dependencies</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/confdeps.png" style="text-align: middle" alt="Dependency Graph for Configure and Build Files"/></div></div></div><br class="figure-break"/><p>
|
</p></div><div class="section" title="Overview: What Comes from Where"><div class="titlepage"><div><div><h3 class="title"><a id="build_hacking.map"/>Overview: What Comes from Where</h3></div></div></div><div class="figure"><a id="id530981"/><p class="title"><strong>Figure B.1. Configure and Build File Dependencies</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/confdeps.png" style="text-align: middle" alt="Dependency Graph for Configure and Build Files"/></div></div></div><br class="figure-break"/><p>
|
||||||
Regenerate all generated files by using the command sequence
|
Regenerate all generated files by using the command sequence
|
||||||
<code class="code">"autoreconf"</code> at the top level of the libstdc++ source
|
<code class="code">"autoreconf"</code> at the top level of the libstdc++ source
|
||||||
directory. The following will also work, but is much more complex:
|
directory. The following will also work, but is much more complex:
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
Standard Contents
|
Standard Contents
|
||||||
</th><td align="right"> <a accesskey="n" href="concurrency.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 14. Atomics"><div class="titlepage"><div><div><h2 class="title"><a id="std.atomics"/>Chapter 14.
|
</th><td align="right"> <a accesskey="n" href="concurrency.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 14. Atomics"><div class="titlepage"><div><div><h2 class="title"><a id="std.atomics"/>Chapter 14.
|
||||||
Atomics
|
Atomics
|
||||||
<a id="id654041" class="indexterm"/>
|
<a id="id484125" class="indexterm"/>
|
||||||
</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="atomics.html#std.atomics.api">API Reference</a></span></dt></dl></div><p>
|
</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="atomics.html#std.atomics.api">API Reference</a></span></dt></dl></div><p>
|
||||||
Facilities for atomic operations.
|
Facilities for atomic operations.
|
||||||
</p><div class="section" title="API Reference"><div class="titlepage"><div><div><h2 class="title"><a id="std.atomics.api"/>API Reference</h2></div></div></div><p>
|
</p><div class="section" title="API Reference"><div class="titlepage"><div><div><h2 class="title"><a id="std.atomics.api"/>API Reference</h2></div></div></div><p>
|
||||||
|
|
|
@ -17,8 +17,8 @@ ISO Standard (e.g., statistical analysis). While there are a lot of
|
||||||
really useful things that are used by a lot of people, the Standards
|
really useful things that are used by a lot of people, the Standards
|
||||||
Committee couldn't include everything, and so a lot of those
|
Committee couldn't include everything, and so a lot of those
|
||||||
<span class="quote">“<span class="quote">obvious</span>”</span> classes didn't get included.
|
<span class="quote">“<span class="quote">obvious</span>”</span> classes didn't get included.
|
||||||
</p><p>Known Issues include many of the limitations of its immediate ancestor.</p><p>Portability notes and known implementation limitations are as follows.</p><div class="section" title="No ios_base"><div class="titlepage"><div><div><h4 class="title"><a id="id710570"/>No <code class="code">ios_base</code></h4></div></div></div><p> At least some older implementations don't have <code class="code">std::ios_base</code>, so you should use <code class="code">std::ios::badbit</code>, <code class="code">std::ios::failbit</code> and <code class="code">std::ios::eofbit</code> and <code class="code">std::ios::goodbit</code>.
|
</p><p>Known Issues include many of the limitations of its immediate ancestor.</p><p>Portability notes and known implementation limitations are as follows.</p><div class="section" title="No ios_base"><div class="titlepage"><div><div><h4 class="title"><a id="id540654"/>No <code class="code">ios_base</code></h4></div></div></div><p> At least some older implementations don't have <code class="code">std::ios_base</code>, so you should use <code class="code">std::ios::badbit</code>, <code class="code">std::ios::failbit</code> and <code class="code">std::ios::eofbit</code> and <code class="code">std::ios::goodbit</code>.
|
||||||
</p></div><div class="section" title="No cout in ostream.h, no cin in istream.h"><div class="titlepage"><div><div><h4 class="title"><a id="id710603"/>No <code class="code">cout</code> in <code class="code">ostream.h</code>, no <code class="code">cin</code> in <code class="code">istream.h</code></h4></div></div></div><p>
|
</p></div><div class="section" title="No cout in ostream.h, no cin in istream.h"><div class="titlepage"><div><div><h4 class="title"><a id="id540687"/>No <code class="code">cout</code> in <code class="code">ostream.h</code>, no <code class="code">cin</code> in <code class="code">istream.h</code></h4></div></div></div><p>
|
||||||
In earlier versions of the standard,
|
In earlier versions of the standard,
|
||||||
<code class="filename">fstream.h</code>,
|
<code class="filename">fstream.h</code>,
|
||||||
<code class="filename">ostream.h</code>
|
<code class="filename">ostream.h</code>
|
||||||
|
@ -44,7 +44,7 @@ considered replaced and rewritten.
|
||||||
archived. The code is considered replaced and rewritten.
|
archived. The code is considered replaced and rewritten.
|
||||||
</p><p>
|
</p><p>
|
||||||
Portability notes and known implementation limitations are as follows.
|
Portability notes and known implementation limitations are as follows.
|
||||||
</p><div class="section" title="Namespace std:: not supported"><div class="titlepage"><div><div><h4 class="title"><a id="id710706"/>Namespace <code class="code">std::</code> not supported</h4></div></div></div><p>
|
</p><div class="section" title="Namespace std:: not supported"><div class="titlepage"><div><div><h4 class="title"><a id="id540790"/>Namespace <code class="code">std::</code> not supported</h4></div></div></div><p>
|
||||||
Some care is required to support C++ compiler and or library
|
Some care is required to support C++ compiler and or library
|
||||||
implementation that do not have the standard library in
|
implementation that do not have the standard library in
|
||||||
<code class="code">namespace std</code>.
|
<code class="code">namespace std</code>.
|
||||||
|
@ -108,7 +108,7 @@ AC_DEFUN([AC_CXX_NAMESPACE_STD], [
|
||||||
AC_DEFINE(HAVE_NAMESPACE_STD,,[Define if g++ supports namespace std. ])
|
AC_DEFINE(HAVE_NAMESPACE_STD,,[Define if g++ supports namespace std. ])
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
</pre></div><div class="section" title="Illegal iterator usage"><div class="titlepage"><div><div><h4 class="title"><a id="id710832"/>Illegal iterator usage</h4></div></div></div><p>
|
</pre></div><div class="section" title="Illegal iterator usage"><div class="titlepage"><div><div><h4 class="title"><a id="id540916"/>Illegal iterator usage</h4></div></div></div><p>
|
||||||
The following illustrate implementation-allowed illegal iterator
|
The following illustrate implementation-allowed illegal iterator
|
||||||
use, and then correct use.
|
use, and then correct use.
|
||||||
</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>
|
</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>
|
||||||
|
@ -121,7 +121,7 @@ AC_DEFUN([AC_CXX_NAMESPACE_STD], [
|
||||||
</p></li><li class="listitem"><p>
|
</p></li><li class="listitem"><p>
|
||||||
<code class="code">if (iterator)</code> won't work any more => use
|
<code class="code">if (iterator)</code> won't work any more => use
|
||||||
<code class="code">if (iterator != iterator_type())</code>
|
<code class="code">if (iterator != iterator_type())</code>
|
||||||
</p></li></ul></div></div><div class="section" title="isspace from cctype is a macro"><div class="titlepage"><div><div><h4 class="title"><a id="id710893"/><code class="code">isspace</code> from <code class="filename">cctype</code> is a macro
|
</p></li></ul></div></div><div class="section" title="isspace from cctype is a macro"><div class="titlepage"><div><div><h4 class="title"><a id="id540977"/><code class="code">isspace</code> from <code class="filename">cctype</code> is a macro
|
||||||
</h4></div></div></div><p>
|
</h4></div></div></div><p>
|
||||||
Glibc 2.0.x and 2.1.x define <code class="filename">ctype.h</code> functionality as macros
|
Glibc 2.0.x and 2.1.x define <code class="filename">ctype.h</code> functionality as macros
|
||||||
(isspace, isalpha etc.).
|
(isspace, isalpha etc.).
|
||||||
|
@ -154,7 +154,7 @@ std:: (__ctype_b[(int) ( ( 'X' ) )] & (unsigned short int) _ISspace ) ;
|
||||||
(<code class="filename">ctype.h</code>) and the
|
(<code class="filename">ctype.h</code>) and the
|
||||||
definitions in namespace <code class="code">std::</code>
|
definitions in namespace <code class="code">std::</code>
|
||||||
(<code class="code"><cctype></code>).
|
(<code class="code"><cctype></code>).
|
||||||
</p></div><div class="section" title="No vector::at, deque::at, string::at"><div class="titlepage"><div><div><h4 class="title"><a id="id710989"/>No <code class="code">vector::at</code>, <code class="code">deque::at</code>, <code class="code">string::at</code></h4></div></div></div><p>
|
</p></div><div class="section" title="No vector::at, deque::at, string::at"><div class="titlepage"><div><div><h4 class="title"><a id="id541073"/>No <code class="code">vector::at</code>, <code class="code">deque::at</code>, <code class="code">string::at</code></h4></div></div></div><p>
|
||||||
One solution is to add an autoconf-test for this:
|
One solution is to add an autoconf-test for this:
|
||||||
</p><pre class="programlisting">
|
</p><pre class="programlisting">
|
||||||
AC_MSG_CHECKING(for container::at)
|
AC_MSG_CHECKING(for container::at)
|
||||||
|
@ -180,7 +180,7 @@ AC_DEFINE(HAVE_CONTAINER_AT)],
|
||||||
</pre><p>
|
</pre><p>
|
||||||
If you are using other (non-GNU) compilers it might be a good idea
|
If you are using other (non-GNU) compilers it might be a good idea
|
||||||
to check for <code class="code">string::at</code> separately.
|
to check for <code class="code">string::at</code> separately.
|
||||||
</p></div><div class="section" title="No std::char_traits<char>::eof"><div class="titlepage"><div><div><h4 class="title"><a id="id711028"/>No <code class="code">std::char_traits<char>::eof</code></h4></div></div></div><p>
|
</p></div><div class="section" title="No std::char_traits<char>::eof"><div class="titlepage"><div><div><h4 class="title"><a id="id541112"/>No <code class="code">std::char_traits<char>::eof</code></h4></div></div></div><p>
|
||||||
Use some kind of autoconf test, plus this:
|
Use some kind of autoconf test, plus this:
|
||||||
</p><pre class="programlisting">
|
</p><pre class="programlisting">
|
||||||
#ifdef HAVE_CHAR_TRAITS
|
#ifdef HAVE_CHAR_TRAITS
|
||||||
|
@ -188,7 +188,7 @@ AC_DEFINE(HAVE_CONTAINER_AT)],
|
||||||
#else
|
#else
|
||||||
#define CPP_EOF EOF
|
#define CPP_EOF EOF
|
||||||
#endif
|
#endif
|
||||||
</pre></div><div class="section" title="No string::clear"><div class="titlepage"><div><div><h4 class="title"><a id="id711046"/>No <code class="code">string::clear</code></h4></div></div></div><p>
|
</pre></div><div class="section" title="No string::clear"><div class="titlepage"><div><div><h4 class="title"><a id="id541130"/>No <code class="code">string::clear</code></h4></div></div></div><p>
|
||||||
There are two functions for deleting the contents of a string:
|
There are two functions for deleting the contents of a string:
|
||||||
<code class="code">clear</code> and <code class="code">erase</code> (the latter returns the
|
<code class="code">clear</code> and <code class="code">erase</code> (the latter returns the
|
||||||
string).
|
string).
|
||||||
|
@ -206,12 +206,12 @@ erase(size_type __pos = 0, size_type __n = npos)
|
||||||
Unfortunately, <code class="code">clear</code> is not implemented in this
|
Unfortunately, <code class="code">clear</code> is not implemented in this
|
||||||
version, so you should use <code class="code">erase</code> (which is probably
|
version, so you should use <code class="code">erase</code> (which is probably
|
||||||
faster than <code class="code">operator=(charT*)</code>).
|
faster than <code class="code">operator=(charT*)</code>).
|
||||||
</p></div><div class="section" title="Removal of ostream::form and istream::scan extensions"><div class="titlepage"><div><div><h4 class="title"><a id="id711092"/>
|
</p></div><div class="section" title="Removal of ostream::form and istream::scan extensions"><div class="titlepage"><div><div><h4 class="title"><a id="id541176"/>
|
||||||
Removal of <code class="code">ostream::form</code> and <code class="code">istream::scan</code>
|
Removal of <code class="code">ostream::form</code> and <code class="code">istream::scan</code>
|
||||||
extensions
|
extensions
|
||||||
</h4></div></div></div><p>
|
</h4></div></div></div><p>
|
||||||
These are no longer supported. Please use stringstreams instead.
|
These are no longer supported. Please use stringstreams instead.
|
||||||
</p></div><div class="section" title="No basic_stringbuf, basic_stringstream"><div class="titlepage"><div><div><h4 class="title"><a id="id711111"/>No <code class="code">basic_stringbuf</code>, <code class="code">basic_stringstream</code></h4></div></div></div><p>
|
</p></div><div class="section" title="No basic_stringbuf, basic_stringstream"><div class="titlepage"><div><div><h4 class="title"><a id="id541195"/>No <code class="code">basic_stringbuf</code>, <code class="code">basic_stringstream</code></h4></div></div></div><p>
|
||||||
Although the ISO standard <code class="code">i/ostringstream</code>-classes are
|
Although the ISO standard <code class="code">i/ostringstream</code>-classes are
|
||||||
provided, (<code class="filename">sstream</code>), for
|
provided, (<code class="filename">sstream</code>), for
|
||||||
compatibility with older implementations the pre-ISO
|
compatibility with older implementations the pre-ISO
|
||||||
|
@ -299,14 +299,14 @@ any = temp;
|
||||||
Another example of using stringstreams is in <a class="link" href="strings.html#strings.string.shrink" title="Shrink to Fit">this howto</a>.
|
Another example of using stringstreams is in <a class="link" href="strings.html#strings.string.shrink" title="Shrink to Fit">this howto</a>.
|
||||||
</p><p> There is additional information in the libstdc++-v2 info files, in
|
</p><p> There is additional information in the libstdc++-v2 info files, in
|
||||||
particular <span class="quote">“<span class="quote">info iostream</span>”</span>.
|
particular <span class="quote">“<span class="quote">info iostream</span>”</span>.
|
||||||
</p></div><div class="section" title="Little or no wide character support"><div class="titlepage"><div><div><h4 class="title"><a id="id711267"/>Little or no wide character support</h4></div></div></div><p>
|
</p></div><div class="section" title="Little or no wide character support"><div class="titlepage"><div><div><h4 class="title"><a id="id541351"/>Little or no wide character support</h4></div></div></div><p>
|
||||||
Classes <code class="classname">wstring</code> and
|
Classes <code class="classname">wstring</code> and
|
||||||
<code class="classname">char_traits<wchar_t></code> are
|
<code class="classname">char_traits<wchar_t></code> are
|
||||||
not supported.
|
not supported.
|
||||||
</p></div><div class="section" title="No templatized iostreams"><div class="titlepage"><div><div><h4 class="title"><a id="id711285"/>No templatized iostreams</h4></div></div></div><p>
|
</p></div><div class="section" title="No templatized iostreams"><div class="titlepage"><div><div><h4 class="title"><a id="id541369"/>No templatized iostreams</h4></div></div></div><p>
|
||||||
Classes <code class="classname">wfilebuf</code> and
|
Classes <code class="classname">wfilebuf</code> and
|
||||||
<code class="classname">wstringstream</code> are not supported.
|
<code class="classname">wstringstream</code> are not supported.
|
||||||
</p></div><div class="section" title="Thread safety issues"><div class="titlepage"><div><div><h4 class="title"><a id="id711304"/>Thread safety issues</h4></div></div></div><p>
|
</p></div><div class="section" title="Thread safety issues"><div class="titlepage"><div><div><h4 class="title"><a id="id541388"/>Thread safety issues</h4></div></div></div><p>
|
||||||
Earlier GCC releases had a somewhat different approach to
|
Earlier GCC releases had a somewhat different approach to
|
||||||
threading configuration and proper compilation. Before GCC 3.0,
|
threading configuration and proper compilation. Before GCC 3.0,
|
||||||
configuration of the threading model was dictated by compiler
|
configuration of the threading model was dictated by compiler
|
||||||
|
@ -364,7 +364,7 @@ libstdc++-v3.
|
||||||
of the SGI STL (version 3.3), with extensive changes.
|
of the SGI STL (version 3.3), with extensive changes.
|
||||||
</p><p>A more formal description of the V3 goals can be found in the
|
</p><p>A more formal description of the V3 goals can be found in the
|
||||||
official <a class="link" href="source_design_notes.html" title="Design Notes">design document</a>.
|
official <a class="link" href="source_design_notes.html" title="Design Notes">design document</a>.
|
||||||
</p><p>Portability notes and known implementation limitations are as follows.</p><div class="section" title="Pre-ISO headers moved to backwards or removed"><div class="titlepage"><div><div><h4 class="title"><a id="id711429"/>Pre-ISO headers moved to backwards or removed</h4></div></div></div><p> The pre-ISO C++ headers
|
</p><p>Portability notes and known implementation limitations are as follows.</p><div class="section" title="Pre-ISO headers moved to backwards or removed"><div class="titlepage"><div><div><h4 class="title"><a id="id541513"/>Pre-ISO headers moved to backwards or removed</h4></div></div></div><p> The pre-ISO C++ headers
|
||||||
(<code class="code">iostream.h</code>, <code class="code">defalloc.h</code> etc.) are
|
(<code class="code">iostream.h</code>, <code class="code">defalloc.h</code> etc.) are
|
||||||
available, unlike previous libstdc++ versions, but inclusion
|
available, unlike previous libstdc++ versions, but inclusion
|
||||||
generates a warning that you are using deprecated headers.
|
generates a warning that you are using deprecated headers.
|
||||||
|
@ -436,7 +436,7 @@ like <code class="filename">vector.h</code> can be replaced with <code class="fi
|
||||||
directive <code class="code">using namespace std;</code> can be put at the global
|
directive <code class="code">using namespace std;</code> can be put at the global
|
||||||
scope. This should be enough to get this code compiling, assuming the
|
scope. This should be enough to get this code compiling, assuming the
|
||||||
other usage is correct.
|
other usage is correct.
|
||||||
</p></div><div class="section" title="Extension headers hash_map, hash_set moved to ext or backwards"><div class="titlepage"><div><div><h4 class="title"><a id="id711514"/>Extension headers hash_map, hash_set moved to ext or backwards</h4></div></div></div><p>At this time most of the features of the SGI STL extension have been
|
</p></div><div class="section" title="Extension headers hash_map, hash_set moved to ext or backwards"><div class="titlepage"><div><div><h4 class="title"><a id="id541598"/>Extension headers hash_map, hash_set moved to ext or backwards</h4></div></div></div><p>At this time most of the features of the SGI STL extension have been
|
||||||
replaced by standardized libraries.
|
replaced by standardized libraries.
|
||||||
In particular, the unordered_map and unordered_set containers of TR1
|
In particular, the unordered_map and unordered_set containers of TR1
|
||||||
are suitable replacement for the non-standard hash_map and hash_set
|
are suitable replacement for the non-standard hash_map and hash_set
|
||||||
|
@ -508,7 +508,7 @@ AC_DEFUN([AC_HEADER_EXT_HASH_SET], [
|
||||||
AC_DEFINE(HAVE_EXT_HASH_SET,,[Define if ext/hash_set is present. ])
|
AC_DEFINE(HAVE_EXT_HASH_SET,,[Define if ext/hash_set is present. ])
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
</pre></div><div class="section" title="No ios::nocreate/ios::noreplace."><div class="titlepage"><div><div><h4 class="title"><a id="id711617"/>No <code class="code">ios::nocreate/ios::noreplace</code>.
|
</pre></div><div class="section" title="No ios::nocreate/ios::noreplace."><div class="titlepage"><div><div><h4 class="title"><a id="id541701"/>No <code class="code">ios::nocreate/ios::noreplace</code>.
|
||||||
</h4></div></div></div><p> The existence of <code class="code">ios::nocreate</code> being used for
|
</h4></div></div></div><p> The existence of <code class="code">ios::nocreate</code> being used for
|
||||||
input-streams has been confirmed, most probably because the author
|
input-streams has been confirmed, most probably because the author
|
||||||
thought it would be more correct to specify nocreate explicitly. So
|
thought it would be more correct to specify nocreate explicitly. So
|
||||||
|
@ -519,7 +519,7 @@ open the file for reading, check if it has been opened, and then
|
||||||
decide whether you want to create/replace or not. To my knowledge,
|
decide whether you want to create/replace or not. To my knowledge,
|
||||||
even older implementations support <code class="code">app</code>, <code class="code">ate</code>
|
even older implementations support <code class="code">app</code>, <code class="code">ate</code>
|
||||||
and <code class="code">trunc</code> (except for <code class="code">app</code> ?).
|
and <code class="code">trunc</code> (except for <code class="code">app</code> ?).
|
||||||
</p></div><div class="section" title="No stream::attach(int fd)"><div class="titlepage"><div><div><h4 class="title"><a id="id711664"/>
|
</p></div><div class="section" title="No stream::attach(int fd)"><div class="titlepage"><div><div><h4 class="title"><a id="id541749"/>
|
||||||
No <code class="code">stream::attach(int fd)</code>
|
No <code class="code">stream::attach(int fd)</code>
|
||||||
</h4></div></div></div><p>
|
</h4></div></div></div><p>
|
||||||
Phil Edwards writes: It was considered and rejected for the ISO
|
Phil Edwards writes: It was considered and rejected for the ISO
|
||||||
|
@ -542,7 +542,7 @@ No <code class="code">stream::attach(int fd)</code>
|
||||||
For another example of this, refer to
|
For another example of this, refer to
|
||||||
<a class="link" href="http://www.josuttis.com/cppcode/fdstream.html">fdstream example</a>
|
<a class="link" href="http://www.josuttis.com/cppcode/fdstream.html">fdstream example</a>
|
||||||
by Nicolai Josuttis.
|
by Nicolai Josuttis.
|
||||||
</p></div><div class="section" title="Support for C++98 dialect."><div class="titlepage"><div><div><h4 class="title"><a id="id711732"/>
|
</p></div><div class="section" title="Support for C++98 dialect."><div class="titlepage"><div><div><h4 class="title"><a id="id541817"/>
|
||||||
Support for C++98 dialect.
|
Support for C++98 dialect.
|
||||||
</h4></div></div></div><p>Check for complete library coverage of the C++1998/2003 standard.
|
</h4></div></div></div><p>Check for complete library coverage of the C++1998/2003 standard.
|
||||||
</p><pre class="programlisting">
|
</p><pre class="programlisting">
|
||||||
|
@ -610,7 +610,7 @@ AC_DEFUN([AC_HEADER_STDCXX_98], [
|
||||||
AC_DEFINE(STDCXX_98_HEADERS,,[Define if ISO C++ 1998 header files are present. ])
|
AC_DEFINE(STDCXX_98_HEADERS,,[Define if ISO C++ 1998 header files are present. ])
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
</pre></div><div class="section" title="Support for C++TR1 dialect."><div class="titlepage"><div><div><h4 class="title"><a id="id711760"/>
|
</pre></div><div class="section" title="Support for C++TR1 dialect."><div class="titlepage"><div><div><h4 class="title"><a id="id541844"/>
|
||||||
Support for C++TR1 dialect.
|
Support for C++TR1 dialect.
|
||||||
</h4></div></div></div><p>Check for library coverage of the TR1 standard.
|
</h4></div></div></div><p>Check for library coverage of the TR1 standard.
|
||||||
</p><pre class="programlisting">
|
</p><pre class="programlisting">
|
||||||
|
@ -687,7 +687,7 @@ AC_DEFUN([AC_HEADER_TR1_UNORDERED_SET], [
|
||||||
AC_DEFINE(HAVE_TR1_UNORDERED_SET,,[Define if tr1/unordered_set is present. ])
|
AC_DEFINE(HAVE_TR1_UNORDERED_SET,,[Define if tr1/unordered_set is present. ])
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
</pre></div><div class="section" title="Support for C++0x dialect."><div class="titlepage"><div><div><h4 class="title"><a id="id711804"/>
|
</pre></div><div class="section" title="Support for C++0x dialect."><div class="titlepage"><div><div><h4 class="title"><a id="id541888"/>
|
||||||
Support for C++0x dialect.
|
Support for C++0x dialect.
|
||||||
</h4></div></div></div><p>Check for baseline language coverage in the compiler for the C++0xstandard.
|
</h4></div></div></div><p>Check for baseline language coverage in the compiler for the C++0xstandard.
|
||||||
</p><pre class="programlisting">
|
</p><pre class="programlisting">
|
||||||
|
@ -899,21 +899,21 @@ AC_DEFUN([AC_HEADER_UNORDERED_SET], [
|
||||||
AC_DEFINE(HAVE_UNORDERED_SET,,[Define if unordered_set is present. ])
|
AC_DEFINE(HAVE_UNORDERED_SET,,[Define if unordered_set is present. ])
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
</pre></div><div class="section" title="Container::iterator_type is not necessarily Container::value_type*"><div class="titlepage"><div><div><h4 class="title"><a id="id711882"/>
|
</pre></div><div class="section" title="Container::iterator_type is not necessarily Container::value_type*"><div class="titlepage"><div><div><h4 class="title"><a id="id541966"/>
|
||||||
Container::iterator_type is not necessarily Container::value_type*
|
Container::iterator_type is not necessarily Container::value_type*
|
||||||
</h4></div></div></div><p>
|
</h4></div></div></div><p>
|
||||||
This is a change in behavior from the previous version. Now, most
|
This is a change in behavior from the previous version. Now, most
|
||||||
<span class="type">iterator_type</span> typedefs in container classes are POD
|
<span class="type">iterator_type</span> typedefs in container classes are POD
|
||||||
objects, not <span class="type">value_type</span> pointers.
|
objects, not <span class="type">value_type</span> pointers.
|
||||||
</p></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="backwards.biblio"/>Bibliography</h3></div></div></div><div class="biblioentry" title="Migrating to GCC 4.1"><a id="id711913"/><p><span class="title"><em>
|
</p></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="backwards.biblio"/>Bibliography</h3></div></div></div><div class="biblioentry" title="Migrating to GCC 4.1"><a id="id541997"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://www.kegel.com/gcc/gcc4.html">
|
<a class="link" href="http://www.kegel.com/gcc/gcc4.html">
|
||||||
Migrating to GCC 4.1
|
Migrating to GCC 4.1
|
||||||
</a>
|
</a>
|
||||||
</em>. </span><span class="author"><span class="firstname">Dan</span> <span class="surname">Kegel</span>. </span></p></div><div class="biblioentry" title="Building the Whole Debian Archive with GCC 4.1: A Summary"><a id="id711936"/><p><span class="title"><em>
|
</em>. </span><span class="author"><span class="firstname">Dan</span> <span class="surname">Kegel</span>. </span></p></div><div class="biblioentry" title="Building the Whole Debian Archive with GCC 4.1: A Summary"><a id="id542020"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://lists.debian.org/debian-gcc/2006/03/msg00405.html">
|
<a class="link" href="http://lists.debian.org/debian-gcc/2006/03/msg00405.html">
|
||||||
Building the Whole Debian Archive with GCC 4.1: A Summary
|
Building the Whole Debian Archive with GCC 4.1: A Summary
|
||||||
</a>
|
</a>
|
||||||
</em>. </span><span class="author"><span class="firstname">Martin</span> <span class="surname">Michlmayr</span>. </span></p></div><div class="biblioentry" title="Migration guide for GCC-3.2"><a id="id711960"/><p><span class="title"><em>
|
</em>. </span><span class="author"><span class="firstname">Martin</span> <span class="surname">Michlmayr</span>. </span></p></div><div class="biblioentry" title="Migration guide for GCC-3.2"><a id="id542044"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://annwm.lbl.gov/~leggett/Atlas/gcc-3.2.html">
|
<a class="link" href="http://annwm.lbl.gov/~leggett/Atlas/gcc-3.2.html">
|
||||||
Migration guide for GCC-3.2
|
Migration guide for GCC-3.2
|
||||||
</a>
|
</a>
|
||||||
|
|
|
@ -13,13 +13,13 @@
|
||||||
</a></span></dt><dd><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.api">API Reference</a></span></dt><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.data">Adding Data to <code class="classname">exception</code></a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt02ch05s02.html">Concept Checking</a></span></dt></dl></dd><dt><span class="chapter"><a href="utilities.html">6.
|
</a></span></dt><dd><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.api">API Reference</a></span></dt><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.data">Adding Data to <code class="classname">exception</code></a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt02ch05s02.html">Concept Checking</a></span></dt></dl></dd><dt><span class="chapter"><a href="utilities.html">6.
|
||||||
Utilities
|
Utilities
|
||||||
|
|
||||||
</a></span></dt><dd><dl><dt><span class="section"><a href="utilities.html#std.util.functors">Functors</a></span></dt><dt><span class="section"><a href="pairs.html">Pairs</a></span></dt><dt><span class="section"><a href="memory.html">Memory</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#std.util.memory.allocator">Allocators</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#allocator.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#allocator.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#allocator.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id633362">Interface Design</a></span></dt><dt><span class="section"><a href="memory.html#id633392">Selecting Default Allocation Policy</a></span></dt><dt><span class="section"><a href="memory.html#id633502">Disabling Memory Caching</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#allocator.using">Using a Specific Allocator</a></span></dt><dt><span class="section"><a href="memory.html#allocator.custom">Custom Allocators</a></span></dt><dt><span class="section"><a href="memory.html#allocator.ext">Extension Allocators</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.auto_ptr">auto_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#auto_ptr.limitations">Limitations</a></span></dt><dt><span class="section"><a href="memory.html#auto_ptr.using">Use in Containers</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.shared_ptr">shared_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#shared_ptr.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id634511">Class Hierarchy</a></span></dt><dt><span class="section"><a href="memory.html#id634689">Thread Safety</a></span></dt><dt><span class="section"><a href="memory.html#id634759">Selecting Lock Policy</a></span></dt><dt><span class="section"><a href="memory.html#id634881">Dual C++0x and TR1 Implementation</a></span></dt><dt><span class="section"><a href="memory.html#id634937">Related functions and classes</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.using">Use</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id635086">Examples</a></span></dt><dt><span class="section"><a href="memory.html#id635116">Unresolved Issues</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.ack">Acknowledgments</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="traits.html">Traits</a></span></dt></dl></dd><dt><span class="chapter"><a href="strings.html">7.
|
</a></span></dt><dd><dl><dt><span class="section"><a href="utilities.html#std.util.functors">Functors</a></span></dt><dt><span class="section"><a href="pairs.html">Pairs</a></span></dt><dt><span class="section"><a href="memory.html">Memory</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#std.util.memory.allocator">Allocators</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#allocator.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#allocator.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#allocator.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id463447">Interface Design</a></span></dt><dt><span class="section"><a href="memory.html#id463477">Selecting Default Allocation Policy</a></span></dt><dt><span class="section"><a href="memory.html#id463588">Disabling Memory Caching</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#allocator.using">Using a Specific Allocator</a></span></dt><dt><span class="section"><a href="memory.html#allocator.custom">Custom Allocators</a></span></dt><dt><span class="section"><a href="memory.html#allocator.ext">Extension Allocators</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.auto_ptr">auto_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#auto_ptr.limitations">Limitations</a></span></dt><dt><span class="section"><a href="memory.html#auto_ptr.using">Use in Containers</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.shared_ptr">shared_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#shared_ptr.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id464596">Class Hierarchy</a></span></dt><dt><span class="section"><a href="memory.html#id464775">Thread Safety</a></span></dt><dt><span class="section"><a href="memory.html#id464844">Selecting Lock Policy</a></span></dt><dt><span class="section"><a href="memory.html#id464966">Dual C++0x and TR1 Implementation</a></span></dt><dt><span class="section"><a href="memory.html#id465022">Related functions and classes</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.using">Use</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id465171">Examples</a></span></dt><dt><span class="section"><a href="memory.html#id465201">Unresolved Issues</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.ack">Acknowledgments</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="traits.html">Traits</a></span></dt></dl></dd><dt><span class="chapter"><a href="strings.html">7.
|
||||||
Strings
|
Strings
|
||||||
|
|
||||||
</a></span></dt><dd><dl><dt><span class="section"><a href="strings.html#std.strings.string">String Classes</a></span></dt><dd><dl><dt><span class="section"><a href="strings.html#strings.string.simple">Simple Transformations</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.case">Case Sensitivity</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.character_types">Arbitrary Character Types</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.token">Tokenizing</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.shrink">Shrink to Fit</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.Cstring">CString (MFC)</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="localization.html">8.
|
</a></span></dt><dd><dl><dt><span class="section"><a href="strings.html#std.strings.string">String Classes</a></span></dt><dd><dl><dt><span class="section"><a href="strings.html#strings.string.simple">Simple Transformations</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.case">Case Sensitivity</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.character_types">Arbitrary Character Types</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.token">Tokenizing</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.shrink">Shrink to Fit</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.Cstring">CString (MFC)</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="localization.html">8.
|
||||||
Localization
|
Localization
|
||||||
|
|
||||||
</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locales.locale.req">Requirements</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.design">Design</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locale.impl.c">Interacting with "C" locales</a></span></dt></dl></dd><dt><span class="section"><a href="localization.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#std.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.ctype.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#id649036">Specializations</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#codecvt.design.wchar_t_size"><span class="type">wchar_t</span> Size</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.unicode">Support for Unicode</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.issues">Other Issues</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#manual.localization.facet.messages">messages</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.messages.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.design">Design</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#messages.impl.models">Models</a></span></dt><dt><span class="section"><a href="facets.html#messages.impl.gnu">The GNU Model</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.messages.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="chapter"><a href="containers.html">9.
|
</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locales.locale.req">Requirements</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.design">Design</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locale.impl.c">Interacting with "C" locales</a></span></dt></dl></dd><dt><span class="section"><a href="localization.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#std.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.ctype.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#id479120">Specializations</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#codecvt.design.wchar_t_size"><span class="type">wchar_t</span> Size</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.unicode">Support for Unicode</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.issues">Other Issues</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#manual.localization.facet.messages">messages</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.messages.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.design">Design</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#messages.impl.models">Models</a></span></dt><dt><span class="section"><a href="facets.html#messages.impl.gnu">The GNU Model</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.messages.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="chapter"><a href="containers.html">9.
|
||||||
Containers
|
Containers
|
||||||
|
|
||||||
</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#std.containers.sequences">Sequences</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#containers.sequences.list">list</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.list.size">list::size() is O(n)</a></span></dt></dl></dd><dt><span class="section"><a href="containers.html#containers.sequences.vector">vector</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.vector.management">Space Overhead Management</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="associative.html">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#containers.associative.insert_hints">Insertion Hints</a></span></dt><dt><span class="section"><a href="associative.html#containers.associative.bitset">bitset</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#associative.bitset.size_variable">Size Variable</a></span></dt><dt><span class="section"><a href="associative.html#associative.bitset.type_string">Type String</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="containers_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="containers_and_c.html#containers.c.vs_array">Containers vs. Arrays</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="iterators.html">10.
|
</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#std.containers.sequences">Sequences</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#containers.sequences.list">list</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.list.size">list::size() is O(n)</a></span></dt></dl></dd><dt><span class="section"><a href="containers.html#containers.sequences.vector">vector</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.vector.management">Space Overhead Management</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="associative.html">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#containers.associative.insert_hints">Insertion Hints</a></span></dt><dt><span class="section"><a href="associative.html#containers.associative.bitset">bitset</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#associative.bitset.size_variable">Size Variable</a></span></dt><dt><span class="section"><a href="associative.html#associative.bitset.type_string">Type String</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="containers_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="containers_and_c.html#containers.c.vs_array">Containers vs. Arrays</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="iterators.html">10.
|
||||||
|
|
|
@ -19,6 +19,6 @@
|
||||||
mode or with debug mode. The
|
mode or with debug mode. The
|
||||||
following table provides the names and headers of the debugging
|
following table provides the names and headers of the debugging
|
||||||
containers:
|
containers:
|
||||||
</p><div class="table"><a id="id654877"/><p class="title"><strong>Table 17.1. Debugging Containers</strong></p><div class="table-contents"><table summary="Debugging Containers" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Container</th><th style="text-align: left">Header</th><th style="text-align: left">Debug container</th><th style="text-align: left">Debug header</th></tr></thead><tbody><tr><td style="text-align: left"><code class="classname">std::bitset</code></td><td style="text-align: left"><code class="filename">bitset</code></td><td style="text-align: left"><code class="classname">__gnu_debug::bitset</code></td><td style="text-align: left"><code class="filename"><debug/bitset></code></td></tr><tr><td style="text-align: left"><code class="classname">std::deque</code></td><td style="text-align: left"><code class="filename">deque</code></td><td style="text-align: left"><code class="classname">__gnu_debug::deque</code></td><td style="text-align: left"><code class="filename"><debug/deque></code></td></tr><tr><td style="text-align: left"><code class="classname">std::list</code></td><td style="text-align: left"><code class="filename">list</code></td><td style="text-align: left"><code class="classname">__gnu_debug::list</code></td><td style="text-align: left"><code class="filename"><debug/list></code></td></tr><tr><td style="text-align: left"><code class="classname">std::map</code></td><td style="text-align: left"><code class="filename">map</code></td><td style="text-align: left"><code class="classname">__gnu_debug::map</code></td><td style="text-align: left"><code class="filename"><debug/map></code></td></tr><tr><td style="text-align: left"><code class="classname">std::multimap</code></td><td style="text-align: left"><code class="filename">map</code></td><td style="text-align: left"><code class="classname">__gnu_debug::multimap</code></td><td style="text-align: left"><code class="filename"><debug/map></code></td></tr><tr><td style="text-align: left"><code class="classname">std::multiset</code></td><td style="text-align: left"><code class="filename">set</code></td><td style="text-align: left"><code class="classname">__gnu_debug::multiset</code></td><td style="text-align: left"><code class="filename"><debug/set></code></td></tr><tr><td style="text-align: left"><code class="classname">std::set</code></td><td style="text-align: left"><code class="filename">set</code></td><td style="text-align: left"><code class="classname">__gnu_debug::set</code></td><td style="text-align: left"><code class="filename"><debug/set></code></td></tr><tr><td style="text-align: left"><code class="classname">std::string</code></td><td style="text-align: left"><code class="filename">string</code></td><td style="text-align: left"><code class="classname">__gnu_debug::string</code></td><td style="text-align: left"><code class="filename"><debug/string></code></td></tr><tr><td style="text-align: left"><code class="classname">std::wstring</code></td><td style="text-align: left"><code class="filename">string</code></td><td style="text-align: left"><code class="classname">__gnu_debug::wstring</code></td><td style="text-align: left"><code class="filename"><debug/string></code></td></tr><tr><td style="text-align: left"><code class="classname">std::basic_string</code></td><td style="text-align: left"><code class="filename">string</code></td><td style="text-align: left"><code class="classname">__gnu_debug::basic_string</code></td><td style="text-align: left"><code class="filename"><debug/string></code></td></tr><tr><td style="text-align: left"><code class="classname">std::vector</code></td><td style="text-align: left"><code class="filename">vector</code></td><td style="text-align: left"><code class="classname">__gnu_debug::vector</code></td><td style="text-align: left"><code class="filename"><debug/vector></code></td></tr></tbody></table></div></div><br class="table-break"/><p>In addition, when compiling in C++0x mode, these additional
|
</p><div class="table"><a id="id484961"/><p class="title"><strong>Table 17.1. Debugging Containers</strong></p><div class="table-contents"><table summary="Debugging Containers" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Container</th><th style="text-align: left">Header</th><th style="text-align: left">Debug container</th><th style="text-align: left">Debug header</th></tr></thead><tbody><tr><td style="text-align: left"><code class="classname">std::bitset</code></td><td style="text-align: left"><code class="filename">bitset</code></td><td style="text-align: left"><code class="classname">__gnu_debug::bitset</code></td><td style="text-align: left"><code class="filename"><debug/bitset></code></td></tr><tr><td style="text-align: left"><code class="classname">std::deque</code></td><td style="text-align: left"><code class="filename">deque</code></td><td style="text-align: left"><code class="classname">__gnu_debug::deque</code></td><td style="text-align: left"><code class="filename"><debug/deque></code></td></tr><tr><td style="text-align: left"><code class="classname">std::list</code></td><td style="text-align: left"><code class="filename">list</code></td><td style="text-align: left"><code class="classname">__gnu_debug::list</code></td><td style="text-align: left"><code class="filename"><debug/list></code></td></tr><tr><td style="text-align: left"><code class="classname">std::map</code></td><td style="text-align: left"><code class="filename">map</code></td><td style="text-align: left"><code class="classname">__gnu_debug::map</code></td><td style="text-align: left"><code class="filename"><debug/map></code></td></tr><tr><td style="text-align: left"><code class="classname">std::multimap</code></td><td style="text-align: left"><code class="filename">map</code></td><td style="text-align: left"><code class="classname">__gnu_debug::multimap</code></td><td style="text-align: left"><code class="filename"><debug/map></code></td></tr><tr><td style="text-align: left"><code class="classname">std::multiset</code></td><td style="text-align: left"><code class="filename">set</code></td><td style="text-align: left"><code class="classname">__gnu_debug::multiset</code></td><td style="text-align: left"><code class="filename"><debug/set></code></td></tr><tr><td style="text-align: left"><code class="classname">std::set</code></td><td style="text-align: left"><code class="filename">set</code></td><td style="text-align: left"><code class="classname">__gnu_debug::set</code></td><td style="text-align: left"><code class="filename"><debug/set></code></td></tr><tr><td style="text-align: left"><code class="classname">std::string</code></td><td style="text-align: left"><code class="filename">string</code></td><td style="text-align: left"><code class="classname">__gnu_debug::string</code></td><td style="text-align: left"><code class="filename"><debug/string></code></td></tr><tr><td style="text-align: left"><code class="classname">std::wstring</code></td><td style="text-align: left"><code class="filename">string</code></td><td style="text-align: left"><code class="classname">__gnu_debug::wstring</code></td><td style="text-align: left"><code class="filename"><debug/string></code></td></tr><tr><td style="text-align: left"><code class="classname">std::basic_string</code></td><td style="text-align: left"><code class="filename">string</code></td><td style="text-align: left"><code class="classname">__gnu_debug::basic_string</code></td><td style="text-align: left"><code class="filename"><debug/string></code></td></tr><tr><td style="text-align: left"><code class="classname">std::vector</code></td><td style="text-align: left"><code class="filename">vector</code></td><td style="text-align: left"><code class="classname">__gnu_debug::vector</code></td><td style="text-align: left"><code class="filename"><debug/vector></code></td></tr></tbody></table></div></div><br class="table-break"/><p>In addition, when compiling in C++0x mode, these additional
|
||||||
containers have additional debug capability.
|
containers have additional debug capability.
|
||||||
</p><div class="table"><a id="id655252"/><p class="title"><strong>Table 17.2. Debugging Containers C++0x</strong></p><div class="table-contents"><table summary="Debugging Containers C++0x" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Container</th><th style="text-align: left">Header</th><th style="text-align: left">Debug container</th><th style="text-align: left">Debug header</th></tr></thead><tbody><tr><td style="text-align: left"><code class="classname">std::unordered_map</code></td><td style="text-align: left"><code class="filename">unordered_map</code></td><td style="text-align: left"><code class="classname">__gnu_debug::unordered_map</code></td><td style="text-align: left"><code class="filename"><debug/unordered_map></code></td></tr><tr><td style="text-align: left"><code class="classname">std::unordered_multimap</code></td><td style="text-align: left"><code class="filename">unordered_map</code></td><td style="text-align: left"><code class="classname">__gnu_debug::unordered_multimap</code></td><td style="text-align: left"><code class="filename"><debug/unordered_map></code></td></tr><tr><td style="text-align: left"><code class="classname">std::unordered_set</code></td><td style="text-align: left"><code class="filename">unordered_set</code></td><td style="text-align: left"><code class="classname">__gnu_debug::unordered_set</code></td><td style="text-align: left"><code class="filename"><debug/unordered_set></code></td></tr><tr><td style="text-align: left"><code class="classname">std::unordered_multiset</code></td><td style="text-align: left"><code class="filename">unordered_set</code></td><td style="text-align: left"><code class="classname">__gnu_debug::unordered_multiset</code></td><td style="text-align: left"><code class="filename"><debug/unordered_set></code></td></tr></tbody></table></div></div><br class="table-break"/></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch17s02.html">Prev</a> </td><td align="center"><a accesskey="u" href="debug_mode.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03ch17s04.html">Next</a></td></tr><tr><td align="left" valign="top">Semantics </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Design</td></tr></table></div></body></html>
|
</p><div class="table"><a id="id485336"/><p class="title"><strong>Table 17.2. Debugging Containers C++0x</strong></p><div class="table-contents"><table summary="Debugging Containers C++0x" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Container</th><th style="text-align: left">Header</th><th style="text-align: left">Debug container</th><th style="text-align: left">Debug header</th></tr></thead><tbody><tr><td style="text-align: left"><code class="classname">std::unordered_map</code></td><td style="text-align: left"><code class="filename">unordered_map</code></td><td style="text-align: left"><code class="classname">__gnu_debug::unordered_map</code></td><td style="text-align: left"><code class="filename"><debug/unordered_map></code></td></tr><tr><td style="text-align: left"><code class="classname">std::unordered_multimap</code></td><td style="text-align: left"><code class="filename">unordered_map</code></td><td style="text-align: left"><code class="classname">__gnu_debug::unordered_multimap</code></td><td style="text-align: left"><code class="filename"><debug/unordered_map></code></td></tr><tr><td style="text-align: left"><code class="classname">std::unordered_set</code></td><td style="text-align: left"><code class="filename">unordered_set</code></td><td style="text-align: left"><code class="classname">__gnu_debug::unordered_set</code></td><td style="text-align: left"><code class="filename"><debug/unordered_set></code></td></tr><tr><td style="text-align: left"><code class="classname">std::unordered_multiset</code></td><td style="text-align: left"><code class="filename">unordered_set</code></td><td style="text-align: left"><code class="classname">__gnu_debug::unordered_multiset</code></td><td style="text-align: left"><code class="filename"><debug/unordered_set></code></td></tr></tbody></table></div></div><br class="table-break"/></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch17s02.html">Prev</a> </td><td align="center"><a accesskey="u" href="debug_mode.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03ch17s04.html">Next</a></td></tr><tr><td align="left" valign="top">Semantics </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Design</td></tr></table></div></body></html>
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Design</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" C++ , library , profile "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode"/><link rel="prev" href="profile_mode.html" title="Chapter 19. Profile Mode"/><link rel="next" href="bk01pt03ch19s03.html" title="Extensions for Custom Containers"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td align="left"><a accesskey="p" href="profile_mode.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td align="right"> <a accesskey="n" href="bk01pt03ch19s03.html">Next</a></td></tr></table><hr/></div><div class="section" title="Design"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode.design"/>Design</h2></div></div></div><p>
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Design</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" C++ , library , profile "/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode"/><link rel="prev" href="profile_mode.html" title="Chapter 19. Profile Mode"/><link rel="next" href="bk01pt03ch19s03.html" title="Extensions for Custom Containers"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td align="left"><a accesskey="p" href="profile_mode.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td align="right"> <a accesskey="n" href="bk01pt03ch19s03.html">Next</a></td></tr></table><hr/></div><div class="section" title="Design"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode.design"/>Design</h2></div></div></div><p>
|
||||||
</p><div class="table"><a id="id658962"/><p class="title"><strong>Table 19.1. Profile Code Location</strong></p><div class="table-contents"><table summary="Profile Code Location" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/></colgroup><thead><tr><th style="text-align: left">Code Location</th><th style="text-align: left">Use</th></tr></thead><tbody><tr><td style="text-align: left"><code class="code">libstdc++-v3/include/std/*</code></td><td style="text-align: left">Preprocessor code to redirect to profile extension headers.</td></tr><tr><td style="text-align: left"><code class="code">libstdc++-v3/include/profile/*</code></td><td style="text-align: left">Profile extension public headers (map, vector, ...).</td></tr><tr><td style="text-align: left"><code class="code">libstdc++-v3/include/profile/impl/*</code></td><td style="text-align: left">Profile extension internals. Implementation files are
|
</p><div class="table"><a id="id489046"/><p class="title"><strong>Table 19.1. Profile Code Location</strong></p><div class="table-contents"><table summary="Profile Code Location" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/></colgroup><thead><tr><th style="text-align: left">Code Location</th><th style="text-align: left">Use</th></tr></thead><tbody><tr><td style="text-align: left"><code class="code">libstdc++-v3/include/std/*</code></td><td style="text-align: left">Preprocessor code to redirect to profile extension headers.</td></tr><tr><td style="text-align: left"><code class="code">libstdc++-v3/include/profile/*</code></td><td style="text-align: left">Profile extension public headers (map, vector, ...).</td></tr><tr><td style="text-align: left"><code class="code">libstdc++-v3/include/profile/impl/*</code></td><td style="text-align: left">Profile extension internals. Implementation files are
|
||||||
only included from <code class="code">impl/profiler.h</code>, which is the only
|
only included from <code class="code">impl/profiler.h</code>, which is the only
|
||||||
file included from the public headers.</td></tr></tbody></table></div></div><br class="table-break"/><p>
|
file included from the public headers.</td></tr></tbody></table></div></div><br class="table-break"/><p>
|
||||||
</p><div class="section" title="Wrapper Model"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.wrapper"/>Wrapper Model</h3></div></div></div><p>
|
</p><div class="section" title="Wrapper Model"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.wrapper"/>Wrapper Model</h3></div></div></div><p>
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
A high accuracy means that the diagnostic is unlikely to be wrong.
|
A high accuracy means that the diagnostic is unlikely to be wrong.
|
||||||
These grades are not perfect. They are just meant to guide users with
|
These grades are not perfect. They are just meant to guide users with
|
||||||
specific needs or time budgets.
|
specific needs or time budgets.
|
||||||
</p><div class="table"><a id="id659844"/><p class="title"><strong>Table 19.2. Profile Diagnostics</strong></p><div class="table-contents"><table summary="Profile Diagnostics" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/><col style="text-align: left" class="c6"/><col style="text-align: left" class="c7"/></colgroup><thead><tr><th style="text-align: left">Group</th><th style="text-align: left">Flag</th><th style="text-align: left">Benefit</th><th style="text-align: left">Cost</th><th style="text-align: left">Freq.</th><th style="text-align: left">Implemented</th><td class="auto-generated"> </td></tr></thead><tbody><tr><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.containers" title="Containers">
|
</p><div class="table"><a id="id489928"/><p class="title"><strong>Table 19.2. Profile Diagnostics</strong></p><div class="table-contents"><table summary="Profile Diagnostics" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/><col style="text-align: left" class="c6"/><col style="text-align: left" class="c7"/></colgroup><thead><tr><th style="text-align: left">Group</th><th style="text-align: left">Flag</th><th style="text-align: left">Benefit</th><th style="text-align: left">Cost</th><th style="text-align: left">Freq.</th><th style="text-align: left">Implemented</th><td class="auto-generated"> </td></tr></thead><tbody><tr><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.containers" title="Containers">
|
||||||
CONTAINERS</a></td><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_too_small" title="Hashtable Too Small">
|
CONTAINERS</a></td><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_too_small" title="Hashtable Too Small">
|
||||||
HASHTABLE_TOO_SMALL</a></td><td style="text-align: left">10</td><td style="text-align: left">1</td><td style="text-align: left"> </td><td style="text-align: left">10</td><td style="text-align: left">yes</td></tr><tr><td style="text-align: left"> </td><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_too_large" title="Hashtable Too Large">
|
HASHTABLE_TOO_SMALL</a></td><td style="text-align: left">10</td><td style="text-align: left">1</td><td style="text-align: left"> </td><td style="text-align: left">10</td><td style="text-align: left">yes</td></tr><tr><td style="text-align: left"> </td><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_too_large" title="Hashtable Too Large">
|
||||||
HASHTABLE_TOO_LARGE</a></td><td style="text-align: left">5</td><td style="text-align: left">1</td><td style="text-align: left"> </td><td style="text-align: left">10</td><td style="text-align: left">yes</td></tr><tr><td style="text-align: left"> </td><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.inefficient_hash" title="Inefficient Hash">
|
HASHTABLE_TOO_LARGE</a></td><td style="text-align: left">5</td><td style="text-align: left">1</td><td style="text-align: left"> </td><td style="text-align: left">10</td><td style="text-align: left">yes</td></tr><tr><td style="text-align: left"> </td><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.inefficient_hash" title="Inefficient Hash">
|
||||||
|
|
|
@ -76,7 +76,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="id663274"/><p class="title"><strong>Table 21.1. Bitmap Allocator Memory Map</strong></p><div class="table-contents"><table summary="Bitmap Allocator Memory Map" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><tbody><tr><td style="text-align: left">268</td><td style="text-align: left">0</td><td style="text-align: left">4294967295</td><td style="text-align: left">4294967295</td><td style="text-align: left">Data -> Space for 64 ints</td></tr></tbody></table></div></div><br class="table-break"/><p>
|
</p><div class="table"><a id="id493358"/><p class="title"><strong>Table 21.1. Bitmap Allocator Memory Map</strong></p><div class="table-contents"><table summary="Bitmap Allocator Memory Map" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><tbody><tr><td style="text-align: left">268</td><td style="text-align: left">0</td><td style="text-align: left">4294967295</td><td style="text-align: left">4294967295</td><td style="text-align: left">Data -> Space for 64 ints</td></tr></tbody></table></div></div><br class="table-break"/><p>
|
||||||
The first Column(268) represents the size of the Block in bytes as
|
The first Column(268) represents the size of the Block in bytes as
|
||||||
seen by the Bitmap Allocator. Internally, a global free list is
|
seen by the Bitmap Allocator. Internally, a global free list is
|
||||||
used to keep track of the free blocks used and given back by the
|
used to keep track of the free blocks used and given back by the
|
||||||
|
|
|
@ -1,50 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Deprecated HP/SGI</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="ext_containers.html" title="Chapter 21. Containers"/><link rel="prev" href="bk01pt03ch21s02.html" title="HP/SGI"/><link rel="next" href="ext_utilities.html" title="Chapter 22. Utilities"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Deprecated HP/SGI</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch21s02.html">Prev</a> </td><th width="60%" align="center">Chapter 21. Containers</th><td align="right"> <a accesskey="n" href="ext_utilities.html">Next</a></td></tr></table><hr/></div><div class="section" title="Deprecated HP/SGI"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.containers.deprecated_sgi"/>Deprecated HP/SGI</h2></div></div></div><p>
|
|
||||||
The SGI hashing classes <code class="classname">hash_set</code> and
|
|
||||||
<code class="classname">hash_set</code> have been deprecated by the
|
|
||||||
unordered_set, unordered_multiset, unordered_map,
|
|
||||||
unordered_multimap containers in TR1 and the upcoming C++0x, and
|
|
||||||
may be removed in future releases.
|
|
||||||
</p><p>The SGI headers</p><pre class="programlisting">
|
|
||||||
<hash_map>
|
|
||||||
<hash_set>
|
|
||||||
<rope>
|
|
||||||
<slist>
|
|
||||||
<rb_tree>
|
|
||||||
</pre><p>are all here;
|
|
||||||
<code class="code"><hash_map></code> and <code class="code"><hash_set></code>
|
|
||||||
are deprecated but available as backwards-compatible extensions,
|
|
||||||
as discussed further below. <code class="code"><rope></code> is the
|
|
||||||
SGI specialization for large strings ("rope,"
|
|
||||||
"large strings," get it? Love that geeky humor.)
|
|
||||||
<code class="code"><slist></code> is a singly-linked list, for when the
|
|
||||||
doubly-linked <code class="code">list<></code> is too much space
|
|
||||||
overhead, and <code class="code"><rb_tree></code> exposes the red-black
|
|
||||||
tree classes used in the implementation of the standard maps and
|
|
||||||
sets.
|
|
||||||
</p><p>Each of the associative containers map, multimap, set, and multiset
|
|
||||||
have a counterpart which uses a
|
|
||||||
<a class="link" href="http://www.sgi.com/tech/stl/HashFunction.html">hashing
|
|
||||||
function</a> to do the arranging, instead of a strict weak ordering
|
|
||||||
function. The classes take as one of their template parameters a
|
|
||||||
function object that will return the hash value; by default, an
|
|
||||||
instantiation of
|
|
||||||
<a class="link" href="http://www.sgi.com/tech/stl/hash.html">hash</a>.
|
|
||||||
You should specialize this functor for your class, or define your own,
|
|
||||||
before trying to use one of the hashing classes.
|
|
||||||
</p><p>The hashing classes support all the usual associative container
|
|
||||||
functions, as well as some extra constructors specifying the number
|
|
||||||
of buckets, etc.
|
|
||||||
</p><p>Why would you want to use a hashing class instead of the
|
|
||||||
<span class="quote">“<span class="quote">normal</span>”</span>implementations? Matt Austern writes:
|
|
||||||
</p><div class="blockquote"><blockquote class="blockquote"><p>
|
|
||||||
<span class="emphasis"><em>[W]ith a well chosen hash function, hash tables
|
|
||||||
generally provide much better average-case performance than
|
|
||||||
binary search trees, and much worse worst-case performance. So
|
|
||||||
if your implementation has hash_map, if you don't mind using
|
|
||||||
nonstandard components, and if you aren't scared about the
|
|
||||||
possibility of pathological cases, you'll probably get better
|
|
||||||
performance from hash_map.
|
|
||||||
</em></span>
|
|
||||||
</p></blockquote></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch21s02.html">Prev</a> </td><td align="center"><a accesskey="u" href="ext_containers.html">Up</a></td><td align="right"> <a accesskey="n" href="ext_utilities.html">Next</a></td></tr><tr><td align="left" valign="top">HP/SGI </td><td align="center"><a accesskey="h" href="../spine.html">Home</a></td><td align="right" valign="top"> Chapter 22. Utilities</td></tr></table></div></body></html>
|
|
|
@ -1,41 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Implementation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , library "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="ext_concurrency.html" title="Chapter 28. Concurrency"/><link rel="prev" href="ext_concurrency.html" title="Chapter 28. Concurrency"/><link rel="next" href="bk01pt03ch28s03.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 align="left"><a accesskey="p" href="ext_concurrency.html">Prev</a> </td><th width="60%" align="center">Chapter 28. Concurrency</th><td align="right"> <a accesskey="n" href="bk01pt03ch28s03.html">Next</a></td></tr></table><hr/></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.concurrency.impl"/>Implementation</h2></div></div></div><div class="section" title="Using Builtin Atomic Functions"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.impl.atomic_fallbacks"/>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
|
|
||||||
capable) or by library fallbacks.</p><p>Compiler intrinsics (builtins) are always preferred. However, as
|
|
||||||
the compiler builtins for atomics are not universally implemented,
|
|
||||||
using them directly is problematic, and can result in undefined
|
|
||||||
function calls. (An example of an undefined symbol from the use
|
|
||||||
of <code class="code">__sync_fetch_and_add</code> on an unsupported host is a
|
|
||||||
missing reference to <code class="code">__sync_fetch_and_add_4</code>.)
|
|
||||||
</p><p>In addition, on some hosts the compiler intrinsics are enabled
|
|
||||||
conditionally, via the <code class="code">-march</code> command line flag. This makes
|
|
||||||
usage vary depending on the target hardware and the flags used during
|
|
||||||
compile.
|
|
||||||
</p><p>
|
|
||||||
If builtins are possible for bool-sized integral types,
|
|
||||||
<code class="code">_GLIBCXX_ATOMIC_BUILTINS_1</code> will be defined.
|
|
||||||
If builtins are possible for int-sized integral types,
|
|
||||||
<code class="code">_GLIBCXX_ATOMIC_BUILTINS_4</code> will be defined.
|
|
||||||
</p><p>For the following hosts, intrinsics are enabled by default.
|
|
||||||
</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>alpha</p></li><li class="listitem"><p>ia64</p></li><li class="listitem"><p>powerpc</p></li><li class="listitem"><p>s390</p></li></ul></div><p>For others, some form of <code class="code">-march</code> may work. On
|
|
||||||
non-ancient x86 hardware, <code class="code">-march=native</code> usually does the
|
|
||||||
trick.</p><p> For hosts without compiler intrinsics, but with capable
|
|
||||||
hardware, hand-crafted assembly is selected. This is the case for the following hosts:
|
|
||||||
</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>cris</p></li><li class="listitem"><p>hppa</p></li><li class="listitem"><p>i386</p></li><li class="listitem"><p>i486</p></li><li class="listitem"><p>m48k</p></li><li class="listitem"><p>mips</p></li><li class="listitem"><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="link" href="http://gcc.gnu.org/onlinedocs/gcc/Atomic-Builtins.html"> documentation</a>.
|
|
||||||
</p><p> More details on the library fallbacks from the porting <a class="link" href="internals.html#internals.thread_safety" title="Thread Safety">section</a>.
|
|
||||||
</p></div><div class="section" title="Thread Abstraction"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.impl.thread"/>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
|
|
||||||
comprised of one header file that wraps the host's default thread layer with
|
|
||||||
a POSIX-like interface.
|
|
||||||
</p><p> The file <gthr-default.h> points to the deduced wrapper for
|
|
||||||
the current host. In libstdc++ implementation files,
|
|
||||||
<bits/gthr.h> is used to select the proper gthreads file.
|
|
||||||
</p><p>Within libstdc++ sources, all calls to underlying thread functionality
|
|
||||||
use this layer. More detail as to the specific interface can be found in the source <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00883_source.html">documentation</a>.
|
|
||||||
</p><p>By design, the gthread layer is interoperable with the types,
|
|
||||||
functions, and usage found in the usual <pthread.h> file,
|
|
||||||
including <code class="code">pthread_t</code>, <code class="code">pthread_once_t</code>, <code class="code">pthread_create</code>,
|
|
||||||
etc.
|
|
||||||
</p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="ext_concurrency.html">Prev</a> </td><td align="center"><a accesskey="u" href="ext_concurrency.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt03ch28s03.html">Next</a></td></tr><tr><td align="left" valign="top">Chapter 28. Concurrency </td><td align="center"><a accesskey="h" href="../spine.html">Home</a></td><td align="right" valign="top"> Use</td></tr></table></div></body></html>
|
|
|
@ -1,36 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Use</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , library "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="ext_concurrency.html" title="Chapter 28. Concurrency"/><link rel="prev" href="bk01pt03ch28s02.html" title="Implementation"/><link rel="next" href="bk01pt04.html" title="Part IV. Appendices"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Use</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch28s02.html">Prev</a> </td><th width="60%" align="center">Chapter 28. Concurrency</th><td align="right"> <a accesskey="n" href="bk01pt04.html">Next</a></td></tr></table><hr/></div><div class="section" title="Use"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.concurrency.use"/>Use</h2></div></div></div><p>Typical usage of the last two constructs is demonstrated as follows:
|
|
||||||
</p><pre class="programlisting">
|
|
||||||
#include <ext/concurrence.h>
|
|
||||||
|
|
||||||
namespace
|
|
||||||
{
|
|
||||||
__gnu_cxx::__mutex safe_base_mutex;
|
|
||||||
} // anonymous namespace
|
|
||||||
|
|
||||||
namespace other
|
|
||||||
{
|
|
||||||
void
|
|
||||||
foo()
|
|
||||||
{
|
|
||||||
__gnu_cxx::__scoped_lock sentry(safe_base_mutex);
|
|
||||||
for (int i = 0; i < max; ++i)
|
|
||||||
{
|
|
||||||
_Safe_iterator_base* __old = __iter;
|
|
||||||
__iter = __iter-<_M_next;
|
|
||||||
__old-<_M_detach_single();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</pre><p>In this sample code, an anonymous namespace is used to keep
|
|
||||||
the <code class="code">__mutex</code> private to the compilation unit,
|
|
||||||
and <code class="code">__scoped_lock</code> is used to guard access to the critical
|
|
||||||
section within the for loop, locking the mutex on creation and freeing
|
|
||||||
the mutex as control moves out of this block.
|
|
||||||
</p><p>Several exception classes are used to keep track of
|
|
||||||
concurrence-related errors. These classes
|
|
||||||
are: <code class="code">__concurrence_lock_error</code>, <code class="code">__concurrence_unlock_error</code>, <code class="code">__concurrence_wait_error</code>,
|
|
||||||
and <code class="code">__concurrence_broadcast_error</code>.
|
|
||||||
</p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch28s02.html">Prev</a> </td><td align="center"><a accesskey="u" href="ext_concurrency.html">Up</a></td><td align="right"> <a accesskey="n" href="bk01pt04.html">Next</a></td></tr><tr><td align="left" valign="top">Implementation </td><td align="center"><a accesskey="h" href="../spine.html">Home</a></td><td align="right" valign="top"> Part IV.
|
|
||||||
Appendices
|
|
||||||
</td></tr></table></div></body></html>
|
|
|
@ -3,7 +3,7 @@
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title/><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="Part III. Extensions"/><link rel="prev" href="extensions.html" title="Part III. Extensions"/><link rel="next" href="ext_compile_checks.html" title="Chapter 16. Compile Time Checks"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"/></tr><tr><td align="left"><a accesskey="p" href="extensions.html">Prev</a> </td><th width="60%" align="center">Part III.
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><title/><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="Part III. Extensions"/><link rel="prev" href="extensions.html" title="Part III. Extensions"/><link rel="next" href="ext_compile_checks.html" title="Chapter 16. Compile Time Checks"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"/></tr><tr><td align="left"><a accesskey="p" href="extensions.html">Prev</a> </td><th width="60%" align="center">Part III.
|
||||||
Extensions
|
Extensions
|
||||||
|
|
||||||
</th><td align="right"> <a accesskey="n" href="ext_compile_checks.html">Next</a></td></tr></table><hr/></div><div class="preface"><div class="titlepage"><div><div><h1 class="title"><a id="id654345"/></h1></div></div></div><p>
|
</th><td align="right"> <a accesskey="n" href="ext_compile_checks.html">Next</a></td></tr></table><hr/></div><div class="preface"><div class="titlepage"><div><div><h1 class="title"><a id="id484429"/></h1></div></div></div><p>
|
||||||
Here we will make an attempt at describing the non-Standard
|
Here we will make an attempt at describing the non-Standard
|
||||||
extensions to the library. Some of these are from older versions of
|
extensions to the library. Some of these are from older versions of
|
||||||
standard library components, namely SGI's STL, and some of these are
|
standard library components, namely SGI's STL, and some of these are
|
||||||
|
|
|
@ -17,20 +17,20 @@
|
||||||
Existing tests
|
Existing tests
|
||||||
</a></span></dt><dt><span class="section"><a href="test.html#test.exception.safety.containers">
|
</a></span></dt><dt><span class="section"><a href="test.html#test.exception.safety.containers">
|
||||||
C++0x Requirements Test Sequence Descriptions
|
C++0x Requirements Test Sequence Descriptions
|
||||||
</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a href="abi.html">ABI Policy and Guidelines</a></span></dt><dd><dl><dt><span class="section"><a href="abi.html#abi.cxx_interface">The C++ Interface</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning">Versioning</a></span></dt><dd><dl><dt><span class="section"><a href="abi.html#abi.versioning.goals">Goals</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning.history">History</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning.config">Configuring</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning.active">Checking Active</a></span></dt></dl></dd><dt><span class="section"><a href="abi.html#abi.changes_allowed">Allowed Changes</a></span></dt><dt><span class="section"><a href="abi.html#abi.changes_no">Prohibited Changes</a></span></dt><dt><span class="section"><a href="abi.html#abi.impl">Implementation</a></span></dt><dt><span class="section"><a href="abi.html#abi.testing">Testing</a></span></dt><dd><dl><dt><span class="section"><a href="abi.html#abi.testing.single">Single ABI Testing</a></span></dt><dt><span class="section"><a href="abi.html#abi.testing.multi">Multiple ABI Testing</a></span></dt></dl></dd><dt><span class="section"><a href="abi.html#abi.issues">Outstanding Issues</a></span></dt></dl></dd><dt><span class="section"><a href="api.html">API Evolution and Deprecation History</a></span></dt><dd><dl><dt><span class="section"><a href="api.html#api.rel_300"><code class="constant">3.0</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_310"><code class="constant">3.1</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_320"><code class="constant">3.2</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_330"><code class="constant">3.3</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_340"><code class="constant">3.4</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_400"><code class="constant">4.0</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_410"><code class="constant">4.1</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_420"><code class="constant">4.2</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_430"><code class="constant">4.3</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_440"><code class="constant">4.4</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_450"><code class="constant">4.5</code></a></span></dt></dl></dd><dt><span class="section"><a href="backwards.html">Backwards Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#backwards.first">First</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#id710570">No <code class="code">ios_base</code></a></span></dt><dt><span class="section"><a href="backwards.html#id710603">No <code class="code">cout</code> in <code class="code">ostream.h</code>, no <code class="code">cin</code> in <code class="code">istream.h</code></a></span></dt></dl></dd><dt><span class="section"><a href="backwards.html#backwards.second">Second</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#id710706">Namespace <code class="code">std::</code> not supported</a></span></dt><dt><span class="section"><a href="backwards.html#id710832">Illegal iterator usage</a></span></dt><dt><span class="section"><a href="backwards.html#id710893"><code class="code">isspace</code> from <code class="filename">cctype</code> is a macro
|
</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a href="abi.html">ABI Policy and Guidelines</a></span></dt><dd><dl><dt><span class="section"><a href="abi.html#abi.cxx_interface">The C++ Interface</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning">Versioning</a></span></dt><dd><dl><dt><span class="section"><a href="abi.html#abi.versioning.goals">Goals</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning.history">History</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning.config">Configuring</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning.active">Checking Active</a></span></dt></dl></dd><dt><span class="section"><a href="abi.html#abi.changes_allowed">Allowed Changes</a></span></dt><dt><span class="section"><a href="abi.html#abi.changes_no">Prohibited Changes</a></span></dt><dt><span class="section"><a href="abi.html#abi.impl">Implementation</a></span></dt><dt><span class="section"><a href="abi.html#abi.testing">Testing</a></span></dt><dd><dl><dt><span class="section"><a href="abi.html#abi.testing.single">Single ABI Testing</a></span></dt><dt><span class="section"><a href="abi.html#abi.testing.multi">Multiple ABI Testing</a></span></dt></dl></dd><dt><span class="section"><a href="abi.html#abi.issues">Outstanding Issues</a></span></dt></dl></dd><dt><span class="section"><a href="api.html">API Evolution and Deprecation History</a></span></dt><dd><dl><dt><span class="section"><a href="api.html#api.rel_300"><code class="constant">3.0</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_310"><code class="constant">3.1</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_320"><code class="constant">3.2</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_330"><code class="constant">3.3</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_340"><code class="constant">3.4</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_400"><code class="constant">4.0</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_410"><code class="constant">4.1</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_420"><code class="constant">4.2</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_430"><code class="constant">4.3</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_440"><code class="constant">4.4</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_450"><code class="constant">4.5</code></a></span></dt></dl></dd><dt><span class="section"><a href="backwards.html">Backwards Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#backwards.first">First</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#id540654">No <code class="code">ios_base</code></a></span></dt><dt><span class="section"><a href="backwards.html#id540687">No <code class="code">cout</code> in <code class="code">ostream.h</code>, no <code class="code">cin</code> in <code class="code">istream.h</code></a></span></dt></dl></dd><dt><span class="section"><a href="backwards.html#backwards.second">Second</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#id540790">Namespace <code class="code">std::</code> not supported</a></span></dt><dt><span class="section"><a href="backwards.html#id540916">Illegal iterator usage</a></span></dt><dt><span class="section"><a href="backwards.html#id540977"><code class="code">isspace</code> from <code class="filename">cctype</code> is a macro
|
||||||
</a></span></dt><dt><span class="section"><a href="backwards.html#id710989">No <code class="code">vector::at</code>, <code class="code">deque::at</code>, <code class="code">string::at</code></a></span></dt><dt><span class="section"><a href="backwards.html#id711028">No <code class="code">std::char_traits<char>::eof</code></a></span></dt><dt><span class="section"><a href="backwards.html#id711046">No <code class="code">string::clear</code></a></span></dt><dt><span class="section"><a href="backwards.html#id711092">
|
</a></span></dt><dt><span class="section"><a href="backwards.html#id541073">No <code class="code">vector::at</code>, <code class="code">deque::at</code>, <code class="code">string::at</code></a></span></dt><dt><span class="section"><a href="backwards.html#id541112">No <code class="code">std::char_traits<char>::eof</code></a></span></dt><dt><span class="section"><a href="backwards.html#id541130">No <code class="code">string::clear</code></a></span></dt><dt><span class="section"><a href="backwards.html#id541176">
|
||||||
Removal of <code class="code">ostream::form</code> and <code class="code">istream::scan</code>
|
Removal of <code class="code">ostream::form</code> and <code class="code">istream::scan</code>
|
||||||
extensions
|
extensions
|
||||||
</a></span></dt><dt><span class="section"><a href="backwards.html#id711111">No <code class="code">basic_stringbuf</code>, <code class="code">basic_stringstream</code></a></span></dt><dt><span class="section"><a href="backwards.html#id711267">Little or no wide character support</a></span></dt><dt><span class="section"><a href="backwards.html#id711285">No templatized iostreams</a></span></dt><dt><span class="section"><a href="backwards.html#id711304">Thread safety issues</a></span></dt></dl></dd><dt><span class="section"><a href="backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#id711429">Pre-ISO headers moved to backwards or removed</a></span></dt><dt><span class="section"><a href="backwards.html#id711514">Extension headers hash_map, hash_set moved to ext or backwards</a></span></dt><dt><span class="section"><a href="backwards.html#id711617">No <code class="code">ios::nocreate/ios::noreplace</code>.
|
</a></span></dt><dt><span class="section"><a href="backwards.html#id541195">No <code class="code">basic_stringbuf</code>, <code class="code">basic_stringstream</code></a></span></dt><dt><span class="section"><a href="backwards.html#id541351">Little or no wide character support</a></span></dt><dt><span class="section"><a href="backwards.html#id541369">No templatized iostreams</a></span></dt><dt><span class="section"><a href="backwards.html#id541388">Thread safety issues</a></span></dt></dl></dd><dt><span class="section"><a href="backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#id541513">Pre-ISO headers moved to backwards or removed</a></span></dt><dt><span class="section"><a href="backwards.html#id541598">Extension headers hash_map, hash_set moved to ext or backwards</a></span></dt><dt><span class="section"><a href="backwards.html#id541701">No <code class="code">ios::nocreate/ios::noreplace</code>.
|
||||||
</a></span></dt><dt><span class="section"><a href="backwards.html#id711664">
|
</a></span></dt><dt><span class="section"><a href="backwards.html#id541749">
|
||||||
No <code class="code">stream::attach(int fd)</code>
|
No <code class="code">stream::attach(int fd)</code>
|
||||||
</a></span></dt><dt><span class="section"><a href="backwards.html#id711732">
|
</a></span></dt><dt><span class="section"><a href="backwards.html#id541817">
|
||||||
Support for C++98 dialect.
|
Support for C++98 dialect.
|
||||||
</a></span></dt><dt><span class="section"><a href="backwards.html#id711760">
|
</a></span></dt><dt><span class="section"><a href="backwards.html#id541844">
|
||||||
Support for C++TR1 dialect.
|
Support for C++TR1 dialect.
|
||||||
</a></span></dt><dt><span class="section"><a href="backwards.html#id711804">
|
</a></span></dt><dt><span class="section"><a href="backwards.html#id541888">
|
||||||
Support for C++0x dialect.
|
Support for C++0x dialect.
|
||||||
</a></span></dt><dt><span class="section"><a href="backwards.html#id711882">
|
</a></span></dt><dt><span class="section"><a href="backwards.html#id541966">
|
||||||
Container::iterator_type is not necessarily Container::value_type*
|
Container::iterator_type is not necessarily Container::value_type*
|
||||||
</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="appendix"><a href="appendix_free.html">C.
|
</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="appendix"><a href="appendix_free.html">C.
|
||||||
Free Software Needs Free Documentation
|
Free Software Needs Free Documentation
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
Standard Contents
|
Standard Contents
|
||||||
</th><td align="right"> <a accesskey="n" href="extensions.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 15. Concurrency"><div class="titlepage"><div><div><h2 class="title"><a id="std.concurrency"/>Chapter 15.
|
</th><td align="right"> <a accesskey="n" href="extensions.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 15. Concurrency"><div class="titlepage"><div><div><h2 class="title"><a id="std.concurrency"/>Chapter 15.
|
||||||
Concurrency
|
Concurrency
|
||||||
<a id="id654161" class="indexterm"/>
|
<a id="id484245" class="indexterm"/>
|
||||||
</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="concurrency.html#std.concurrency.api">API Reference</a></span></dt></dl></div><p>
|
</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="concurrency.html#std.concurrency.api">API Reference</a></span></dt></dl></div><p>
|
||||||
Facilities for concurrent operation, and control thereof.
|
Facilities for concurrent operation, and control thereof.
|
||||||
</p><div class="section" title="API Reference"><div class="titlepage"><div><div><h2 class="title"><a id="std.concurrency.api"/>API Reference</h2></div></div></div><p>
|
</p><div class="section" title="API Reference"><div class="titlepage"><div><div><h2 class="title"><a id="std.concurrency.api"/>API Reference</h2></div></div></div><p>
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
Standard Contents
|
Standard Contents
|
||||||
</th><td align="right"> <a accesskey="n" href="associative.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 9. Containers"><div class="titlepage"><div><div><h2 class="title"><a id="std.containers"/>Chapter 9.
|
</th><td align="right"> <a accesskey="n" href="associative.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 9. Containers"><div class="titlepage"><div><div><h2 class="title"><a id="std.containers"/>Chapter 9.
|
||||||
Containers
|
Containers
|
||||||
<a id="id651208" class="indexterm"/>
|
<a id="id481292" class="indexterm"/>
|
||||||
</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="containers.html#std.containers.sequences">Sequences</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#containers.sequences.list">list</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.list.size">list::size() is O(n)</a></span></dt></dl></dd><dt><span class="section"><a href="containers.html#containers.sequences.vector">vector</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.vector.management">Space Overhead Management</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="associative.html">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#containers.associative.insert_hints">Insertion Hints</a></span></dt><dt><span class="section"><a href="associative.html#containers.associative.bitset">bitset</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#associative.bitset.size_variable">Size Variable</a></span></dt><dt><span class="section"><a href="associative.html#associative.bitset.type_string">Type String</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="containers_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="containers_and_c.html#containers.c.vs_array">Containers vs. Arrays</a></span></dt></dl></dd></dl></div><div class="section" title="Sequences"><div class="titlepage"><div><div><h2 class="title"><a id="std.containers.sequences"/>Sequences</h2></div></div></div><div class="section" title="list"><div class="titlepage"><div><div><h3 class="title"><a id="containers.sequences.list"/>list</h3></div></div></div><div class="section" title="list::size() is O(n)"><div class="titlepage"><div><div><h4 class="title"><a id="sequences.list.size"/>list::size() is O(n)</h4></div></div></div><p>
|
</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="containers.html#std.containers.sequences">Sequences</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#containers.sequences.list">list</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.list.size">list::size() is O(n)</a></span></dt></dl></dd><dt><span class="section"><a href="containers.html#containers.sequences.vector">vector</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.vector.management">Space Overhead Management</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="associative.html">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#containers.associative.insert_hints">Insertion Hints</a></span></dt><dt><span class="section"><a href="associative.html#containers.associative.bitset">bitset</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#associative.bitset.size_variable">Size Variable</a></span></dt><dt><span class="section"><a href="associative.html#associative.bitset.type_string">Type String</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="containers_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="containers_and_c.html#containers.c.vs_array">Containers vs. Arrays</a></span></dt></dl></dd></dl></div><div class="section" title="Sequences"><div class="titlepage"><div><div><h2 class="title"><a id="std.containers.sequences"/>Sequences</h2></div></div></div><div class="section" title="list"><div class="titlepage"><div><div><h3 class="title"><a id="containers.sequences.list"/>list</h3></div></div></div><div class="section" title="list::size() is O(n)"><div class="titlepage"><div><div><h4 class="title"><a id="sequences.list.size"/>list::size() is O(n)</h4></div></div></div><p>
|
||||||
Yes it is, and that's okay. This is a decision that we preserved
|
Yes it is, and that's okay. This is a decision that we preserved
|
||||||
when we imported SGI's STL implementation. The following is
|
when we imported SGI's STL implementation. The following is
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
Standard Contents
|
Standard Contents
|
||||||
</th><td align="right"> <a accesskey="n" href="bk01pt02ch05s02.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 5. Diagnostics"><div class="titlepage"><div><div><h2 class="title"><a id="std.diagnostics"/>Chapter 5.
|
</th><td align="right"> <a accesskey="n" href="bk01pt02ch05s02.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 5. Diagnostics"><div class="titlepage"><div><div><h2 class="title"><a id="std.diagnostics"/>Chapter 5.
|
||||||
Diagnostics
|
Diagnostics
|
||||||
<a id="id632643" class="indexterm"/>
|
<a id="id462728" class="indexterm"/>
|
||||||
</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.api">API Reference</a></span></dt><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.data">Adding Data to <code class="classname">exception</code></a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt02ch05s02.html">Concept Checking</a></span></dt></dl></div><div class="section" title="Exceptions"><div class="titlepage"><div><div><h2 class="title"><a id="std.diagnostics.exceptions"/>Exceptions</h2></div></div></div><div class="section" title="API Reference"><div class="titlepage"><div><div><h3 class="title"><a id="std.diagnostics.exceptions.api"/>API Reference</h3></div></div></div><p>
|
</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.api">API Reference</a></span></dt><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.data">Adding Data to <code class="classname">exception</code></a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt02ch05s02.html">Concept Checking</a></span></dt></dl></div><div class="section" title="Exceptions"><div class="titlepage"><div><div><h2 class="title"><a id="std.diagnostics.exceptions"/>Exceptions</h2></div></div></div><div class="section" title="API Reference"><div class="titlepage"><div><div><h3 class="title"><a id="std.diagnostics.exceptions.api"/>API Reference</h3></div></div></div><p>
|
||||||
All exception objects are defined in one of the standard header
|
All exception objects are defined in one of the standard header
|
||||||
files: <code class="filename">exception</code>,
|
files: <code class="filename">exception</code>,
|
||||||
|
|
|
@ -117,7 +117,7 @@
|
||||||
supported, and are always aliased to dummy rules. These
|
supported, and are always aliased to dummy rules. These
|
||||||
unsupported formats are: <span class="emphasis"><em>info</em></span>,
|
unsupported formats are: <span class="emphasis"><em>info</em></span>,
|
||||||
<span class="emphasis"><em>ps</em></span>, and <span class="emphasis"><em>dvi</em></span>.
|
<span class="emphasis"><em>ps</em></span>, and <span class="emphasis"><em>dvi</em></span>.
|
||||||
</p></div><div class="section" title="Doxygen"><div class="titlepage"><div><div><h3 class="title"><a id="doc.doxygen"/>Doxygen</h3></div></div></div><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h4 class="title"><a id="doxygen.prereq"/>Prerequisites</h4></div></div></div><div class="table"><a id="id701803"/><p class="title"><strong>Table B.1. Doxygen Prerequisites</strong></p><div class="table-contents"><table summary="Doxygen Prerequisites" border="1"><colgroup><col style="text-align: center" class="c1"/><col style="text-align: center" class="c2"/><col style="text-align: center" class="c3"/></colgroup><thead><tr><th style="text-align: center">Tool</th><th style="text-align: center">Version</th><th style="text-align: center">Required By</th></tr></thead><tbody><tr><td style="text-align: center">coreutils</td><td style="text-align: center">8.5</td><td style="text-align: center">all</td></tr><tr><td style="text-align: center">bash</td><td style="text-align: center">4.1</td><td style="text-align: center">all</td></tr><tr><td style="text-align: center">doxygen</td><td style="text-align: center">1.7.0</td><td style="text-align: center">all</td></tr><tr><td style="text-align: center">graphviz</td><td style="text-align: center">2.26</td><td style="text-align: center">graphical hierarchies</td></tr><tr><td style="text-align: center">pdflatex</td><td style="text-align: center">2007-59</td><td style="text-align: center">pdf output</td></tr></tbody></table></div></div><br class="table-break"/><p>
|
</p></div><div class="section" title="Doxygen"><div class="titlepage"><div><div><h3 class="title"><a id="doc.doxygen"/>Doxygen</h3></div></div></div><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h4 class="title"><a id="doxygen.prereq"/>Prerequisites</h4></div></div></div><div class="table"><a id="id531887"/><p class="title"><strong>Table B.1. Doxygen Prerequisites</strong></p><div class="table-contents"><table summary="Doxygen Prerequisites" border="1"><colgroup><col style="text-align: center" class="c1"/><col style="text-align: center" class="c2"/><col style="text-align: center" class="c3"/></colgroup><thead><tr><th style="text-align: center">Tool</th><th style="text-align: center">Version</th><th style="text-align: center">Required By</th></tr></thead><tbody><tr><td style="text-align: center">coreutils</td><td style="text-align: center">8.5</td><td style="text-align: center">all</td></tr><tr><td style="text-align: center">bash</td><td style="text-align: center">4.1</td><td style="text-align: center">all</td></tr><tr><td style="text-align: center">doxygen</td><td style="text-align: center">1.7.0</td><td style="text-align: center">all</td></tr><tr><td style="text-align: center">graphviz</td><td style="text-align: center">2.26</td><td style="text-align: center">graphical hierarchies</td></tr><tr><td style="text-align: center">pdflatex</td><td style="text-align: center">2007-59</td><td style="text-align: center">pdf output</td></tr></tbody></table></div></div><br class="table-break"/><p>
|
||||||
Prerequisite tools are Bash 2.0 or later,
|
Prerequisite tools are Bash 2.0 or later,
|
||||||
<a class="link" href="http://www.doxygen.org/">Doxygen</a>, and
|
<a class="link" href="http://www.doxygen.org/">Doxygen</a>, and
|
||||||
the <a class="link" href="http://www.gnu.org/software/coreutils/">GNU
|
the <a class="link" href="http://www.gnu.org/software/coreutils/">GNU
|
||||||
|
@ -263,7 +263,7 @@
|
||||||
writing Doxygen comments. Single and double quotes, and
|
writing Doxygen comments. Single and double quotes, and
|
||||||
separators in filenames are two common trouble spots. When in
|
separators in filenames are two common trouble spots. When in
|
||||||
doubt, consult the following table.
|
doubt, consult the following table.
|
||||||
</p><div class="table"><a id="id702306"/><p class="title"><strong>Table B.2. HTML to Doxygen Markup Comparison</strong></p><div class="table-contents"><table summary="HTML to Doxygen Markup Comparison" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/></colgroup><thead><tr><th style="text-align: left">HTML</th><th style="text-align: left">Doxygen</th></tr></thead><tbody><tr><td style="text-align: left">\</td><td style="text-align: left">\\</td></tr><tr><td style="text-align: left">"</td><td style="text-align: left">\"</td></tr><tr><td style="text-align: left">'</td><td style="text-align: left">\'</td></tr><tr><td style="text-align: left"><i></td><td style="text-align: left">@a word</td></tr><tr><td style="text-align: left"><b></td><td style="text-align: left">@b word</td></tr><tr><td style="text-align: left"><code></td><td style="text-align: left">@c word</td></tr><tr><td style="text-align: left"><em></td><td style="text-align: left">@a word</td></tr><tr><td style="text-align: left"><em></td><td style="text-align: left"><em>two words or more</em></td></tr></tbody></table></div></div><br class="table-break"/></div></div><div class="section" title="Docbook"><div class="titlepage"><div><div><h3 class="title"><a id="doc.docbook"/>Docbook</h3></div></div></div><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h4 class="title"><a id="docbook.prereq"/>Prerequisites</h4></div></div></div><div class="table"><a id="id702468"/><p class="title"><strong>Table B.3. Docbook Prerequisites</strong></p><div class="table-contents"><table summary="Docbook Prerequisites" border="1"><colgroup><col style="text-align: center" class="c1"/><col style="text-align: center" class="c2"/><col style="text-align: center" class="c3"/></colgroup><thead><tr><th style="text-align: center">Tool</th><th style="text-align: center">Version</th><th style="text-align: center">Required By</th></tr></thead><tbody><tr><td style="text-align: center">docbook5-style-xsl</td><td style="text-align: center">1.76.1</td><td style="text-align: center">all</td></tr><tr><td style="text-align: center">xsltproc</td><td style="text-align: center">1.1.26</td><td style="text-align: center">all</td></tr><tr><td style="text-align: center">xmllint</td><td style="text-align: center">2.7.7</td><td style="text-align: center">validation</td></tr><tr><td style="text-align: center">dblatex</td><td style="text-align: center">0.3</td><td style="text-align: center">pdf output</td></tr><tr><td style="text-align: center">pdflatex</td><td style="text-align: center">2007-59</td><td style="text-align: center">pdf output</td></tr><tr><td style="text-align: center">docbook2X</td><td style="text-align: center">0.8.8</td><td style="text-align: center">info output</td></tr></tbody></table></div></div><br class="table-break"/><p>
|
</p><div class="table"><a id="id532390"/><p class="title"><strong>Table B.2. HTML to Doxygen Markup Comparison</strong></p><div class="table-contents"><table summary="HTML to Doxygen Markup Comparison" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/></colgroup><thead><tr><th style="text-align: left">HTML</th><th style="text-align: left">Doxygen</th></tr></thead><tbody><tr><td style="text-align: left">\</td><td style="text-align: left">\\</td></tr><tr><td style="text-align: left">"</td><td style="text-align: left">\"</td></tr><tr><td style="text-align: left">'</td><td style="text-align: left">\'</td></tr><tr><td style="text-align: left"><i></td><td style="text-align: left">@a word</td></tr><tr><td style="text-align: left"><b></td><td style="text-align: left">@b word</td></tr><tr><td style="text-align: left"><code></td><td style="text-align: left">@c word</td></tr><tr><td style="text-align: left"><em></td><td style="text-align: left">@a word</td></tr><tr><td style="text-align: left"><em></td><td style="text-align: left"><em>two words or more</em></td></tr></tbody></table></div></div><br class="table-break"/></div></div><div class="section" title="Docbook"><div class="titlepage"><div><div><h3 class="title"><a id="doc.docbook"/>Docbook</h3></div></div></div><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h4 class="title"><a id="docbook.prereq"/>Prerequisites</h4></div></div></div><div class="table"><a id="id532552"/><p class="title"><strong>Table B.3. Docbook Prerequisites</strong></p><div class="table-contents"><table summary="Docbook Prerequisites" border="1"><colgroup><col style="text-align: center" class="c1"/><col style="text-align: center" class="c2"/><col style="text-align: center" class="c3"/></colgroup><thead><tr><th style="text-align: center">Tool</th><th style="text-align: center">Version</th><th style="text-align: center">Required By</th></tr></thead><tbody><tr><td style="text-align: center">docbook5-style-xsl</td><td style="text-align: center">1.76.1</td><td style="text-align: center">all</td></tr><tr><td style="text-align: center">xsltproc</td><td style="text-align: center">1.1.26</td><td style="text-align: center">all</td></tr><tr><td style="text-align: center">xmllint</td><td style="text-align: center">2.7.7</td><td style="text-align: center">validation</td></tr><tr><td style="text-align: center">dblatex</td><td style="text-align: center">0.3</td><td style="text-align: center">pdf output</td></tr><tr><td style="text-align: center">pdflatex</td><td style="text-align: center">2007-59</td><td style="text-align: center">pdf output</td></tr><tr><td style="text-align: center">docbook2X</td><td style="text-align: center">0.8.8</td><td style="text-align: center">info output</td></tr></tbody></table></div></div><br class="table-break"/><p>
|
||||||
Editing the DocBook sources requires an XML editor. Many
|
Editing the DocBook sources requires an XML editor. Many
|
||||||
exist: some notable options
|
exist: some notable options
|
||||||
include <span class="command"><strong>emacs</strong></span>, <span class="application">Kate</span>,
|
include <span class="command"><strong>emacs</strong></span>, <span class="application">Kate</span>,
|
||||||
|
@ -419,11 +419,11 @@ make <code class="literal">XSL_STYLE_DIR="/usr/share/xml/docbook/stylesheet/nwal
|
||||||
<a class="link" href="http://www.docbook.org/tdg/en/html/part2.html">online</a>.
|
<a class="link" href="http://www.docbook.org/tdg/en/html/part2.html">online</a>.
|
||||||
An incomplete reference for HTML to Docbook conversion is
|
An incomplete reference for HTML to Docbook conversion is
|
||||||
detailed in the table below.
|
detailed in the table below.
|
||||||
</p><div class="table"><a id="id702945"/><p class="title"><strong>Table B.4. HTML to Docbook XML Markup Comparison</strong></p><div class="table-contents"><table summary="HTML to Docbook XML Markup Comparison" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/></colgroup><thead><tr><th style="text-align: left">HTML</th><th style="text-align: left">Docbook</th></tr></thead><tbody><tr><td style="text-align: left"><p></td><td style="text-align: left"><para></td></tr><tr><td style="text-align: left"><pre></td><td style="text-align: left"><computeroutput>, <programlisting>,
|
</p><div class="table"><a id="id533030"/><p class="title"><strong>Table B.4. HTML to Docbook XML Markup Comparison</strong></p><div class="table-contents"><table summary="HTML to Docbook XML Markup Comparison" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/></colgroup><thead><tr><th style="text-align: left">HTML</th><th style="text-align: left">Docbook</th></tr></thead><tbody><tr><td style="text-align: left"><p></td><td style="text-align: left"><para></td></tr><tr><td style="text-align: left"><pre></td><td style="text-align: left"><computeroutput>, <programlisting>,
|
||||||
<literallayout></td></tr><tr><td style="text-align: left"><ul></td><td style="text-align: left"><itemizedlist></td></tr><tr><td style="text-align: left"><ol></td><td style="text-align: left"><orderedlist></td></tr><tr><td style="text-align: left"><il></td><td style="text-align: left"><listitem></td></tr><tr><td style="text-align: left"><dl></td><td style="text-align: left"><variablelist></td></tr><tr><td style="text-align: left"><dt></td><td style="text-align: left"><term></td></tr><tr><td style="text-align: left"><dd></td><td style="text-align: left"><listitem></td></tr><tr><td style="text-align: left"><a href=""></td><td style="text-align: left"><ulink url=""></td></tr><tr><td style="text-align: left"><code></td><td style="text-align: left"><literal>, <programlisting></td></tr><tr><td style="text-align: left"><strong></td><td style="text-align: left"><emphasis></td></tr><tr><td style="text-align: left"><em></td><td style="text-align: left"><emphasis></td></tr><tr><td style="text-align: left">"</td><td style="text-align: left"><quote></td></tr></tbody></table></div></div><br class="table-break"/><p>
|
<literallayout></td></tr><tr><td style="text-align: left"><ul></td><td style="text-align: left"><itemizedlist></td></tr><tr><td style="text-align: left"><ol></td><td style="text-align: left"><orderedlist></td></tr><tr><td style="text-align: left"><il></td><td style="text-align: left"><listitem></td></tr><tr><td style="text-align: left"><dl></td><td style="text-align: left"><variablelist></td></tr><tr><td style="text-align: left"><dt></td><td style="text-align: left"><term></td></tr><tr><td style="text-align: left"><dd></td><td style="text-align: left"><listitem></td></tr><tr><td style="text-align: left"><a href=""></td><td style="text-align: left"><ulink url=""></td></tr><tr><td style="text-align: left"><code></td><td style="text-align: left"><literal>, <programlisting></td></tr><tr><td style="text-align: left"><strong></td><td style="text-align: left"><emphasis></td></tr><tr><td style="text-align: left"><em></td><td style="text-align: left"><emphasis></td></tr><tr><td style="text-align: left">"</td><td style="text-align: left"><quote></td></tr></tbody></table></div></div><br class="table-break"/><p>
|
||||||
And examples of detailed markup for which there are no real HTML
|
And examples of detailed markup for which there are no real HTML
|
||||||
equivalents are listed in the table below.
|
equivalents are listed in the table below.
|
||||||
</p><div class="table"><a id="id703147"/><p class="title"><strong>Table B.5. Docbook XML Element Use</strong></p><div class="table-contents"><table summary="Docbook XML Element Use" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/></colgroup><thead><tr><th style="text-align: left">Element</th><th style="text-align: left">Use</th></tr></thead><tbody><tr><td style="text-align: left"><structname></td><td style="text-align: left"><structname>char_traits</structname></td></tr><tr><td style="text-align: left"><classname></td><td style="text-align: left"><classname>string</classname></td></tr><tr><td style="text-align: left"><function></td><td style="text-align: left">
|
</p><div class="table"><a id="id533231"/><p class="title"><strong>Table B.5. Docbook XML Element Use</strong></p><div class="table-contents"><table summary="Docbook XML Element Use" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/></colgroup><thead><tr><th style="text-align: left">Element</th><th style="text-align: left">Use</th></tr></thead><tbody><tr><td style="text-align: left"><structname></td><td style="text-align: left"><structname>char_traits</structname></td></tr><tr><td style="text-align: left"><classname></td><td style="text-align: left"><classname>string</classname></td></tr><tr><td style="text-align: left"><function></td><td style="text-align: left">
|
||||||
<p><function>clear()</function></p>
|
<p><function>clear()</function></p>
|
||||||
<p><function>fs.clear()</function></p>
|
<p><function>fs.clear()</function></p>
|
||||||
</td></tr><tr><td style="text-align: left"><type></td><td style="text-align: left"><type>long long</type></td></tr><tr><td style="text-align: left"><varname></td><td style="text-align: left"><varname>fs</varname></td></tr><tr><td style="text-align: left"><literal></td><td style="text-align: left">
|
</td></tr><tr><td style="text-align: left"><type></td><td style="text-align: left"><type>long long</type></td></tr><tr><td style="text-align: left"><varname></td><td style="text-align: left"><varname>fs</varname></td></tr><tr><td style="text-align: left"><literal></td><td style="text-align: left">
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -3,7 +3,7 @@
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Facets</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="localization.html" title="Chapter 8. Localization"/><link rel="prev" href="localization.html" title="Chapter 8. Localization"/><link rel="next" href="containers.html" title="Chapter 9. Containers"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Facets</th></tr><tr><td align="left"><a accesskey="p" href="localization.html">Prev</a> </td><th width="60%" align="center">Chapter 8.
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Facets</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , library "/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="../index.html" title="The GNU C++ Library"/><link rel="up" href="localization.html" title="Chapter 8. Localization"/><link rel="prev" href="localization.html" title="Chapter 8. Localization"/><link rel="next" href="containers.html" title="Chapter 9. Containers"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Facets</th></tr><tr><td align="left"><a accesskey="p" href="localization.html">Prev</a> </td><th width="60%" align="center">Chapter 8.
|
||||||
Localization
|
Localization
|
||||||
|
|
||||||
</th><td align="right"> <a accesskey="n" href="containers.html">Next</a></td></tr></table><hr/></div><div class="section" title="Facets"><div class="titlepage"><div><div><h2 class="title"><a id="std.localization.facet"/>Facets</h2></div></div></div><div class="section" title="ctype"><div class="titlepage"><div><div><h3 class="title"><a id="std.localization.facet.ctype"/>ctype</h3></div></div></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h4 class="title"><a id="facet.ctype.impl"/>Implementation</h4></div></div></div><div class="section" title="Specializations"><div class="titlepage"><div><div><h5 class="title"><a id="id649036"/>Specializations</h5></div></div></div><p>
|
</th><td align="right"> <a accesskey="n" href="containers.html">Next</a></td></tr></table><hr/></div><div class="section" title="Facets"><div class="titlepage"><div><div><h2 class="title"><a id="std.localization.facet"/>Facets</h2></div></div></div><div class="section" title="ctype"><div class="titlepage"><div><div><h3 class="title"><a id="std.localization.facet.ctype"/>ctype</h3></div></div></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h4 class="title"><a id="facet.ctype.impl"/>Implementation</h4></div></div></div><div class="section" title="Specializations"><div class="titlepage"><div><div><h5 class="title"><a id="id479120"/>Specializations</h5></div></div></div><p>
|
||||||
For the required specialization codecvt<wchar_t, char, mbstate_t> ,
|
For the required specialization codecvt<wchar_t, char, mbstate_t> ,
|
||||||
conversions are made between the internal character set (always UCS4
|
conversions are made between the internal character set (always UCS4
|
||||||
on GNU/Linux) and whatever the currently selected locale for the
|
on GNU/Linux) and whatever the currently selected locale for the
|
||||||
|
@ -50,24 +50,24 @@ characters.
|
||||||
</p></li><li class="listitem"><p>
|
</p></li><li class="listitem"><p>
|
||||||
Rename abstract base class. See if just smash-overriding is a
|
Rename abstract base class. See if just smash-overriding is a
|
||||||
better approach. Clarify, add sanity to naming.
|
better approach. Clarify, add sanity to naming.
|
||||||
</p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="facet.ctype.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id649161"/><p><span class="citetitle"><em class="citetitle">
|
</p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="facet.ctype.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id479245"/><p><span class="citetitle"><em class="citetitle">
|
||||||
The GNU C Library
|
The GNU C Library
|
||||||
</em>. </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="id649201"/><p><span class="citetitle"><em class="citetitle">
|
</em>. </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="id479285"/><p><span class="citetitle"><em class="citetitle">
|
||||||
Correspondence
|
Correspondence
|
||||||
</em>. </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="id649227"/><p><span class="citetitle"><em class="citetitle">
|
</em>. </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="id479310"/><p><span class="citetitle"><em class="citetitle">
|
||||||
ISO/IEC 14882:1998 Programming languages - C++
|
ISO/IEC 14882:1998 Programming languages - C++
|
||||||
</em>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="id649246"/><p><span class="citetitle"><em class="citetitle">
|
</em>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="id479330"/><p><span class="citetitle"><em class="citetitle">
|
||||||
ISO/IEC 9899:1999 Programming languages - C
|
ISO/IEC 9899:1999 Programming languages - C
|
||||||
</em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry" title="The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004)"><a id="id649265"/><p><span class="title"><em>
|
</em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry" title="The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004)"><a id="id479348"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://www.unix.org/version3/ieee_std.html">
|
<a class="link" href="http://www.unix.org/version3/ieee_std.html">
|
||||||
The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004)
|
The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004)
|
||||||
</a>
|
</a>
|
||||||
</em>. </span><span class="copyright">Copyright © 1999
|
</em>. </span><span class="copyright">Copyright © 1999
|
||||||
The Open Group/The Institute of Electrical and Electronics Engineers, Inc.. </span></p></div><div class="biblioentry"><a id="id649292"/><p><span class="citetitle"><em class="citetitle">
|
The Open Group/The Institute of Electrical and Electronics Engineers, Inc.. </span></p></div><div class="biblioentry"><a id="id479376"/><p><span class="citetitle"><em class="citetitle">
|
||||||
The C++ Programming Language, Special Edition
|
The C++ Programming Language, Special Edition
|
||||||
</em>. </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">
|
</em>. </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="id649330"/><p><span class="citetitle"><em class="citetitle">
|
. </span></span></p></div><div class="biblioentry"><a id="id479414"/><p><span class="citetitle"><em class="citetitle">
|
||||||
Standard C++ IOStreams and Locales
|
Standard C++ IOStreams and Locales
|
||||||
</em>. </span><span class="subtitle">
|
</em>. </span><span class="subtitle">
|
||||||
Advanced Programmer's Guide and Reference
|
Advanced Programmer's Guide and Reference
|
||||||
|
@ -410,42 +410,42 @@ codecvt usage.
|
||||||
</p></li><li class="listitem"><p>
|
</p></li><li class="listitem"><p>
|
||||||
wchar_t/char internal buffers and conversions between
|
wchar_t/char internal buffers and conversions between
|
||||||
internal/external buffers?
|
internal/external buffers?
|
||||||
</p></li></ul></div></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="facet.codecvt.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id649980"/><p><span class="citetitle"><em class="citetitle">
|
</p></li></ul></div></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="facet.codecvt.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id480064"/><p><span class="citetitle"><em class="citetitle">
|
||||||
The GNU C Library
|
The GNU C Library
|
||||||
</em>. </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">
|
</em>. </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
|
Chapters 6 Character Set Handling and 7 Locales and Internationalization
|
||||||
. </span></p></div><div class="biblioentry"><a id="id650020"/><p><span class="citetitle"><em class="citetitle">
|
. </span></p></div><div class="biblioentry"><a id="id480104"/><p><span class="citetitle"><em class="citetitle">
|
||||||
Correspondence
|
Correspondence
|
||||||
</em>. </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="id650046"/><p><span class="citetitle"><em class="citetitle">
|
</em>. </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="id480130"/><p><span class="citetitle"><em class="citetitle">
|
||||||
ISO/IEC 14882:1998 Programming languages - C++
|
ISO/IEC 14882:1998 Programming languages - C++
|
||||||
</em>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="id650065"/><p><span class="citetitle"><em class="citetitle">
|
</em>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="id480149"/><p><span class="citetitle"><em class="citetitle">
|
||||||
ISO/IEC 9899:1999 Programming languages - C
|
ISO/IEC 9899:1999 Programming languages - C
|
||||||
</em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry" title="System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)"><a id="id650084"/><p><span class="title"><em>
|
</em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry" title="System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)"><a id="id480168"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://www.opengroup.org/austin">
|
<a class="link" href="http://www.opengroup.org/austin">
|
||||||
System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
|
System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
|
||||||
</a>
|
</a>
|
||||||
</em>. </span><span class="copyright">Copyright © 2008
|
</em>. </span><span class="copyright">Copyright © 2008
|
||||||
The Open Group/The Institute of Electrical and Electronics
|
The Open Group/The Institute of Electrical and Electronics
|
||||||
Engineers, Inc.
|
Engineers, Inc.
|
||||||
. </span></p></div><div class="biblioentry"><a id="id650111"/><p><span class="citetitle"><em class="citetitle">
|
. </span></p></div><div class="biblioentry"><a id="id480194"/><p><span class="citetitle"><em class="citetitle">
|
||||||
The C++ Programming Language, Special Edition
|
The C++ Programming Language, Special Edition
|
||||||
</em>. </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">
|
</em>. </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="id650149"/><p><span class="citetitle"><em class="citetitle">
|
. </span></span></p></div><div class="biblioentry"><a id="id480233"/><p><span class="citetitle"><em class="citetitle">
|
||||||
Standard C++ IOStreams and Locales
|
Standard C++ IOStreams and Locales
|
||||||
</em>. </span><span class="subtitle">
|
</em>. </span><span class="subtitle">
|
||||||
Advanced Programmer's Guide and Reference
|
Advanced Programmer's Guide and Reference
|
||||||
. </span><span class="author"><span class="firstname">Angelika</span> <span class="surname">Langer</span>. </span><span class="author"><span class="firstname">Klaus</span> <span class="surname">Kreft</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley Longman, Inc.. </span><span class="publisher"><span class="publishername">
|
. </span><span class="author"><span class="firstname">Angelika</span> <span class="surname">Langer</span>. </span><span class="author"><span class="firstname">Klaus</span> <span class="surname">Kreft</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley Longman, Inc.. </span><span class="publisher"><span class="publishername">
|
||||||
Addison Wesley Longman
|
Addison Wesley Longman
|
||||||
. </span></span></p></div><div class="biblioentry" title="A brief description of Normative Addendum 1"><a id="id650196"/><p><span class="title"><em>
|
. </span></span></p></div><div class="biblioentry" title="A brief description of Normative Addendum 1"><a id="id480280"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://www.lysator.liu.se/c/na1.html">
|
<a class="link" href="http://www.lysator.liu.se/c/na1.html">
|
||||||
A brief description of Normative Addendum 1
|
A brief description of Normative Addendum 1
|
||||||
</a>
|
</a>
|
||||||
</em>. </span><span class="author"><span class="firstname">Clive</span> <span class="surname">Feather</span>. </span><span class="pagenums">Extended Character Sets. </span></p></div><div class="biblioentry" title="The Unicode HOWTO"><a id="id650223"/><p><span class="title"><em>
|
</em>. </span><span class="author"><span class="firstname">Clive</span> <span class="surname">Feather</span>. </span><span class="pagenums">Extended Character Sets. </span></p></div><div class="biblioentry" title="The Unicode HOWTO"><a id="id480307"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://tldp.org/HOWTO/Unicode-HOWTO.html">
|
<a class="link" href="http://tldp.org/HOWTO/Unicode-HOWTO.html">
|
||||||
The Unicode HOWTO
|
The Unicode HOWTO
|
||||||
</a>
|
</a>
|
||||||
</em>. </span><span class="author"><span class="firstname">Bruno</span> <span class="surname">Haible</span>. </span></p></div><div class="biblioentry" title="UTF-8 and Unicode FAQ for Unix/Linux"><a id="id650247"/><p><span class="title"><em>
|
</em>. </span><span class="author"><span class="firstname">Bruno</span> <span class="surname">Haible</span>. </span></p></div><div class="biblioentry" title="UTF-8 and Unicode FAQ for Unix/Linux"><a id="id480330"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://www.cl.cam.ac.uk/~mgk25/unicode.html">
|
<a class="link" href="http://www.cl.cam.ac.uk/~mgk25/unicode.html">
|
||||||
UTF-8 and Unicode FAQ for Unix/Linux
|
UTF-8 and Unicode FAQ for Unix/Linux
|
||||||
</a>
|
</a>
|
||||||
|
@ -690,39 +690,39 @@ void test01()
|
||||||
model. As of this writing, it is unknown how to query to see
|
model. As of this writing, it is unknown how to query to see
|
||||||
if a specified message catalog exists using the gettext
|
if a specified message catalog exists using the gettext
|
||||||
package.
|
package.
|
||||||
</p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="facet.messages.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id650918"/><p><span class="citetitle"><em class="citetitle">
|
</p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="facet.messages.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id481002"/><p><span class="citetitle"><em class="citetitle">
|
||||||
The GNU C Library
|
The GNU C Library
|
||||||
</em>. </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
|
</em>. </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="id650958"/><p><span class="citetitle"><em class="citetitle">
|
. </span></p></div><div class="biblioentry"><a id="id481042"/><p><span class="citetitle"><em class="citetitle">
|
||||||
Correspondence
|
Correspondence
|
||||||
</em>. </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="id650984"/><p><span class="citetitle"><em class="citetitle">
|
</em>. </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="id481068"/><p><span class="citetitle"><em class="citetitle">
|
||||||
ISO/IEC 14882:1998 Programming languages - C++
|
ISO/IEC 14882:1998 Programming languages - C++
|
||||||
</em>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="id651003"/><p><span class="citetitle"><em class="citetitle">
|
</em>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="id481087"/><p><span class="citetitle"><em class="citetitle">
|
||||||
ISO/IEC 9899:1999 Programming languages - C
|
ISO/IEC 9899:1999 Programming languages - C
|
||||||
</em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry" title="System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)"><a id="id651022"/><p><span class="title"><em>
|
</em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry" title="System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)"><a id="id481106"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://www.opengroup.org/austin">
|
<a class="link" href="http://www.opengroup.org/austin">
|
||||||
System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
|
System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
|
||||||
</a>
|
</a>
|
||||||
</em>. </span><span class="copyright">Copyright © 2008
|
</em>. </span><span class="copyright">Copyright © 2008
|
||||||
The Open Group/The Institute of Electrical and Electronics
|
The Open Group/The Institute of Electrical and Electronics
|
||||||
Engineers, Inc.
|
Engineers, Inc.
|
||||||
. </span></p></div><div class="biblioentry"><a id="id651049"/><p><span class="citetitle"><em class="citetitle">
|
. </span></p></div><div class="biblioentry"><a id="id481133"/><p><span class="citetitle"><em class="citetitle">
|
||||||
The C++ Programming Language, Special Edition
|
The C++ Programming Language, Special Edition
|
||||||
</em>. </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">
|
</em>. </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="id651087"/><p><span class="citetitle"><em class="citetitle">
|
. </span></span></p></div><div class="biblioentry"><a id="id481171"/><p><span class="citetitle"><em class="citetitle">
|
||||||
Standard C++ IOStreams and Locales
|
Standard C++ IOStreams and Locales
|
||||||
</em>. </span><span class="subtitle">
|
</em>. </span><span class="subtitle">
|
||||||
Advanced Programmer's Guide and Reference
|
Advanced Programmer's Guide and Reference
|
||||||
. </span><span class="author"><span class="firstname">Angelika</span> <span class="surname">Langer</span>. </span><span class="author"><span class="firstname">Klaus</span> <span class="surname">Kreft</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley Longman, Inc.. </span><span class="publisher"><span class="publishername">
|
. </span><span class="author"><span class="firstname">Angelika</span> <span class="surname">Langer</span>. </span><span class="author"><span class="firstname">Klaus</span> <span class="surname">Kreft</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley Longman, Inc.. </span><span class="publisher"><span class="publishername">
|
||||||
Addison Wesley Longman
|
Addison Wesley Longman
|
||||||
. </span></span></p></div><div class="biblioentry" title="API Specifications, Java Platform"><a id="id651134"/><p><span class="title"><em>
|
. </span></span></p></div><div class="biblioentry" title="API Specifications, Java Platform"><a id="id481218"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://java.sun.com/reference/api/index.html">
|
<a class="link" href="http://java.sun.com/reference/api/index.html">
|
||||||
API Specifications, Java Platform
|
API Specifications, Java Platform
|
||||||
</a>
|
</a>
|
||||||
</em>. </span><span class="pagenums">java.util.Properties, java.text.MessageFormat,
|
</em>. </span><span class="pagenums">java.util.Properties, java.text.MessageFormat,
|
||||||
java.util.Locale, java.util.ResourceBundle
|
java.util.Locale, java.util.ResourceBundle
|
||||||
. </span></p></div><div class="biblioentry" title="GNU gettext tools, version 0.10.38, Native Language Support Library and Tools."><a id="id651154"/><p><span class="title"><em>
|
. </span></p></div><div class="biblioentry" title="GNU gettext tools, version 0.10.38, Native Language Support Library and Tools."><a id="id481238"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://www.gnu.org/software/gettext">
|
<a class="link" href="http://www.gnu.org/software/gettext">
|
||||||
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.
|
||||||
|
|
|
@ -16,13 +16,13 @@
|
||||||
</a></span></dt><dd><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.api">API Reference</a></span></dt><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.data">Adding Data to <code class="classname">exception</code></a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt02ch05s02.html">Concept Checking</a></span></dt></dl></dd><dt><span class="chapter"><a href="utilities.html">6.
|
</a></span></dt><dd><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.api">API Reference</a></span></dt><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.data">Adding Data to <code class="classname">exception</code></a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt02ch05s02.html">Concept Checking</a></span></dt></dl></dd><dt><span class="chapter"><a href="utilities.html">6.
|
||||||
Utilities
|
Utilities
|
||||||
|
|
||||||
</a></span></dt><dd><dl><dt><span class="section"><a href="utilities.html#std.util.functors">Functors</a></span></dt><dt><span class="section"><a href="pairs.html">Pairs</a></span></dt><dt><span class="section"><a href="memory.html">Memory</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#std.util.memory.allocator">Allocators</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#allocator.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#allocator.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#allocator.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id633362">Interface Design</a></span></dt><dt><span class="section"><a href="memory.html#id633392">Selecting Default Allocation Policy</a></span></dt><dt><span class="section"><a href="memory.html#id633502">Disabling Memory Caching</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#allocator.using">Using a Specific Allocator</a></span></dt><dt><span class="section"><a href="memory.html#allocator.custom">Custom Allocators</a></span></dt><dt><span class="section"><a href="memory.html#allocator.ext">Extension Allocators</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.auto_ptr">auto_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#auto_ptr.limitations">Limitations</a></span></dt><dt><span class="section"><a href="memory.html#auto_ptr.using">Use in Containers</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.shared_ptr">shared_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#shared_ptr.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id634511">Class Hierarchy</a></span></dt><dt><span class="section"><a href="memory.html#id634689">Thread Safety</a></span></dt><dt><span class="section"><a href="memory.html#id634759">Selecting Lock Policy</a></span></dt><dt><span class="section"><a href="memory.html#id634881">Dual C++0x and TR1 Implementation</a></span></dt><dt><span class="section"><a href="memory.html#id634937">Related functions and classes</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.using">Use</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id635086">Examples</a></span></dt><dt><span class="section"><a href="memory.html#id635116">Unresolved Issues</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.ack">Acknowledgments</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="traits.html">Traits</a></span></dt></dl></dd><dt><span class="chapter"><a href="strings.html">7.
|
</a></span></dt><dd><dl><dt><span class="section"><a href="utilities.html#std.util.functors">Functors</a></span></dt><dt><span class="section"><a href="pairs.html">Pairs</a></span></dt><dt><span class="section"><a href="memory.html">Memory</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#std.util.memory.allocator">Allocators</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#allocator.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#allocator.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#allocator.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id463447">Interface Design</a></span></dt><dt><span class="section"><a href="memory.html#id463477">Selecting Default Allocation Policy</a></span></dt><dt><span class="section"><a href="memory.html#id463588">Disabling Memory Caching</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#allocator.using">Using a Specific Allocator</a></span></dt><dt><span class="section"><a href="memory.html#allocator.custom">Custom Allocators</a></span></dt><dt><span class="section"><a href="memory.html#allocator.ext">Extension Allocators</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.auto_ptr">auto_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#auto_ptr.limitations">Limitations</a></span></dt><dt><span class="section"><a href="memory.html#auto_ptr.using">Use in Containers</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.shared_ptr">shared_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#shared_ptr.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id464596">Class Hierarchy</a></span></dt><dt><span class="section"><a href="memory.html#id464775">Thread Safety</a></span></dt><dt><span class="section"><a href="memory.html#id464844">Selecting Lock Policy</a></span></dt><dt><span class="section"><a href="memory.html#id464966">Dual C++0x and TR1 Implementation</a></span></dt><dt><span class="section"><a href="memory.html#id465022">Related functions and classes</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.using">Use</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id465171">Examples</a></span></dt><dt><span class="section"><a href="memory.html#id465201">Unresolved Issues</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.ack">Acknowledgments</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="traits.html">Traits</a></span></dt></dl></dd><dt><span class="chapter"><a href="strings.html">7.
|
||||||
Strings
|
Strings
|
||||||
|
|
||||||
</a></span></dt><dd><dl><dt><span class="section"><a href="strings.html#std.strings.string">String Classes</a></span></dt><dd><dl><dt><span class="section"><a href="strings.html#strings.string.simple">Simple Transformations</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.case">Case Sensitivity</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.character_types">Arbitrary Character Types</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.token">Tokenizing</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.shrink">Shrink to Fit</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.Cstring">CString (MFC)</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="localization.html">8.
|
</a></span></dt><dd><dl><dt><span class="section"><a href="strings.html#std.strings.string">String Classes</a></span></dt><dd><dl><dt><span class="section"><a href="strings.html#strings.string.simple">Simple Transformations</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.case">Case Sensitivity</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.character_types">Arbitrary Character Types</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.token">Tokenizing</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.shrink">Shrink to Fit</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.Cstring">CString (MFC)</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="localization.html">8.
|
||||||
Localization
|
Localization
|
||||||
|
|
||||||
</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locales.locale.req">Requirements</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.design">Design</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locale.impl.c">Interacting with "C" locales</a></span></dt></dl></dd><dt><span class="section"><a href="localization.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#std.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.ctype.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#id649036">Specializations</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#codecvt.design.wchar_t_size"><span class="type">wchar_t</span> Size</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.unicode">Support for Unicode</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.issues">Other Issues</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#manual.localization.facet.messages">messages</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.messages.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.design">Design</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#messages.impl.models">Models</a></span></dt><dt><span class="section"><a href="facets.html#messages.impl.gnu">The GNU Model</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.messages.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="chapter"><a href="containers.html">9.
|
</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locales.locale.req">Requirements</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.design">Design</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locale.impl.c">Interacting with "C" locales</a></span></dt></dl></dd><dt><span class="section"><a href="localization.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#std.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.ctype.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#id479120">Specializations</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#codecvt.design.wchar_t_size"><span class="type">wchar_t</span> Size</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.unicode">Support for Unicode</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.issues">Other Issues</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#manual.localization.facet.messages">messages</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.messages.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.design">Design</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#messages.impl.models">Models</a></span></dt><dt><span class="section"><a href="facets.html#messages.impl.gnu">The GNU Model</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.messages.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="chapter"><a href="containers.html">9.
|
||||||
Containers
|
Containers
|
||||||
|
|
||||||
</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#std.containers.sequences">Sequences</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#containers.sequences.list">list</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.list.size">list::size() is O(n)</a></span></dt></dl></dd><dt><span class="section"><a href="containers.html#containers.sequences.vector">vector</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.vector.management">Space Overhead Management</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="associative.html">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#containers.associative.insert_hints">Insertion Hints</a></span></dt><dt><span class="section"><a href="associative.html#containers.associative.bitset">bitset</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#associative.bitset.size_variable">Size Variable</a></span></dt><dt><span class="section"><a href="associative.html#associative.bitset.type_string">Type String</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="containers_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="containers_and_c.html#containers.c.vs_array">Containers vs. Arrays</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="iterators.html">10.
|
</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#std.containers.sequences">Sequences</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#containers.sequences.list">list</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.list.size">list::size() is O(n)</a></span></dt></dl></dd><dt><span class="section"><a href="containers.html#containers.sequences.vector">vector</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.vector.management">Space Overhead Management</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="associative.html">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#containers.associative.insert_hints">Insertion Hints</a></span></dt><dt><span class="section"><a href="associative.html#containers.associative.bitset">bitset</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#associative.bitset.size_variable">Size Variable</a></span></dt><dt><span class="section"><a href="associative.html#associative.bitset.type_string">Type String</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="containers_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="containers_and_c.html#containers.c.vs_array">Containers vs. Arrays</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="iterators.html">10.
|
||||||
|
@ -126,39 +126,39 @@
|
||||||
Existing tests
|
Existing tests
|
||||||
</a></span></dt><dt><span class="section"><a href="test.html#test.exception.safety.containers">
|
</a></span></dt><dt><span class="section"><a href="test.html#test.exception.safety.containers">
|
||||||
C++0x Requirements Test Sequence Descriptions
|
C++0x Requirements Test Sequence Descriptions
|
||||||
</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a href="abi.html">ABI Policy and Guidelines</a></span></dt><dd><dl><dt><span class="section"><a href="abi.html#abi.cxx_interface">The C++ Interface</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning">Versioning</a></span></dt><dd><dl><dt><span class="section"><a href="abi.html#abi.versioning.goals">Goals</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning.history">History</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning.config">Configuring</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning.active">Checking Active</a></span></dt></dl></dd><dt><span class="section"><a href="abi.html#abi.changes_allowed">Allowed Changes</a></span></dt><dt><span class="section"><a href="abi.html#abi.changes_no">Prohibited Changes</a></span></dt><dt><span class="section"><a href="abi.html#abi.impl">Implementation</a></span></dt><dt><span class="section"><a href="abi.html#abi.testing">Testing</a></span></dt><dd><dl><dt><span class="section"><a href="abi.html#abi.testing.single">Single ABI Testing</a></span></dt><dt><span class="section"><a href="abi.html#abi.testing.multi">Multiple ABI Testing</a></span></dt></dl></dd><dt><span class="section"><a href="abi.html#abi.issues">Outstanding Issues</a></span></dt></dl></dd><dt><span class="section"><a href="api.html">API Evolution and Deprecation History</a></span></dt><dd><dl><dt><span class="section"><a href="api.html#api.rel_300"><code class="constant">3.0</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_310"><code class="constant">3.1</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_320"><code class="constant">3.2</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_330"><code class="constant">3.3</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_340"><code class="constant">3.4</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_400"><code class="constant">4.0</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_410"><code class="constant">4.1</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_420"><code class="constant">4.2</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_430"><code class="constant">4.3</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_440"><code class="constant">4.4</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_450"><code class="constant">4.5</code></a></span></dt></dl></dd><dt><span class="section"><a href="backwards.html">Backwards Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#backwards.first">First</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#id710570">No <code class="code">ios_base</code></a></span></dt><dt><span class="section"><a href="backwards.html#id710603">No <code class="code">cout</code> in <code class="code">ostream.h</code>, no <code class="code">cin</code> in <code class="code">istream.h</code></a></span></dt></dl></dd><dt><span class="section"><a href="backwards.html#backwards.second">Second</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#id710706">Namespace <code class="code">std::</code> not supported</a></span></dt><dt><span class="section"><a href="backwards.html#id710832">Illegal iterator usage</a></span></dt><dt><span class="section"><a href="backwards.html#id710893"><code class="code">isspace</code> from <code class="filename">cctype</code> is a macro
|
</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a href="abi.html">ABI Policy and Guidelines</a></span></dt><dd><dl><dt><span class="section"><a href="abi.html#abi.cxx_interface">The C++ Interface</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning">Versioning</a></span></dt><dd><dl><dt><span class="section"><a href="abi.html#abi.versioning.goals">Goals</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning.history">History</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning.config">Configuring</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning.active">Checking Active</a></span></dt></dl></dd><dt><span class="section"><a href="abi.html#abi.changes_allowed">Allowed Changes</a></span></dt><dt><span class="section"><a href="abi.html#abi.changes_no">Prohibited Changes</a></span></dt><dt><span class="section"><a href="abi.html#abi.impl">Implementation</a></span></dt><dt><span class="section"><a href="abi.html#abi.testing">Testing</a></span></dt><dd><dl><dt><span class="section"><a href="abi.html#abi.testing.single">Single ABI Testing</a></span></dt><dt><span class="section"><a href="abi.html#abi.testing.multi">Multiple ABI Testing</a></span></dt></dl></dd><dt><span class="section"><a href="abi.html#abi.issues">Outstanding Issues</a></span></dt></dl></dd><dt><span class="section"><a href="api.html">API Evolution and Deprecation History</a></span></dt><dd><dl><dt><span class="section"><a href="api.html#api.rel_300"><code class="constant">3.0</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_310"><code class="constant">3.1</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_320"><code class="constant">3.2</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_330"><code class="constant">3.3</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_340"><code class="constant">3.4</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_400"><code class="constant">4.0</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_410"><code class="constant">4.1</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_420"><code class="constant">4.2</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_430"><code class="constant">4.3</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_440"><code class="constant">4.4</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_450"><code class="constant">4.5</code></a></span></dt></dl></dd><dt><span class="section"><a href="backwards.html">Backwards Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#backwards.first">First</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#id540654">No <code class="code">ios_base</code></a></span></dt><dt><span class="section"><a href="backwards.html#id540687">No <code class="code">cout</code> in <code class="code">ostream.h</code>, no <code class="code">cin</code> in <code class="code">istream.h</code></a></span></dt></dl></dd><dt><span class="section"><a href="backwards.html#backwards.second">Second</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#id540790">Namespace <code class="code">std::</code> not supported</a></span></dt><dt><span class="section"><a href="backwards.html#id540916">Illegal iterator usage</a></span></dt><dt><span class="section"><a href="backwards.html#id540977"><code class="code">isspace</code> from <code class="filename">cctype</code> is a macro
|
||||||
</a></span></dt><dt><span class="section"><a href="backwards.html#id710989">No <code class="code">vector::at</code>, <code class="code">deque::at</code>, <code class="code">string::at</code></a></span></dt><dt><span class="section"><a href="backwards.html#id711028">No <code class="code">std::char_traits<char>::eof</code></a></span></dt><dt><span class="section"><a href="backwards.html#id711046">No <code class="code">string::clear</code></a></span></dt><dt><span class="section"><a href="backwards.html#id711092">
|
</a></span></dt><dt><span class="section"><a href="backwards.html#id541073">No <code class="code">vector::at</code>, <code class="code">deque::at</code>, <code class="code">string::at</code></a></span></dt><dt><span class="section"><a href="backwards.html#id541112">No <code class="code">std::char_traits<char>::eof</code></a></span></dt><dt><span class="section"><a href="backwards.html#id541130">No <code class="code">string::clear</code></a></span></dt><dt><span class="section"><a href="backwards.html#id541176">
|
||||||
Removal of <code class="code">ostream::form</code> and <code class="code">istream::scan</code>
|
Removal of <code class="code">ostream::form</code> and <code class="code">istream::scan</code>
|
||||||
extensions
|
extensions
|
||||||
</a></span></dt><dt><span class="section"><a href="backwards.html#id711111">No <code class="code">basic_stringbuf</code>, <code class="code">basic_stringstream</code></a></span></dt><dt><span class="section"><a href="backwards.html#id711267">Little or no wide character support</a></span></dt><dt><span class="section"><a href="backwards.html#id711285">No templatized iostreams</a></span></dt><dt><span class="section"><a href="backwards.html#id711304">Thread safety issues</a></span></dt></dl></dd><dt><span class="section"><a href="backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#id711429">Pre-ISO headers moved to backwards or removed</a></span></dt><dt><span class="section"><a href="backwards.html#id711514">Extension headers hash_map, hash_set moved to ext or backwards</a></span></dt><dt><span class="section"><a href="backwards.html#id711617">No <code class="code">ios::nocreate/ios::noreplace</code>.
|
</a></span></dt><dt><span class="section"><a href="backwards.html#id541195">No <code class="code">basic_stringbuf</code>, <code class="code">basic_stringstream</code></a></span></dt><dt><span class="section"><a href="backwards.html#id541351">Little or no wide character support</a></span></dt><dt><span class="section"><a href="backwards.html#id541369">No templatized iostreams</a></span></dt><dt><span class="section"><a href="backwards.html#id541388">Thread safety issues</a></span></dt></dl></dd><dt><span class="section"><a href="backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#id541513">Pre-ISO headers moved to backwards or removed</a></span></dt><dt><span class="section"><a href="backwards.html#id541598">Extension headers hash_map, hash_set moved to ext or backwards</a></span></dt><dt><span class="section"><a href="backwards.html#id541701">No <code class="code">ios::nocreate/ios::noreplace</code>.
|
||||||
</a></span></dt><dt><span class="section"><a href="backwards.html#id711664">
|
</a></span></dt><dt><span class="section"><a href="backwards.html#id541749">
|
||||||
No <code class="code">stream::attach(int fd)</code>
|
No <code class="code">stream::attach(int fd)</code>
|
||||||
</a></span></dt><dt><span class="section"><a href="backwards.html#id711732">
|
</a></span></dt><dt><span class="section"><a href="backwards.html#id541817">
|
||||||
Support for C++98 dialect.
|
Support for C++98 dialect.
|
||||||
</a></span></dt><dt><span class="section"><a href="backwards.html#id711760">
|
</a></span></dt><dt><span class="section"><a href="backwards.html#id541844">
|
||||||
Support for C++TR1 dialect.
|
Support for C++TR1 dialect.
|
||||||
</a></span></dt><dt><span class="section"><a href="backwards.html#id711804">
|
</a></span></dt><dt><span class="section"><a href="backwards.html#id541888">
|
||||||
Support for C++0x dialect.
|
Support for C++0x dialect.
|
||||||
</a></span></dt><dt><span class="section"><a href="backwards.html#id711882">
|
</a></span></dt><dt><span class="section"><a href="backwards.html#id541966">
|
||||||
Container::iterator_type is not necessarily Container::value_type*
|
Container::iterator_type is not necessarily Container::value_type*
|
||||||
</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="appendix"><a href="appendix_free.html">C.
|
</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="appendix"><a href="appendix_free.html">C.
|
||||||
Free Software Needs Free Documentation
|
Free Software Needs Free Documentation
|
||||||
|
|
||||||
</a></span></dt><dt><span class="appendix"><a href="appendix_gpl.html">D.
|
</a></span></dt><dt><span class="appendix"><a href="appendix_gpl.html">D.
|
||||||
<acronym class="acronym">GNU</acronym> General Public License version 3
|
<acronym class="acronym">GNU</acronym> General Public License version 3
|
||||||
</a></span></dt><dt><span class="appendix"><a href="appendix_gfdl.html">E. GNU Free Documentation License</a></span></dt></dl></dd></dl></div><div class="list-of-figures"><p><strong>List of Figures</strong></p><dl><dt>22.1. <a href="policy_data_structures.html#id664217">Node Invariants</a></dt><dt>22.2. <a href="policy_data_structures.html#id664273">Underlying Associative Data Structures</a></dt><dt>22.3. <a href="policy_data_structures.html#id664536">Range Iteration in Different Data Structures</a></dt><dt>22.4. <a href="policy_data_structures.html#id664661">Point Iteration in Hash Data Structures</a></dt><dt>22.5. <a href="policy_data_structures.html#id664738">Effect of erase in different underlying data structures</a></dt><dt>22.6. <a href="policy_data_structures.html#id665301">Underlying Priority Queue Data Structures</a></dt><dt>22.7. <a href="policy_data_structures_using.html#id665824">Exception Hierarchy</a></dt><dt>22.8. <a href="policy_data_structures_design.html#id667445">Non-unique Mapping Standard Containers</a></dt><dt>22.9. <a href="policy_data_structures_design.html#fig.pbds_embedded_lists_2">
|
</a></span></dt><dt><span class="appendix"><a href="appendix_gfdl.html">E. GNU Free Documentation License</a></span></dt></dl></dd></dl></div><div class="list-of-figures"><p><strong>List of Figures</strong></p><dl><dt>22.1. <a href="policy_data_structures.html#id494301">Node Invariants</a></dt><dt>22.2. <a href="policy_data_structures.html#id494357">Underlying Associative Data Structures</a></dt><dt>22.3. <a href="policy_data_structures.html#id494620">Range Iteration in Different Data Structures</a></dt><dt>22.4. <a href="policy_data_structures.html#id494745">Point Iteration in Hash Data Structures</a></dt><dt>22.5. <a href="policy_data_structures.html#id494822">Effect of erase in different underlying data structures</a></dt><dt>22.6. <a href="policy_data_structures.html#id495385">Underlying Priority Queue Data Structures</a></dt><dt>22.7. <a href="policy_data_structures_using.html#id495908">Exception Hierarchy</a></dt><dt>22.8. <a href="policy_data_structures_design.html#id497529">Non-unique Mapping Standard Containers</a></dt><dt>22.9. <a href="policy_data_structures_design.html#fig.pbds_embedded_lists_2">
|
||||||
Effect of embedded lists in
|
Effect of embedded lists in
|
||||||
<code class="classname">std::multimap</code>
|
<code class="classname">std::multimap</code>
|
||||||
</a></dt><dt>22.10. <a href="policy_data_structures_design.html#id667640">Non-unique Mapping Containers</a></dt><dt>22.11. <a href="policy_data_structures_design.html#id667806">Point Iterator Hierarchy</a></dt><dt>22.12. <a href="policy_data_structures_design.html#id667917">Invalidation Guarantee Tags Hierarchy</a></dt><dt>22.13. <a href="policy_data_structures_design.html#id668169">Container Tag Hierarchy</a></dt><dt>22.14. <a href="policy_data_structures_design.html#id668502">Hash functions, ranged-hash functions, and
|
</a></dt><dt>22.10. <a href="policy_data_structures_design.html#id497724">Non-unique Mapping Containers</a></dt><dt>22.11. <a href="policy_data_structures_design.html#id497890">Point Iterator Hierarchy</a></dt><dt>22.12. <a href="policy_data_structures_design.html#id498001">Invalidation Guarantee Tags Hierarchy</a></dt><dt>22.13. <a href="policy_data_structures_design.html#id498253">Container Tag Hierarchy</a></dt><dt>22.14. <a href="policy_data_structures_design.html#id498585">Hash functions, ranged-hash functions, and
|
||||||
range-hashing functions</a></dt><dt>22.15. <a href="policy_data_structures_design.html#id669038">Insert hash sequence diagram</a></dt><dt>22.16. <a href="policy_data_structures_design.html#id669097">Insert hash sequence diagram with a null policy</a></dt><dt>22.17. <a href="policy_data_structures_design.html#id669237">Hash policy class diagram</a></dt><dt>22.18. <a href="policy_data_structures_design.html#id669396">Balls and bins</a></dt><dt>22.19. <a href="policy_data_structures_design.html#id669652">Insert resize sequence diagram</a></dt><dt>22.20. <a href="policy_data_structures_design.html#id669717">Standard resize policy trigger sequence
|
range-hashing functions</a></dt><dt>22.15. <a href="policy_data_structures_design.html#id499123">Insert hash sequence diagram</a></dt><dt>22.16. <a href="policy_data_structures_design.html#id499181">Insert hash sequence diagram with a null policy</a></dt><dt>22.17. <a href="policy_data_structures_design.html#id499321">Hash policy class diagram</a></dt><dt>22.18. <a href="policy_data_structures_design.html#id499480">Balls and bins</a></dt><dt>22.19. <a href="policy_data_structures_design.html#id499736">Insert resize sequence diagram</a></dt><dt>22.20. <a href="policy_data_structures_design.html#id499801">Standard resize policy trigger sequence
|
||||||
diagram</a></dt><dt>22.21. <a href="policy_data_structures_design.html#id669752">Standard resize policy size sequence
|
diagram</a></dt><dt>22.21. <a href="policy_data_structures_design.html#id499836">Standard resize policy size sequence
|
||||||
diagram</a></dt><dt>22.22. <a href="policy_data_structures_design.html#id670401">Tree node invariants</a></dt><dt>22.23. <a href="policy_data_structures_design.html#id670480">Tree node invalidation</a></dt><dt>22.24. <a href="policy_data_structures_design.html#id670590">A tree and its update policy</a></dt><dt>22.25. <a href="policy_data_structures_design.html#id670687">Restoring node invariants</a></dt><dt>22.26. <a href="policy_data_structures_design.html#id670755">Insert update sequence</a></dt><dt>22.27. <a href="policy_data_structures_design.html#id670941">Useless update path</a></dt><dt>22.28. <a href="policy_data_structures_design.html#id671313">A PATRICIA trie</a></dt><dt>22.29. <a href="policy_data_structures_design.html#id671400">A trie and its update policy</a></dt><dt>22.30. <a href="policy_data_structures_design.html#id671655">A simple list</a></dt><dt>22.31. <a href="policy_data_structures_design.html#id671702">The counter algorithm</a></dt><dt>22.32. <a href="policy_data_structures_design.html#id672233">Underlying Priority-Queue Data-Structures.</a></dt><dt>22.33. <a href="policy_data_structures_design.html#id672525">Priority-Queue Data-Structure Tags.</a></dt><dt>B.1. <a href="appendix_porting.html#id700897">Configure and Build File Dependencies</a></dt></dl></div><div class="list-of-tables"><p><strong>List of Tables</strong></p><dl><dt>1.1. <a href="status.html#id598677">C++ 1998/2003 Implementation Status</a></dt><dt>1.2. <a href="status.html#id596384">C++ 200x Implementation Status</a></dt><dt>1.3. <a href="status.html#id588207">C++ TR1 Implementation Status</a></dt><dt>1.4. <a href="status.html#id622095">C++ TR 24733 Implementation Status</a></dt><dt>3.1. <a href="using.html#id626203">C++ Command Options</a></dt><dt>3.2. <a href="using_headers.html#id626432">C++ 1998 Library Headers</a></dt><dt>3.3. <a href="using_headers.html#id626736">C++ 1998 Library Headers for C Library Facilities</a></dt><dt>3.4. <a href="using_headers.html#id626942">C++ 200x Library Headers</a></dt><dt>3.5. <a href="using_headers.html#id627370">C++ 200x Library Headers for C Library Facilities</a></dt><dt>3.6. <a href="using_headers.html#id627620">C++ TR 1 Library Headers</a></dt><dt>3.7. <a href="using_headers.html#id627761">C++ TR 1 Library Headers for C Library Facilities</a></dt><dt>3.8. <a href="using_headers.html#id627936">C++ TR 24733 Decimal Floating-Point Header</a></dt><dt>3.9. <a href="using_headers.html#id627982">C++ ABI Headers</a></dt><dt>3.10. <a href="using_headers.html#id628036">Extension Headers</a></dt><dt>3.11. <a href="using_headers.html#id628333">Extension Debug Headers</a></dt><dt>3.12. <a href="using_headers.html#id628456">Extension Profile Headers</a></dt><dt>3.13. <a href="using_headers.html#id628568">Extension Parallel Headers</a></dt><dt>17.1. <a href="bk01pt03ch17s03.html#id654877">Debugging Containers</a></dt><dt>17.2. <a href="bk01pt03ch17s03.html#id655252">Debugging Containers C++0x</a></dt><dt>18.1. <a href="bk01pt03ch18s03.html#id656839">Parallel Algorithms</a></dt><dt>19.1. <a href="bk01pt03ch19s02.html#id658962">Profile Code Location</a></dt><dt>19.2. <a href="bk01pt03ch19s07.html#id659844">Profile Diagnostics</a></dt><dt>21.1. <a href="bk01pt03ch21s02.html#id663274">Bitmap Allocator Memory Map</a></dt><dt>B.1. <a href="documentation_hacking.html#id701803">Doxygen Prerequisites</a></dt><dt>B.2. <a href="documentation_hacking.html#id702306">HTML to Doxygen Markup Comparison</a></dt><dt>B.3. <a href="documentation_hacking.html#id702468">Docbook Prerequisites</a></dt><dt>B.4. <a href="documentation_hacking.html#id702945">HTML to Docbook XML Markup Comparison</a></dt><dt>B.5. <a href="documentation_hacking.html#id703147">Docbook XML Element Use</a></dt><dt>B.6. <a href="api.html#id708847">Extension Allocators</a></dt><dt>B.7. <a href="api.html#id709077">Extension Allocators Continued</a></dt></dl></div><div class="list-of-equations"><p><strong>List of Equations</strong></p><dl><dt>22.1. <a href="policy_data_structures_design.html#id668617">Ranged Hash Function</a></dt><dt>22.2. <a href="policy_data_structures_design.html#id668666">Range-Hashing, Division Method</a></dt><dt>22.3. <a href="policy_data_structures_design.html#id668703">Division via Prime Modulo</a></dt><dt>22.4. <a href="policy_data_structures_design.html#id668718">Division via Bit Mask</a></dt><dt>22.5. <a href="policy_data_structures_design.html#id668799">
|
diagram</a></dt><dt>22.22. <a href="policy_data_structures_design.html#id500486">Tree node invariants</a></dt><dt>22.23. <a href="policy_data_structures_design.html#id500564">Tree node invalidation</a></dt><dt>22.24. <a href="policy_data_structures_design.html#id500674">A tree and its update policy</a></dt><dt>22.25. <a href="policy_data_structures_design.html#id500771">Restoring node invariants</a></dt><dt>22.26. <a href="policy_data_structures_design.html#id500839">Insert update sequence</a></dt><dt>22.27. <a href="policy_data_structures_design.html#id501025">Useless update path</a></dt><dt>22.28. <a href="policy_data_structures_design.html#id501397">A PATRICIA trie</a></dt><dt>22.29. <a href="policy_data_structures_design.html#id501485">A trie and its update policy</a></dt><dt>22.30. <a href="policy_data_structures_design.html#id501739">A simple list</a></dt><dt>22.31. <a href="policy_data_structures_design.html#id501786">The counter algorithm</a></dt><dt>22.32. <a href="policy_data_structures_design.html#id502317">Underlying Priority-Queue Data-Structures.</a></dt><dt>22.33. <a href="policy_data_structures_design.html#id502609">Priority-Queue Data-Structure Tags.</a></dt><dt>B.1. <a href="appendix_porting.html#id530981">Configure and Build File Dependencies</a></dt></dl></div><div class="list-of-tables"><p><strong>List of Tables</strong></p><dl><dt>1.1. <a href="status.html#id361767">C++ 1998/2003 Implementation Status</a></dt><dt>1.2. <a href="status.html#id415056">C++ 200x Implementation Status</a></dt><dt>1.3. <a href="status.html#id418192">C++ TR1 Implementation Status</a></dt><dt>1.4. <a href="status.html#id452102">C++ TR 24733 Implementation Status</a></dt><dt>3.1. <a href="using.html#id456161">C++ Command Options</a></dt><dt>3.2. <a href="using_headers.html#id456390">C++ 1998 Library Headers</a></dt><dt>3.3. <a href="using_headers.html#id456694">C++ 1998 Library Headers for C Library Facilities</a></dt><dt>3.4. <a href="using_headers.html#id456900">C++ 200x Library Headers</a></dt><dt>3.5. <a href="using_headers.html#id457329">C++ 200x Library Headers for C Library Facilities</a></dt><dt>3.6. <a href="using_headers.html#id457578">C++ TR 1 Library Headers</a></dt><dt>3.7. <a href="using_headers.html#id457719">C++ TR 1 Library Headers for C Library Facilities</a></dt><dt>3.8. <a href="using_headers.html#id457895">C++ TR 24733 Decimal Floating-Point Header</a></dt><dt>3.9. <a href="using_headers.html#id457941">C++ ABI Headers</a></dt><dt>3.10. <a href="using_headers.html#id457994">Extension Headers</a></dt><dt>3.11. <a href="using_headers.html#id458292">Extension Debug Headers</a></dt><dt>3.12. <a href="using_headers.html#id458415">Extension Profile Headers</a></dt><dt>3.13. <a href="using_headers.html#id458526">Extension Parallel Headers</a></dt><dt>17.1. <a href="bk01pt03ch17s03.html#id484961">Debugging Containers</a></dt><dt>17.2. <a href="bk01pt03ch17s03.html#id485336">Debugging Containers C++0x</a></dt><dt>18.1. <a href="bk01pt03ch18s03.html#id486923">Parallel Algorithms</a></dt><dt>19.1. <a href="bk01pt03ch19s02.html#id489046">Profile Code Location</a></dt><dt>19.2. <a href="bk01pt03ch19s07.html#id489928">Profile Diagnostics</a></dt><dt>21.1. <a href="bk01pt03ch21s02.html#id493358">Bitmap Allocator Memory Map</a></dt><dt>B.1. <a href="documentation_hacking.html#id531887">Doxygen Prerequisites</a></dt><dt>B.2. <a href="documentation_hacking.html#id532390">HTML to Doxygen Markup Comparison</a></dt><dt>B.3. <a href="documentation_hacking.html#id532552">Docbook Prerequisites</a></dt><dt>B.4. <a href="documentation_hacking.html#id533030">HTML to Docbook XML Markup Comparison</a></dt><dt>B.5. <a href="documentation_hacking.html#id533231">Docbook XML Element Use</a></dt><dt>B.6. <a href="api.html#id538931">Extension Allocators</a></dt><dt>B.7. <a href="api.html#id539161">Extension Allocators Continued</a></dt></dl></div><div class="list-of-equations"><p><strong>List of Equations</strong></p><dl><dt>22.1. <a href="policy_data_structures_design.html#id498701">Ranged Hash Function</a></dt><dt>22.2. <a href="policy_data_structures_design.html#id498750">Range-Hashing, Division Method</a></dt><dt>22.3. <a href="policy_data_structures_design.html#id498787">Division via Prime Modulo</a></dt><dt>22.4. <a href="policy_data_structures_design.html#id498803">Division via Bit Mask</a></dt><dt>22.5. <a href="policy_data_structures_design.html#id498883">
|
||||||
A Standard String Hash Function
|
A Standard String Hash Function
|
||||||
</a></dt><dt>22.6. <a href="policy_data_structures_design.html#id668850">
|
</a></dt><dt>22.6. <a href="policy_data_structures_design.html#id498934">
|
||||||
Only k String DNA Hash
|
Only k String DNA Hash
|
||||||
</a></dt><dt>22.7. <a href="policy_data_structures_design.html#id669441">
|
</a></dt><dt>22.7. <a href="policy_data_structures_design.html#id499526">
|
||||||
Probability of Probe Sequence of Length k
|
Probability of Probe Sequence of Length k
|
||||||
</a></dt><dt>22.8. <a href="policy_data_structures_design.html#id669498">
|
</a></dt><dt>22.8. <a href="policy_data_structures_design.html#id499582">
|
||||||
Probability Probe Sequence in Some Bin
|
Probability Probe Sequence in Some Bin
|
||||||
</a></dt></dl></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="../index.html">Prev</a> </td><td align="center"> </td><td align="right"> <a accesskey="n" href="intro.html">Next</a></td></tr><tr><td align="left" valign="top">The GNU C++ Library </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Part I.
|
</a></dt></dl></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="../index.html">Prev</a> </td><td align="center"> </td><td align="right"> <a accesskey="n" href="intro.html">Next</a></td></tr><tr><td align="left" valign="top">The GNU C++ Library </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Part I.
|
||||||
Introduction
|
Introduction
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -7,7 +7,7 @@
|
||||||
Standard Contents
|
Standard Contents
|
||||||
</th><td align="right"> <a accesskey="n" href="streambufs.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 13. Input and Output"><div class="titlepage"><div><div><h2 class="title"><a id="std.io"/>Chapter 13.
|
</th><td align="right"> <a accesskey="n" href="streambufs.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 13. Input and Output"><div class="titlepage"><div><div><h2 class="title"><a id="std.io"/>Chapter 13.
|
||||||
Input and Output
|
Input and Output
|
||||||
<a id="id652930" class="indexterm"/>
|
<a id="id483014" class="indexterm"/>
|
||||||
</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="io.html#std.io.objects">Iostream Objects</a></span></dt><dt><span class="section"><a href="streambufs.html">Stream Buffers</a></span></dt><dd><dl><dt><span class="section"><a href="streambufs.html#io.streambuf.derived">Derived streambuf Classes</a></span></dt><dt><span class="section"><a href="streambufs.html#io.streambuf.buffering">Buffering</a></span></dt></dl></dd><dt><span class="section"><a href="stringstreams.html">Memory Based Streams</a></span></dt><dd><dl><dt><span class="section"><a href="stringstreams.html#std.io.memstreams.compat">Compatibility With strstream</a></span></dt></dl></dd><dt><span class="section"><a href="fstreams.html">File Based Streams</a></span></dt><dd><dl><dt><span class="section"><a href="fstreams.html#std.io.filestreams.copying_a_file">Copying a File</a></span></dt><dt><span class="section"><a href="fstreams.html#std.io.filestreams.binary">Binary Input and Output</a></span></dt></dl></dd><dt><span class="section"><a href="io_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="io_and_c.html#std.io.c.FILE">Using FILE* and file descriptors</a></span></dt><dt><span class="section"><a href="io_and_c.html#std.io.c.sync">Performance</a></span></dt></dl></dd></dl></div><div class="section" title="Iostream Objects"><div class="titlepage"><div><div><h2 class="title"><a id="std.io.objects"/>Iostream Objects</h2></div></div></div><p>To minimize the time you have to wait on the compiler, it's good to
|
</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="io.html#std.io.objects">Iostream Objects</a></span></dt><dt><span class="section"><a href="streambufs.html">Stream Buffers</a></span></dt><dd><dl><dt><span class="section"><a href="streambufs.html#io.streambuf.derived">Derived streambuf Classes</a></span></dt><dt><span class="section"><a href="streambufs.html#io.streambuf.buffering">Buffering</a></span></dt></dl></dd><dt><span class="section"><a href="stringstreams.html">Memory Based Streams</a></span></dt><dd><dl><dt><span class="section"><a href="stringstreams.html#std.io.memstreams.compat">Compatibility With strstream</a></span></dt></dl></dd><dt><span class="section"><a href="fstreams.html">File Based Streams</a></span></dt><dd><dl><dt><span class="section"><a href="fstreams.html#std.io.filestreams.copying_a_file">Copying a File</a></span></dt><dt><span class="section"><a href="fstreams.html#std.io.filestreams.binary">Binary Input and Output</a></span></dt></dl></dd><dt><span class="section"><a href="io_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="io_and_c.html#std.io.c.FILE">Using FILE* and file descriptors</a></span></dt><dt><span class="section"><a href="io_and_c.html#std.io.c.sync">Performance</a></span></dt></dl></dd></dl></div><div class="section" title="Iostream Objects"><div class="titlepage"><div><div><h2 class="title"><a id="std.io.objects"/>Iostream Objects</h2></div></div></div><p>To minimize the time you have to wait on the compiler, it's good to
|
||||||
only include the headers you really need. Many people simply include
|
only include the headers you really need. Many people simply include
|
||||||
<iostream> when they don't need to -- and that can <span class="emphasis"><em>penalize
|
<iostream> when they don't need to -- and that can <span class="emphasis"><em>penalize
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
Standard Contents
|
Standard Contents
|
||||||
</th><td align="right"> <a accesskey="n" href="algorithms.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 10. Iterators"><div class="titlepage"><div><div><h2 class="title"><a id="std.iterators"/>Chapter 10.
|
</th><td align="right"> <a accesskey="n" href="algorithms.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 10. Iterators"><div class="titlepage"><div><div><h2 class="title"><a id="std.iterators"/>Chapter 10.
|
||||||
Iterators
|
Iterators
|
||||||
<a id="id652095" class="indexterm"/>
|
<a id="id482179" class="indexterm"/>
|
||||||
</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="iterators.html#std.iterators.predefined">Predefined</a></span></dt><dd><dl><dt><span class="section"><a href="iterators.html#iterators.predefined.vs_pointers">Iterators vs. Pointers</a></span></dt><dt><span class="section"><a href="iterators.html#iterators.predefined.end">One Past the End</a></span></dt></dl></dd></dl></div><div class="section" title="Predefined"><div class="titlepage"><div><div><h2 class="title"><a id="std.iterators.predefined"/>Predefined</h2></div></div></div><div class="section" title="Iterators vs. Pointers"><div class="titlepage"><div><div><h3 class="title"><a id="iterators.predefined.vs_pointers"/>Iterators vs. Pointers</h3></div></div></div><p>
|
</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="iterators.html#std.iterators.predefined">Predefined</a></span></dt><dd><dl><dt><span class="section"><a href="iterators.html#iterators.predefined.vs_pointers">Iterators vs. Pointers</a></span></dt><dt><span class="section"><a href="iterators.html#iterators.predefined.end">One Past the End</a></span></dt></dl></dd></dl></div><div class="section" title="Predefined"><div class="titlepage"><div><div><h2 class="title"><a id="std.iterators.predefined"/>Predefined</h2></div></div></div><div class="section" title="Iterators vs. Pointers"><div class="titlepage"><div><div><h3 class="title"><a id="iterators.predefined.vs_pointers"/>Iterators vs. Pointers</h3></div></div></div><p>
|
||||||
The following
|
The following
|
||||||
FAQ <a class="link" href="../faq.html#faq.iterator_as_pod" title="7.1.">entry</a> points out that
|
FAQ <a class="link" href="../faq.html#faq.iterator_as_pod" title="7.1.">entry</a> points out that
|
||||||
|
|
|
@ -7,8 +7,8 @@
|
||||||
Standard Contents
|
Standard Contents
|
||||||
</th><td align="right"> <a accesskey="n" href="facets.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 8. Localization"><div class="titlepage"><div><div><h2 class="title"><a id="std.localization"/>Chapter 8.
|
</th><td align="right"> <a accesskey="n" href="facets.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 8. Localization"><div class="titlepage"><div><div><h2 class="title"><a id="std.localization"/>Chapter 8.
|
||||||
Localization
|
Localization
|
||||||
<a id="id648384" class="indexterm"/>
|
<a id="id478468" class="indexterm"/>
|
||||||
</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locales.locale.req">Requirements</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.design">Design</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locale.impl.c">Interacting with "C" locales</a></span></dt></dl></dd><dt><span class="section"><a href="localization.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#std.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.ctype.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#id649036">Specializations</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#codecvt.design.wchar_t_size"><span class="type">wchar_t</span> Size</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.unicode">Support for Unicode</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.issues">Other Issues</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#manual.localization.facet.messages">messages</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.messages.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.design">Design</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#messages.impl.models">Models</a></span></dt><dt><span class="section"><a href="facets.html#messages.impl.gnu">The GNU Model</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.messages.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></div><div class="section" title="Locales"><div class="titlepage"><div><div><h2 class="title"><a id="std.localization.locales"/>Locales</h2></div></div></div><div class="section" title="locale"><div class="titlepage"><div><div><h3 class="title"><a id="std.localization.locales.locale"/>locale</h3></div></div></div><p>
|
</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locales.locale.req">Requirements</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.design">Design</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locale.impl.c">Interacting with "C" locales</a></span></dt></dl></dd><dt><span class="section"><a href="localization.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#std.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.ctype.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#id479120">Specializations</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#codecvt.design.wchar_t_size"><span class="type">wchar_t</span> Size</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.unicode">Support for Unicode</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.issues">Other Issues</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#manual.localization.facet.messages">messages</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.messages.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.design">Design</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#messages.impl.models">Models</a></span></dt><dt><span class="section"><a href="facets.html#messages.impl.gnu">The GNU Model</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.messages.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></div><div class="section" title="Locales"><div class="titlepage"><div><div><h2 class="title"><a id="std.localization.locales"/>Locales</h2></div></div></div><div class="section" title="locale"><div class="titlepage"><div><div><h3 class="title"><a id="std.localization.locales.locale"/>locale</h3></div></div></div><p>
|
||||||
Describes the basic locale object, including nested
|
Describes the basic locale object, including nested
|
||||||
classes id, facet, and the reference-counted implementation object,
|
classes id, facet, and the reference-counted implementation object,
|
||||||
class _Impl.
|
class _Impl.
|
||||||
|
@ -403,29 +403,29 @@ global locale" (emphasis Paolo), that is:
|
||||||
What should non-required facet instantiations do? If the
|
What should non-required facet instantiations do? If the
|
||||||
generic implementation is provided, then how to end-users
|
generic implementation is provided, then how to end-users
|
||||||
provide specializations?
|
provide specializations?
|
||||||
</p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="locales.locale.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id648747"/><p><span class="citetitle"><em class="citetitle">
|
</p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="locales.locale.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id478831"/><p><span class="citetitle"><em class="citetitle">
|
||||||
The GNU C Library
|
The GNU C Library
|
||||||
</em>. </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">
|
</em>. </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
|
Chapters 6 Character Set Handling and 7 Locales and
|
||||||
Internationalization
|
Internationalization
|
||||||
. </span></p></div><div class="biblioentry"><a id="id648786"/><p><span class="citetitle"><em class="citetitle">
|
. </span></p></div><div class="biblioentry"><a id="id478870"/><p><span class="citetitle"><em class="citetitle">
|
||||||
Correspondence
|
Correspondence
|
||||||
</em>. </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="id648812"/><p><span class="citetitle"><em class="citetitle">
|
</em>. </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="id478896"/><p><span class="citetitle"><em class="citetitle">
|
||||||
ISO/IEC 14882:1998 Programming languages - C++
|
ISO/IEC 14882:1998 Programming languages - C++
|
||||||
</em>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="id648831"/><p><span class="citetitle"><em class="citetitle">
|
</em>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="id478915"/><p><span class="citetitle"><em class="citetitle">
|
||||||
ISO/IEC 9899:1999 Programming languages - C
|
ISO/IEC 9899:1999 Programming languages - C
|
||||||
</em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry" title="System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)"><a id="id648850"/><p><span class="title"><em>
|
</em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry" title="System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)"><a id="id478934"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://www.opengroup.org/austin/">
|
<a class="link" href="http://www.opengroup.org/austin/">
|
||||||
System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
|
System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
|
||||||
</a>
|
</a>
|
||||||
</em>. </span><span class="copyright">Copyright © 2008
|
</em>. </span><span class="copyright">Copyright © 2008
|
||||||
The Open Group/The Institute of Electrical and Electronics
|
The Open Group/The Institute of Electrical and Electronics
|
||||||
Engineers, Inc.
|
Engineers, Inc.
|
||||||
. </span></p></div><div class="biblioentry"><a id="id648877"/><p><span class="citetitle"><em class="citetitle">
|
. </span></p></div><div class="biblioentry"><a id="id478961"/><p><span class="citetitle"><em class="citetitle">
|
||||||
The C++ Programming Language, Special Edition
|
The C++ Programming Language, Special Edition
|
||||||
</em>. </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">
|
</em>. </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="id648916"/><p><span class="citetitle"><em class="citetitle">
|
. </span></span></p></div><div class="biblioentry"><a id="id479000"/><p><span class="citetitle"><em class="citetitle">
|
||||||
Standard C++ IOStreams and Locales
|
Standard C++ IOStreams and Locales
|
||||||
</em>. </span><span class="subtitle">
|
</em>. </span><span class="subtitle">
|
||||||
Advanced Programmer's Guide and Reference
|
Advanced Programmer's Guide and Reference
|
||||||
|
|
|
@ -93,7 +93,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="section" title="Implementation"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.impl"/>Implementation</h4></div></div></div><div class="section" title="Interface Design"><div class="titlepage"><div><div><h5 class="title"><a id="id633362"/>Interface Design</h5></div></div></div><p>
|
</p></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.impl"/>Implementation</h4></div></div></div><div class="section" title="Interface Design"><div class="titlepage"><div><div><h5 class="title"><a id="id463447"/>Interface Design</h5></div></div></div><p>
|
||||||
The only allocator interface that
|
The only allocator interface that
|
||||||
is supported is the standard C++ interface. As such, all STL
|
is supported is the standard C++ interface. As such, all STL
|
||||||
containers have been adjusted, and all external allocators have
|
containers have been adjusted, and all external allocators have
|
||||||
|
@ -106,7 +106,7 @@
|
||||||
</p><p>
|
</p><p>
|
||||||
The base class that <code class="classname">allocator</code> is derived from
|
The base class that <code class="classname">allocator</code> is derived from
|
||||||
may not be user-configurable.
|
may not be user-configurable.
|
||||||
</p></div><div class="section" title="Selecting Default Allocation Policy"><div class="titlepage"><div><div><h5 class="title"><a id="id633392"/>Selecting Default Allocation Policy</h5></div></div></div><p>
|
</p></div><div class="section" title="Selecting Default Allocation Policy"><div class="titlepage"><div><div><h5 class="title"><a id="id463477"/>Selecting Default Allocation Policy</h5></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
|
||||||
|
@ -143,7 +143,7 @@
|
||||||
The current default choice for
|
The current default choice for
|
||||||
<code class="classname">allocator</code> is
|
<code class="classname">allocator</code> is
|
||||||
<code class="classname">__gnu_cxx::new_allocator</code>.
|
<code class="classname">__gnu_cxx::new_allocator</code>.
|
||||||
</p></div><div class="section" title="Disabling Memory Caching"><div class="titlepage"><div><div><h5 class="title"><a id="id633502"/>Disabling Memory Caching</h5></div></div></div><p>
|
</p></div><div class="section" title="Disabling Memory Caching"><div class="titlepage"><div><div><h5 class="title"><a id="id463588"/>Disabling Memory Caching</h5></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
|
||||||
|
@ -308,33 +308,33 @@
|
||||||
A high-performance allocator that uses a bit-map to keep track
|
A high-performance allocator that uses a bit-map to keep track
|
||||||
of the used and unused memory locations. It has its own
|
of the used and unused memory locations. It has its own
|
||||||
documentation, found <a class="link" href="bitmap_allocator.html" title="Chapter 21. The bitmap_allocator">here</a>.
|
documentation, found <a class="link" href="bitmap_allocator.html" title="Chapter 21. The bitmap_allocator">here</a>.
|
||||||
</p></li></ol></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id633953"/><p><span class="citetitle"><em class="citetitle">
|
</p></li></ol></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id464038"/><p><span class="citetitle"><em class="citetitle">
|
||||||
ISO/IEC 14882:1998 Programming languages - C++
|
ISO/IEC 14882:1998 Programming languages - C++
|
||||||
</em>. </span>
|
</em>. </span>
|
||||||
isoc++_1998
|
isoc++_1998
|
||||||
<span class="pagenums">20.4 Memory. </span></p></div><div class="biblioentry" title="The Standard Librarian: What Are Allocators Good For?"><a id="id633968"/><p><span class="title"><em>
|
<span class="pagenums">20.4 Memory. </span></p></div><div class="biblioentry" title="The Standard Librarian: What Are Allocators Good For?"><a id="id464054"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://www.drdobbs.com/cpp/184403759">
|
<a class="link" href="http://www.drdobbs.com/cpp/184403759">
|
||||||
The Standard Librarian: What Are Allocators Good For?
|
The Standard Librarian: What Are Allocators Good For?
|
||||||
</a>
|
</a>
|
||||||
</em>. </span><span class="author"><span class="firstname">Matt</span> <span class="surname">Austern</span>. </span><span class="publisher"><span class="publishername">
|
</em>. </span><span class="author"><span class="firstname">Matt</span> <span class="surname">Austern</span>. </span><span class="publisher"><span class="publishername">
|
||||||
C/C++ Users Journal
|
C/C++ Users Journal
|
||||||
. </span></span></p></div><div class="biblioentry" title="The Hoard Memory Allocator"><a id="id633999"/><p><span class="title"><em>
|
. </span></span></p></div><div class="biblioentry" title="The Hoard Memory Allocator"><a id="id464085"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://www.cs.umass.edu/~emery/hoard">
|
<a class="link" href="http://www.cs.umass.edu/~emery/hoard">
|
||||||
The Hoard Memory Allocator
|
The Hoard Memory Allocator
|
||||||
</a>
|
</a>
|
||||||
</em>. </span><span class="author"><span class="firstname">Emery</span> <span class="surname">Berger</span>. </span></p></div><div class="biblioentry" title="Reconsidering Custom Memory Allocation"><a id="id634022"/><p><span class="title"><em>
|
</em>. </span><span class="author"><span class="firstname">Emery</span> <span class="surname">Berger</span>. </span></p></div><div class="biblioentry" title="Reconsidering Custom Memory Allocation"><a id="id464108"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://www.cs.umass.edu/~emery/pubs/berger-oopsla2002.pdf">
|
<a class="link" href="http://www.cs.umass.edu/~emery/pubs/berger-oopsla2002.pdf">
|
||||||
Reconsidering Custom Memory Allocation
|
Reconsidering Custom Memory Allocation
|
||||||
</a>
|
</a>
|
||||||
</em>. </span><span class="author"><span class="firstname">Emery</span> <span class="surname">Berger</span>. </span><span class="author"><span class="firstname">Ben</span> <span class="surname">Zorn</span>. </span><span class="author"><span class="firstname">Kathryn</span> <span class="surname">McKinley</span>. </span><span class="copyright">Copyright © 2002 OOPSLA. </span></p></div><div class="biblioentry" title="Allocator Types"><a id="id634074"/><p><span class="title"><em>
|
</em>. </span><span class="author"><span class="firstname">Emery</span> <span class="surname">Berger</span>. </span><span class="author"><span class="firstname">Ben</span> <span class="surname">Zorn</span>. </span><span class="author"><span class="firstname">Kathryn</span> <span class="surname">McKinley</span>. </span><span class="copyright">Copyright © 2002 OOPSLA. </span></p></div><div class="biblioentry" title="Allocator Types"><a id="id464159"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://www.angelikalanger.com/Articles/C++Report/Allocators/Allocators.html">
|
<a class="link" href="http://www.angelikalanger.com/Articles/C++Report/Allocators/Allocators.html">
|
||||||
Allocator Types
|
Allocator Types
|
||||||
</a>
|
</a>
|
||||||
</em>. </span><span class="author"><span class="firstname">Klaus</span> <span class="surname">Kreft</span>. </span><span class="author"><span class="firstname">Angelika</span> <span class="surname">Langer</span>. </span><span class="publisher"><span class="publishername">
|
</em>. </span><span class="author"><span class="firstname">Klaus</span> <span class="surname">Kreft</span>. </span><span class="author"><span class="firstname">Angelika</span> <span class="surname">Langer</span>. </span><span class="publisher"><span class="publishername">
|
||||||
C/C++ Users Journal
|
C/C++ Users Journal
|
||||||
. </span></span></p></div><div class="biblioentry"><a id="id634113"/><p><span class="citetitle"><em class="citetitle">The C++ Programming Language</em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright © 2000 . </span><span class="pagenums">19.4 Allocators. </span><span class="publisher"><span class="publishername">
|
. </span></span></p></div><div class="biblioentry"><a id="id464199"/><p><span class="citetitle"><em class="citetitle">The C++ Programming Language</em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright © 2000 . </span><span class="pagenums">19.4 Allocators. </span><span class="publisher"><span class="publishername">
|
||||||
Addison Wesley
|
Addison Wesley
|
||||||
. </span></span></p></div><div class="biblioentry"><a id="id634150"/><p><span class="citetitle"><em class="citetitle">Yalloc: A Recycling C++ Allocator</em>. </span><span class="author"><span class="firstname">Felix</span> <span class="surname">Yen</span>. </span></p></div></div></div><div class="section" title="auto_ptr"><div class="titlepage"><div><div><h3 class="title"><a id="std.util.memory.auto_ptr"/>auto_ptr</h3></div></div></div><div class="section" title="Limitations"><div class="titlepage"><div><div><h4 class="title"><a id="auto_ptr.limitations"/>Limitations</h4></div></div></div><p>Explaining all of the fun and delicious things that can
|
. </span></span></p></div><div class="biblioentry"><a id="id464236"/><p><span class="citetitle"><em class="citetitle">Yalloc: A Recycling C++ Allocator</em>. </span><span class="author"><span class="firstname">Felix</span> <span class="surname">Yen</span>. </span></p></div></div></div><div class="section" title="auto_ptr"><div class="titlepage"><div><div><h3 class="title"><a id="std.util.memory.auto_ptr"/>auto_ptr</h3></div></div></div><div class="section" title="Limitations"><div class="titlepage"><div><div><h4 class="title"><a id="auto_ptr.limitations"/>Limitations</h4></div></div></div><p>Explaining all of the fun and delicious things that can
|
||||||
happen with misuse of the <code class="classname">auto_ptr</code> class
|
happen with misuse of the <code class="classname">auto_ptr</code> class
|
||||||
template (called <acronym class="acronym">AP</acronym> here) would take some
|
template (called <acronym class="acronym">AP</acronym> here) would take some
|
||||||
time. Suffice it to say that the use of <acronym class="acronym">AP</acronym>
|
time. Suffice it to say that the use of <acronym class="acronym">AP</acronym>
|
||||||
|
@ -450,7 +450,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="section" title="Implementation"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.impl"/>Implementation</h4></div></div></div><div class="section" title="Class Hierarchy"><div class="titlepage"><div><div><h5 class="title"><a id="id634511"/>Class Hierarchy</h5></div></div></div><p>
|
</p></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.impl"/>Implementation</h4></div></div></div><div class="section" title="Class Hierarchy"><div class="titlepage"><div><div><h5 class="title"><a id="id464596"/>Class Hierarchy</h5></div></div></div><p>
|
||||||
A <code class="classname">shared_ptr<T></code> contains a pointer of
|
A <code class="classname">shared_ptr<T></code> contains a pointer of
|
||||||
type <span class="type">T*</span> and an object of type
|
type <span class="type">T*</span> and an object of type
|
||||||
<code class="classname">__shared_count</code>. The shared_count contains a
|
<code class="classname">__shared_count</code>. The shared_count contains a
|
||||||
|
@ -492,7 +492,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="section" title="Thread Safety"><div class="titlepage"><div><div><h5 class="title"><a id="id634689"/>Thread Safety</h5></div></div></div><p>
|
</p></dd></dl></div></div><div class="section" title="Thread Safety"><div class="titlepage"><div><div><h5 class="title"><a id="id464775"/>Thread Safety</h5></div></div></div><p>
|
||||||
C++0x-only features are: rvalue-ref/move support, allocator support,
|
C++0x-only features are: rvalue-ref/move support, allocator support,
|
||||||
aliasing constructor, make_shared & allocate_shared. Additionally,
|
aliasing constructor, make_shared & allocate_shared. Additionally,
|
||||||
the constructors taking <code class="classname">auto_ptr</code> parameters are
|
the constructors taking <code class="classname">auto_ptr</code> parameters are
|
||||||
|
@ -542,7 +542,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="section" title="Selecting Lock Policy"><div class="titlepage"><div><div><h5 class="title"><a id="id634759"/>Selecting Lock Policy</h5></div></div></div><p>
|
</p></div><div class="section" title="Selecting Lock Policy"><div class="titlepage"><div><div><h5 class="title"><a id="id464844"/>Selecting Lock Policy</h5></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
|
||||||
|
@ -583,7 +583,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="section" title="Dual C++0x and TR1 Implementation"><div class="titlepage"><div><div><h5 class="title"><a id="id634881"/>Dual C++0x and TR1 Implementation</h5></div></div></div><p>
|
</p></div><div class="section" title="Dual C++0x and TR1 Implementation"><div class="titlepage"><div><div><h5 class="title"><a id="id464966"/>Dual C++0x and TR1 Implementation</h5></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 N2351.
|
with support for rvalue-references and the other features from N2351.
|
||||||
The <code class="classname">_Sp_counted_base</code> base class is implemented in
|
The <code class="classname">_Sp_counted_base</code> base class is implemented in
|
||||||
|
@ -600,7 +600,7 @@ 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 <code class="classname">_Sp_counted_base</code> and only make changes to
|
duplicate <code class="classname">_Sp_counted_base</code> and only make changes to
|
||||||
the C++0x version.
|
the C++0x version.
|
||||||
</p></div><div class="section" title="Related functions and classes"><div class="titlepage"><div><div><h5 class="title"><a id="id634937"/>Related functions and classes</h5></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="section" title="Related functions and classes"><div class="titlepage"><div><div><h5 class="title"><a id="id465022"/>Related functions and classes</h5></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
|
||||||
|
@ -633,13 +633,13 @@ 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="section" title="Use"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.using"/>Use</h4></div></div></div><div class="section" title="Examples"><div class="titlepage"><div><div><h5 class="title"><a id="id635086"/>Examples</h5></div></div></div><p>
|
</p></dd></dl></div></div></div><div class="section" title="Use"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.using"/>Use</h4></div></div></div><div class="section" title="Examples"><div class="titlepage"><div><div><h5 class="title"><a id="id465171"/>Examples</h5></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>,
|
||||||
<code class="filename">testsuite/20_util/shared_ptr</code>
|
<code class="filename">testsuite/20_util/shared_ptr</code>
|
||||||
and
|
and
|
||||||
<code class="filename">testsuite/20_util/weak_ptr</code>.
|
<code class="filename">testsuite/20_util/weak_ptr</code>.
|
||||||
</p></div><div class="section" title="Unresolved Issues"><div class="titlepage"><div><div><h5 class="title"><a id="id635116"/>Unresolved Issues</h5></div></div></div><p>
|
</p></div><div class="section" title="Unresolved Issues"><div class="titlepage"><div><div><h5 class="title"><a id="id465201"/>Unresolved Issues</h5></div></div></div><p>
|
||||||
The <span class="emphasis"><em><code class="classname">shared_ptr</code> atomic access</em></span>
|
The <span class="emphasis"><em><code class="classname">shared_ptr</code> atomic access</em></span>
|
||||||
clause in the C++0x working draft is not implemented in GCC.
|
clause in the C++0x working draft is not implemented in GCC.
|
||||||
</p><p>
|
</p><p>
|
||||||
|
@ -680,25 +680,25 @@ be private.
|
||||||
code to work with, Peter Dimov in particular for his help and
|
code to work with, Peter Dimov in particular for his help and
|
||||||
invaluable advice on thread safety. Phillip Jordan and Paolo
|
invaluable advice on thread safety. Phillip Jordan and Paolo
|
||||||
Carlini for the lock policy implementation.
|
Carlini for the lock policy implementation.
|
||||||
</p></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry" title="Improving shared_ptr for C++0x, Revision 2"><a id="id635209"/><p><span class="title"><em>
|
</p></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry" title="Improving shared_ptr for C++0x, Revision 2"><a id="id477514"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2351.htm">
|
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2351.htm">
|
||||||
Improving shared_ptr for C++0x, Revision 2
|
Improving shared_ptr for C++0x, Revision 2
|
||||||
</a>
|
</a>
|
||||||
</em>. </span><span class="subtitle">
|
</em>. </span><span class="subtitle">
|
||||||
N2351
|
N2351
|
||||||
. </span></p></div><div class="biblioentry" title="C++ Standard Library Active Issues List"><a id="id635228"/><p><span class="title"><em>
|
. </span></p></div><div class="biblioentry" title="C++ Standard Library Active Issues List"><a id="id477533"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2456.html">
|
<a class="link" href="http://open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2456.html">
|
||||||
C++ Standard Library Active Issues List
|
C++ Standard Library Active Issues List
|
||||||
</a>
|
</a>
|
||||||
</em>. </span><span class="subtitle">
|
</em>. </span><span class="subtitle">
|
||||||
N2456
|
N2456
|
||||||
. </span></p></div><div class="biblioentry" title="Working Draft, Standard for Programming Language C++"><a id="id635248"/><p><span class="title"><em>
|
. </span></p></div><div class="biblioentry" title="Working Draft, Standard for Programming Language C++"><a id="id477552"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2461.pdf">
|
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2461.pdf">
|
||||||
Working Draft, Standard for Programming Language C++
|
Working Draft, Standard for Programming Language C++
|
||||||
</a>
|
</a>
|
||||||
</em>. </span><span class="subtitle">
|
</em>. </span><span class="subtitle">
|
||||||
N2461
|
N2461
|
||||||
. </span></p></div><div class="biblioentry" title="Boost C++ Libraries documentation, shared_ptr"><a id="id635267"/><p><span class="title"><em>
|
. </span></p></div><div class="biblioentry" title="Boost C++ Libraries documentation, shared_ptr"><a id="id477571"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://boost.org/libs/smart_ptr/shared_ptr.htm">
|
<a class="link" href="http://boost.org/libs/smart_ptr/shared_ptr.htm">
|
||||||
Boost C++ Libraries documentation, shared_ptr
|
Boost C++ Libraries documentation, shared_ptr
|
||||||
</a>
|
</a>
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
Standard Contents
|
Standard Contents
|
||||||
</th><td align="right"> <a accesskey="n" href="generalized_numeric_operations.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 12. Numerics"><div class="titlepage"><div><div><h2 class="title"><a id="std.numerics"/>Chapter 12.
|
</th><td align="right"> <a accesskey="n" href="generalized_numeric_operations.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 12. Numerics"><div class="titlepage"><div><div><h2 class="title"><a id="std.numerics"/>Chapter 12.
|
||||||
Numerics
|
Numerics
|
||||||
<a id="id652583" class="indexterm"/>
|
<a id="id482667" class="indexterm"/>
|
||||||
</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="numerics.html#std.numerics.complex">Complex</a></span></dt><dd><dl><dt><span class="section"><a href="numerics.html#numerics.complex.processing">complex Processing</a></span></dt></dl></dd><dt><span class="section"><a href="generalized_numeric_operations.html">Generalized Operations</a></span></dt><dt><span class="section"><a href="numerics_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="numerics_and_c.html#numerics.c.array">Numerics vs. Arrays</a></span></dt><dt><span class="section"><a href="numerics_and_c.html#numerics.c.c99">C99</a></span></dt></dl></dd></dl></div><div class="section" title="Complex"><div class="titlepage"><div><div><h2 class="title"><a id="std.numerics.complex"/>Complex</h2></div></div></div><p>
|
</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="numerics.html#std.numerics.complex">Complex</a></span></dt><dd><dl><dt><span class="section"><a href="numerics.html#numerics.complex.processing">complex Processing</a></span></dt></dl></dd><dt><span class="section"><a href="generalized_numeric_operations.html">Generalized Operations</a></span></dt><dt><span class="section"><a href="numerics_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="numerics_and_c.html#numerics.c.array">Numerics vs. Arrays</a></span></dt><dt><span class="section"><a href="numerics_and_c.html#numerics.c.c99">C99</a></span></dt></dl></dd></dl></div><div class="section" title="Complex"><div class="titlepage"><div><div><h2 class="title"><a id="std.numerics.complex"/>Complex</h2></div></div></div><p>
|
||||||
</p><div class="section" title="complex Processing"><div class="titlepage"><div><div><h3 class="title"><a id="numerics.complex.processing"/>complex Processing</h3></div></div></div><p>
|
</p><div class="section" title="complex Processing"><div class="titlepage"><div><div><h3 class="title"><a id="numerics.complex.processing"/>complex Processing</h3></div></div></div><p>
|
||||||
</p><p>Using <code class="code">complex<></code> becomes even more comple- er, sorry,
|
</p><p>Using <code class="code">complex<></code> becomes even more comple- er, sorry,
|
||||||
|
|
|
@ -13,11 +13,11 @@ explicit source declaration or by compiling existing sources with a
|
||||||
specific compiler flag.
|
specific compiler flag.
|
||||||
</p><div class="section" title="Intro"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.parallel_mode.intro"/>Intro</h2></div></div></div><p>The following library components in the include
|
</p><div class="section" title="Intro"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.parallel_mode.intro"/>Intro</h2></div></div></div><p>The following library components in the include
|
||||||
<code class="filename">numeric</code> are included in the parallel mode:</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><code class="function">std::accumulate</code></p></li><li class="listitem"><p><code class="function">std::adjacent_difference</code></p></li><li class="listitem"><p><code class="function">std::inner_product</code></p></li><li class="listitem"><p><code class="function">std::partial_sum</code></p></li></ul></div><p>The following library components in the include
|
<code class="filename">numeric</code> are included in the parallel mode:</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><code class="function">std::accumulate</code></p></li><li class="listitem"><p><code class="function">std::adjacent_difference</code></p></li><li class="listitem"><p><code class="function">std::inner_product</code></p></li><li class="listitem"><p><code class="function">std::partial_sum</code></p></li></ul></div><p>The following library components in the include
|
||||||
<code class="filename">algorithm</code> are included in the parallel mode:</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><code class="function">std::adjacent_find</code></p></li><li class="listitem"><p><code class="function">std::count</code></p></li><li class="listitem"><p><code class="function">std::count_if</code></p></li><li class="listitem"><p><code class="function">std::equal</code></p></li><li class="listitem"><p><code class="function">std::find</code></p></li><li class="listitem"><p><code class="function">std::find_if</code></p></li><li class="listitem"><p><code class="function">std::find_first_of</code></p></li><li class="listitem"><p><code class="function">std::for_each</code></p></li><li class="listitem"><p><code class="function">std::generate</code></p></li><li class="listitem"><p><code class="function">std::generate_n</code></p></li><li class="listitem"><p><code class="function">std::lexicographical_compare</code></p></li><li class="listitem"><p><code class="function">std::mismatch</code></p></li><li class="listitem"><p><code class="function">std::search</code></p></li><li class="listitem"><p><code class="function">std::search_n</code></p></li><li class="listitem"><p><code class="function">std::transform</code></p></li><li class="listitem"><p><code class="function">std::replace</code></p></li><li class="listitem"><p><code class="function">std::replace_if</code></p></li><li class="listitem"><p><code class="function">std::max_element</code></p></li><li class="listitem"><p><code class="function">std::merge</code></p></li><li class="listitem"><p><code class="function">std::min_element</code></p></li><li class="listitem"><p><code class="function">std::nth_element</code></p></li><li class="listitem"><p><code class="function">std::partial_sort</code></p></li><li class="listitem"><p><code class="function">std::partition</code></p></li><li class="listitem"><p><code class="function">std::random_shuffle</code></p></li><li class="listitem"><p><code class="function">std::set_union</code></p></li><li class="listitem"><p><code class="function">std::set_intersection</code></p></li><li class="listitem"><p><code class="function">std::set_symmetric_difference</code></p></li><li class="listitem"><p><code class="function">std::set_difference</code></p></li><li class="listitem"><p><code class="function">std::sort</code></p></li><li class="listitem"><p><code class="function">std::stable_sort</code></p></li><li class="listitem"><p><code class="function">std::unique_copy</code></p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h2 class="title"><a id="parallel_mode.biblio"/>Bibliography</h2></div></div></div><div class="biblioentry"><a id="id658507"/><p><span class="citetitle"><em class="citetitle">
|
<code class="filename">algorithm</code> are included in the parallel mode:</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><code class="function">std::adjacent_find</code></p></li><li class="listitem"><p><code class="function">std::count</code></p></li><li class="listitem"><p><code class="function">std::count_if</code></p></li><li class="listitem"><p><code class="function">std::equal</code></p></li><li class="listitem"><p><code class="function">std::find</code></p></li><li class="listitem"><p><code class="function">std::find_if</code></p></li><li class="listitem"><p><code class="function">std::find_first_of</code></p></li><li class="listitem"><p><code class="function">std::for_each</code></p></li><li class="listitem"><p><code class="function">std::generate</code></p></li><li class="listitem"><p><code class="function">std::generate_n</code></p></li><li class="listitem"><p><code class="function">std::lexicographical_compare</code></p></li><li class="listitem"><p><code class="function">std::mismatch</code></p></li><li class="listitem"><p><code class="function">std::search</code></p></li><li class="listitem"><p><code class="function">std::search_n</code></p></li><li class="listitem"><p><code class="function">std::transform</code></p></li><li class="listitem"><p><code class="function">std::replace</code></p></li><li class="listitem"><p><code class="function">std::replace_if</code></p></li><li class="listitem"><p><code class="function">std::max_element</code></p></li><li class="listitem"><p><code class="function">std::merge</code></p></li><li class="listitem"><p><code class="function">std::min_element</code></p></li><li class="listitem"><p><code class="function">std::nth_element</code></p></li><li class="listitem"><p><code class="function">std::partial_sort</code></p></li><li class="listitem"><p><code class="function">std::partition</code></p></li><li class="listitem"><p><code class="function">std::random_shuffle</code></p></li><li class="listitem"><p><code class="function">std::set_union</code></p></li><li class="listitem"><p><code class="function">std::set_intersection</code></p></li><li class="listitem"><p><code class="function">std::set_symmetric_difference</code></p></li><li class="listitem"><p><code class="function">std::set_difference</code></p></li><li class="listitem"><p><code class="function">std::sort</code></p></li><li class="listitem"><p><code class="function">std::stable_sort</code></p></li><li class="listitem"><p><code class="function">std::unique_copy</code></p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h2 class="title"><a id="parallel_mode.biblio"/>Bibliography</h2></div></div></div><div class="biblioentry"><a id="id488591"/><p><span class="citetitle"><em class="citetitle">
|
||||||
Parallelization of Bulk Operations for STL Dictionaries
|
Parallelization of Bulk Operations for STL Dictionaries
|
||||||
</em>. </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">
|
</em>. </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="id658549"/><p><span class="citetitle"><em class="citetitle">
|
. </span></span></p></div><div class="biblioentry"><a id="id488633"/><p><span class="citetitle"><em class="citetitle">
|
||||||
The Multi-Core Standard Template Library
|
The Multi-Core Standard Template Library
|
||||||
</em>. </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">
|
</em>. </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)
|
||||||
|
|
|
@ -251,7 +251,7 @@
|
||||||
these invariants, one must supply some policy that is aware
|
these invariants, one must supply some policy that is aware
|
||||||
of these changes. Without this, it would be better to use a
|
of these changes. Without this, it would be better to use a
|
||||||
linked list (in itself very efficient for these purposes).
|
linked list (in itself very efficient for these purposes).
|
||||||
</p></li></ol></div><div class="figure"><a id="id664217"/><p class="title"><strong>Figure 22.1. Node Invariants</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_node_invariants.png" style="text-align: middle" alt="Node Invariants"/></div></div></div><br class="figure-break"/></div><div class="section" title="Underlying Data Structures"><div class="titlepage"><div><div><h5 class="title"><a id="motivation.associative.underlying"/>Underlying Data Structures</h5></div></div></div><p>
|
</p></li></ol></div><div class="figure"><a id="id494301"/><p class="title"><strong>Figure 22.1. Node Invariants</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_node_invariants.png" style="text-align: middle" alt="Node Invariants"/></div></div></div><br class="figure-break"/></div><div class="section" title="Underlying Data Structures"><div class="titlepage"><div><div><h5 class="title"><a id="motivation.associative.underlying"/>Underlying Data Structures</h5></div></div></div><p>
|
||||||
The standard C++ library contains associative containers based on
|
The standard C++ library contains associative containers based on
|
||||||
red-black trees and collision-chaining hash tables. These are
|
red-black trees and collision-chaining hash tables. These are
|
||||||
very useful, but they are not ideal for all types of
|
very useful, but they are not ideal for all types of
|
||||||
|
@ -259,7 +259,7 @@
|
||||||
</p><p>
|
</p><p>
|
||||||
The figure below shows the different underlying data structures
|
The figure below shows the different underlying data structures
|
||||||
currently supported in this library.
|
currently supported in this library.
|
||||||
</p><div class="figure"><a id="id664273"/><p class="title"><strong>Figure 22.2. Underlying Associative Data Structures</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_different_underlying_dss_1.png" style="text-align: middle" alt="Underlying Associative Data Structures"/></div></div></div><br class="figure-break"/><p>
|
</p><div class="figure"><a id="id494357"/><p class="title"><strong>Figure 22.2. Underlying Associative Data Structures</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_different_underlying_dss_1.png" style="text-align: middle" alt="Underlying Associative Data Structures"/></div></div></div><br class="figure-break"/><p>
|
||||||
A shows a collision-chaining hash-table, B shows a probing
|
A shows a collision-chaining hash-table, B shows a probing
|
||||||
hash-table, C shows a red-black tree, D shows a splay tree, E shows
|
hash-table, C shows a red-black tree, D shows a splay tree, E shows
|
||||||
a tree based on an ordered vector(implicit in the order of the
|
a tree based on an ordered vector(implicit in the order of the
|
||||||
|
@ -378,7 +378,7 @@
|
||||||
no guarantee that the elements traversed will coincide with the
|
no guarantee that the elements traversed will coincide with the
|
||||||
<span class="emphasis"><em>logical</em></span> elements between 1 and 5, as in
|
<span class="emphasis"><em>logical</em></span> elements between 1 and 5, as in
|
||||||
label B.
|
label B.
|
||||||
</p><div class="figure"><a id="id664536"/><p class="title"><strong>Figure 22.3. Range Iteration in Different Data Structures</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_point_iterators_range_ops_1.png" style="text-align: middle" alt="Node Invariants"/></div></div></div><br class="figure-break"/><p>
|
</p><div class="figure"><a id="id494620"/><p class="title"><strong>Figure 22.3. Range Iteration in Different Data Structures</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_point_iterators_range_ops_1.png" style="text-align: middle" alt="Node Invariants"/></div></div></div><br class="figure-break"/><p>
|
||||||
In our opinion, this problem is not caused just because
|
In our opinion, this problem is not caused just because
|
||||||
red-black trees are order preserving while
|
red-black trees are order preserving while
|
||||||
collision-chaining hash tables are (generally) not - it
|
collision-chaining hash tables are (generally) not - it
|
||||||
|
@ -429,7 +429,7 @@
|
||||||
list, as in the graphic below, label B. Here the iterators are as
|
list, as in the graphic below, label B. Here the iterators are as
|
||||||
light as can be, but the hash-table's operations are more
|
light as can be, but the hash-table's operations are more
|
||||||
complicated.
|
complicated.
|
||||||
</p><div class="figure"><a id="id664661"/><p class="title"><strong>Figure 22.4. Point Iteration in Hash Data Structures</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_point_iterators_range_ops_2.png" style="text-align: middle" alt="Point Iteration in Hash Data Structures"/></div></div></div><br class="figure-break"/><p>
|
</p><div class="figure"><a id="id494745"/><p class="title"><strong>Figure 22.4. Point Iteration in Hash Data Structures</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_point_iterators_range_ops_2.png" style="text-align: middle" alt="Point Iteration in Hash Data Structures"/></div></div></div><br class="figure-break"/><p>
|
||||||
It should be noted that containers based on collision-chaining
|
It should be noted that containers based on collision-chaining
|
||||||
hash-tables are not the only ones with this type of behavior;
|
hash-tables are not the only ones with this type of behavior;
|
||||||
many other self-organizing data structures display it as well.
|
many other self-organizing data structures display it as well.
|
||||||
|
@ -445,7 +445,7 @@
|
||||||
container. The graphic below shows three cases: A1 and A2 show
|
container. The graphic below shows three cases: A1 and A2 show
|
||||||
a red-black tree; B1 and B2 show a probing hash-table; C1 and C2
|
a red-black tree; B1 and B2 show a probing hash-table; C1 and C2
|
||||||
show a collision-chaining hash table.
|
show a collision-chaining hash table.
|
||||||
</p><div class="figure"><a id="id664738"/><p class="title"><strong>Figure 22.5. Effect of erase in different underlying data structures</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_invalidation_guarantee_erase.png" style="text-align: middle" alt="Effect of erase in different underlying data structures"/></div></div></div><br class="figure-break"/><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>
|
</p><div class="figure"><a id="id494822"/><p class="title"><strong>Figure 22.5. Effect of erase in different underlying data structures</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_invalidation_guarantee_erase.png" style="text-align: middle" alt="Effect of erase in different underlying data structures"/></div></div></div><br class="figure-break"/><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>
|
||||||
Erasing 5 from A1 yields A2. Clearly, an iterator to 3 can
|
Erasing 5 from A1 yields A2. Clearly, an iterator to 3 can
|
||||||
be de-referenced and incremented. The sequence of iterators
|
be de-referenced and incremented. The sequence of iterators
|
||||||
changed, but in a way that is well-defined by the interface.
|
changed, but in a way that is well-defined by the interface.
|
||||||
|
@ -681,7 +681,7 @@
|
||||||
typically less structured than an associative container's tree;
|
typically less structured than an associative container's tree;
|
||||||
the third simply uses an associative container. These are
|
the third simply uses an associative container. These are
|
||||||
shown in the figure below with labels A1 and A2, B, and C.
|
shown in the figure below with labels A1 and A2, B, and C.
|
||||||
</p><div class="figure"><a id="id665301"/><p class="title"><strong>Figure 22.6. Underlying Priority Queue Data Structures</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_different_underlying_dss_2.png" style="text-align: middle" alt="Underlying Priority Queue Data Structures"/></div></div></div><br class="figure-break"/><p>
|
</p><div class="figure"><a id="id495385"/><p class="title"><strong>Figure 22.6. Underlying Priority Queue Data Structures</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_different_underlying_dss_2.png" style="text-align: middle" alt="Underlying Priority Queue Data Structures"/></div></div></div><br class="figure-break"/><p>
|
||||||
No single implementation can completely replace any of the
|
No single implementation can completely replace any of the
|
||||||
others. Some have better <code class="function">push</code>
|
others. Some have better <code class="function">push</code>
|
||||||
and <code class="function">pop</code> amortized performance, some have
|
and <code class="function">pop</code> amortized performance, some have
|
||||||
|
|
|
@ -171,7 +171,7 @@
|
||||||
naturally; collision-chaining hash tables (label B) store
|
naturally; collision-chaining hash tables (label B) store
|
||||||
equivalent-key values in the same bucket, the bucket can be
|
equivalent-key values in the same bucket, the bucket can be
|
||||||
arranged so that equivalent-key values are consecutive.
|
arranged so that equivalent-key values are consecutive.
|
||||||
</p><div class="figure"><a id="id667445"/><p class="title"><strong>Figure 22.8. Non-unique Mapping Standard Containers</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_embedded_lists_1.png" style="text-align: middle" alt="Non-unique Mapping Standard Containers"/></div></div></div><br class="figure-break"/><p>
|
</p><div class="figure"><a id="id497529"/><p class="title"><strong>Figure 22.8. Non-unique Mapping Standard Containers</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_embedded_lists_1.png" style="text-align: middle" alt="Non-unique Mapping Standard Containers"/></div></div></div><br class="figure-break"/><p>
|
||||||
Put differently, the standards' non-unique mapping
|
Put differently, the standards' non-unique mapping
|
||||||
associative-containers are associative containers that map
|
associative-containers are associative containers that map
|
||||||
primary keys to linked lists that are embedded into the
|
primary keys to linked lists that are embedded into the
|
||||||
|
@ -253,7 +253,7 @@
|
||||||
first graphic above. Labels A and B, respectively. Each shaded
|
first graphic above. Labels A and B, respectively. Each shaded
|
||||||
box represents some size-type or secondary
|
box represents some size-type or secondary
|
||||||
associative-container.
|
associative-container.
|
||||||
</p><div class="figure"><a id="id667640"/><p class="title"><strong>Figure 22.10. Non-unique Mapping Containers</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_embedded_lists_3.png" style="text-align: middle" alt="Non-unique Mapping Containers"/></div></div></div><br class="figure-break"/><p>
|
</p><div class="figure"><a id="id497724"/><p class="title"><strong>Figure 22.10. Non-unique Mapping Containers</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_embedded_lists_3.png" style="text-align: middle" alt="Non-unique Mapping Containers"/></div></div></div><br class="figure-break"/><p>
|
||||||
In the first example above, then, one would use an associative
|
In the first example above, then, one would use an associative
|
||||||
container mapping each user to an associative container which
|
container mapping each user to an associative container which
|
||||||
maps each application id to a start time (see
|
maps each application id to a start time (see
|
||||||
|
@ -306,7 +306,7 @@
|
||||||
shows invariants for order-preserving containers: point-type
|
shows invariants for order-preserving containers: point-type
|
||||||
iterators are synonymous with range-type iterators.
|
iterators are synonymous with range-type iterators.
|
||||||
Orthogonally, <span class="emphasis"><em>C</em></span>shows invariants for "set"
|
Orthogonally, <span class="emphasis"><em>C</em></span>shows invariants for "set"
|
||||||
containers: iterators are synonymous with const iterators.</p><div class="figure"><a id="id667806"/><p class="title"><strong>Figure 22.11. Point Iterator Hierarchy</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_point_iterator_hierarchy.png" style="text-align: middle" alt="Point Iterator Hierarchy"/></div></div></div><br class="figure-break"/><p>Note that point-type iterators in self-organizing containers
|
containers: iterators are synonymous with const iterators.</p><div class="figure"><a id="id497890"/><p class="title"><strong>Figure 22.11. Point Iterator Hierarchy</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_point_iterator_hierarchy.png" style="text-align: middle" alt="Point Iterator Hierarchy"/></div></div></div><br class="figure-break"/><p>Note that point-type iterators in self-organizing containers
|
||||||
(hash-based associative containers) lack movement
|
(hash-based associative containers) lack movement
|
||||||
operators, such as <code class="literal">operator++</code> - in fact, this
|
operators, such as <code class="literal">operator++</code> - in fact, this
|
||||||
is the reason why this library differentiates from the standard C++ librarys
|
is the reason why this library differentiates from the standard C++ librarys
|
||||||
|
@ -345,7 +345,7 @@
|
||||||
to the question of whether point-type iterators and range-type
|
to the question of whether point-type iterators and range-type
|
||||||
iterators are valid. The graphic below shows tags corresponding to
|
iterators are valid. The graphic below shows tags corresponding to
|
||||||
different types of invalidation guarantees.
|
different types of invalidation guarantees.
|
||||||
</p><div class="figure"><a id="id667917"/><p class="title"><strong>Figure 22.12. Invalidation Guarantee Tags Hierarchy</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_invalidation_tag_hierarchy.png" style="text-align: middle" alt="Invalidation Guarantee Tags Hierarchy"/></div></div></div><br class="figure-break"/><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>
|
</p><div class="figure"><a id="id498001"/><p class="title"><strong>Figure 22.12. Invalidation Guarantee Tags Hierarchy</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_invalidation_tag_hierarchy.png" style="text-align: middle" alt="Invalidation Guarantee Tags Hierarchy"/></div></div></div><br class="figure-break"/><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>
|
||||||
<code class="classname">basic_invalidation_guarantee</code>
|
<code class="classname">basic_invalidation_guarantee</code>
|
||||||
corresponds to a basic guarantee that a point-type iterator,
|
corresponds to a basic guarantee that a point-type iterator,
|
||||||
a found pointer, or a found reference, remains valid as long
|
a found pointer, or a found reference, remains valid as long
|
||||||
|
@ -429,7 +429,7 @@
|
||||||
</p><p>
|
</p><p>
|
||||||
This library contains a container tag hierarchy corresponding to the
|
This library contains a container tag hierarchy corresponding to the
|
||||||
diagram below.
|
diagram below.
|
||||||
</p><div class="figure"><a id="id668169"/><p class="title"><strong>Figure 22.13. Container Tag Hierarchy</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_container_tag_hierarchy.png" style="text-align: middle" alt="Container Tag Hierarchy"/></div></div></div><br class="figure-break"/><p>
|
</p><div class="figure"><a id="id498253"/><p class="title"><strong>Figure 22.13. Container Tag Hierarchy</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_container_tag_hierarchy.png" style="text-align: middle" alt="Container Tag Hierarchy"/></div></div></div><br class="figure-break"/><p>
|
||||||
Given any container <span class="type">Cntnr</span>, the tag of
|
Given any container <span class="type">Cntnr</span>, the tag of
|
||||||
the underlying data structure can be found via <code class="literal">typename
|
the underlying data structure can be found via <code class="literal">typename
|
||||||
Cntnr::container_category</code>.
|
Cntnr::container_category</code>.
|
||||||
|
@ -488,7 +488,7 @@
|
||||||
collision-chaining container, except for the following.</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p><code class="classname">Comb_Probe_Fn</code> describes how to transform a probe
|
collision-chaining container, except for the following.</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p><code class="classname">Comb_Probe_Fn</code> describes how to transform a probe
|
||||||
sequence into a sequence of positions within the table.</p></li><li class="listitem"><p><code class="classname">Probe_Fn</code> describes a probe sequence policy.</p></li></ol></div><p>Some of the default template values depend on the values of
|
sequence into a sequence of positions within the table.</p></li><li class="listitem"><p><code class="classname">Probe_Fn</code> describes a probe sequence policy.</p></li></ol></div><p>Some of the default template values depend on the values of
|
||||||
other parameters, and are explained below.</p></div><div class="section" title="Details"><div class="titlepage"><div><div><h5 class="title"><a id="container.hash.details"/>Details</h5></div></div></div><div class="section" title="Hash Policies"><div class="titlepage"><div><div><h6 class="title"><a id="container.hash.details.hash_policies"/>Hash Policies</h6></div></div></div><div class="section" title="General"><div class="titlepage"><div><div><h6 class="title"><a id="details.hash_policies.general"/>General</h6></div></div></div><p>Following is an explanation of some functions which hashing
|
other parameters, and are explained below.</p></div><div class="section" title="Details"><div class="titlepage"><div><div><h5 class="title"><a id="container.hash.details"/>Details</h5></div></div></div><div class="section" title="Hash Policies"><div class="titlepage"><div><div><h6 class="title"><a id="container.hash.details.hash_policies"/>Hash Policies</h6></div></div></div><div class="section" title="General"><div class="titlepage"><div><div><h6 class="title"><a id="details.hash_policies.general"/>General</h6></div></div></div><p>Following is an explanation of some functions which hashing
|
||||||
involves. The graphic below illustrates the discussion.</p><div class="figure"><a id="id668502"/><p class="title"><strong>Figure 22.14. Hash functions, ranged-hash functions, and
|
involves. The graphic below illustrates the discussion.</p><div class="figure"><a id="id498585"/><p class="title"><strong>Figure 22.14. Hash functions, ranged-hash functions, and
|
||||||
range-hashing functions</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_hash_ranged_hash_range_hashing_fns.png" style="text-align: middle" alt="Hash functions, ranged-hash functions, and range-hashing functions"/></div></div></div><br class="figure-break"/><p>Let U be a domain (e.g., the integers, or the
|
range-hashing functions</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_hash_ranged_hash_range_hashing_fns.png" style="text-align: middle" alt="Hash functions, ranged-hash functions, and range-hashing functions"/></div></div></div><br class="figure-break"/><p>Let U be a domain (e.g., the integers, or the
|
||||||
strings of 3 characters). A hash-table algorithm needs to map
|
strings of 3 characters). A hash-table algorithm needs to map
|
||||||
elements of U "uniformly" into the range [0,..., m -
|
elements of U "uniformly" into the range [0,..., m -
|
||||||
|
@ -505,7 +505,7 @@
|
||||||
Z<sub>+</sub>,</p><p>which maps a non-negative hash value, and a non-negative
|
Z<sub>+</sub>,</p><p>which maps a non-negative hash value, and a non-negative
|
||||||
range upper-bound into a non-negative integral in the range
|
range upper-bound into a non-negative integral in the range
|
||||||
between 0 (inclusive) and the range upper bound (exclusive),
|
between 0 (inclusive) and the range upper bound (exclusive),
|
||||||
i.e., for any r in Z<sub>+</sub>,</p><p>0 ≤ g(r, m) ≤ m - 1</p><p>The resulting ranged-hash function, is</p><div class="equation"><a id="id668617"/><p class="title"><strong>Equation 22.1. Ranged Hash Function</strong></p><div class="equation-contents"><span class="mathphrase">
|
i.e., for any r in Z<sub>+</sub>,</p><p>0 ≤ g(r, m) ≤ m - 1</p><p>The resulting ranged-hash function, is</p><div class="equation"><a id="id498701"/><p class="title"><strong>Equation 22.1. Ranged Hash Function</strong></p><div class="equation-contents"><span class="mathphrase">
|
||||||
f(u , m) = g(h(u), m)
|
f(u , m) = g(h(u), m)
|
||||||
</span></div></div><br class="equation-break"/><p>From the above, it is obvious that given g and
|
</span></div></div><br class="equation-break"/><p>From the above, it is obvious that given g and
|
||||||
h, f can always be composed (however the converse
|
h, f can always be composed (however the converse
|
||||||
|
@ -525,7 +525,7 @@
|
||||||
transforming the sequence of hash values into a sequence of
|
transforming the sequence of hash values into a sequence of
|
||||||
positions.</p></div><div class="section" title="Range Hashing"><div class="titlepage"><div><div><h6 class="title"><a id="details.hash_policies.range"/>Range Hashing</h6></div></div></div><p>Some common choices for range-hashing functions are the
|
positions.</p></div><div class="section" title="Range Hashing"><div class="titlepage"><div><div><h6 class="title"><a id="details.hash_policies.range"/>Range Hashing</h6></div></div></div><p>Some common choices for range-hashing functions are the
|
||||||
division, multiplication, and middle-square methods (<a class="xref" href="policy_data_structures.html#biblio.knuth98sorting" title="The Art of Computer Programming - Sorting and Searching">[biblio.knuth98sorting]</a>), defined
|
division, multiplication, and middle-square methods (<a class="xref" href="policy_data_structures.html#biblio.knuth98sorting" title="The Art of Computer Programming - Sorting and Searching">[biblio.knuth98sorting]</a>), defined
|
||||||
as</p><div class="equation"><a id="id668666"/><p class="title"><strong>Equation 22.2. Range-Hashing, Division Method</strong></p><div class="equation-contents"><span class="mathphrase">
|
as</p><div class="equation"><a id="id498750"/><p class="title"><strong>Equation 22.2. Range-Hashing, Division Method</strong></p><div class="equation-contents"><span class="mathphrase">
|
||||||
g(r, m) = r mod m
|
g(r, m) = r mod m
|
||||||
</span></div></div><br class="equation-break"/><p>g(r, m) = ⌈ u/v ( a r mod v ) ⌉</p><p>and</p><p>g(r, m) = ⌈ u/v ( r<sup>2</sup> mod v ) ⌉</p><p>respectively, for some positive integrals u and
|
</span></div></div><br class="equation-break"/><p>g(r, m) = ⌈ u/v ( a r mod v ) ⌉</p><p>and</p><p>g(r, m) = ⌈ u/v ( r<sup>2</sup> mod v ) ⌉</p><p>respectively, for some positive integrals u and
|
||||||
v (typically powers of 2), and some a. Each of
|
v (typically powers of 2), and some a. Each of
|
||||||
|
@ -536,9 +536,9 @@
|
||||||
implement using the low
|
implement using the low
|
||||||
level % (modulo) operation (for any m), or the
|
level % (modulo) operation (for any m), or the
|
||||||
low level & (bit-mask) operation (for the case where
|
low level & (bit-mask) operation (for the case where
|
||||||
m is a power of 2), i.e.,</p><div class="equation"><a id="id668703"/><p class="title"><strong>Equation 22.3. Division via Prime Modulo</strong></p><div class="equation-contents"><span class="mathphrase">
|
m is a power of 2), i.e.,</p><div class="equation"><a id="id498787"/><p class="title"><strong>Equation 22.3. Division via Prime Modulo</strong></p><div class="equation-contents"><span class="mathphrase">
|
||||||
g(r, m) = r % m
|
g(r, m) = r % m
|
||||||
</span></div></div><br class="equation-break"/><p>and</p><div class="equation"><a id="id668718"/><p class="title"><strong>Equation 22.4. Division via Bit Mask</strong></p><div class="equation-contents"><span class="mathphrase">
|
</span></div></div><br class="equation-break"/><p>and</p><div class="equation"><a id="id498803"/><p class="title"><strong>Equation 22.4. Division via Bit Mask</strong></p><div class="equation-contents"><span class="mathphrase">
|
||||||
g(r, m) = r & m - 1, (with m =
|
g(r, m) = r & m - 1, (with m =
|
||||||
2<sup>k</sup> for some k)
|
2<sup>k</sup> for some k)
|
||||||
</span></div></div><br class="equation-break"/><p>respectively.</p><p>The % (modulo) implementation has the advantage that for
|
</span></div></div><br class="equation-break"/><p>respectively.</p><p>The % (modulo) implementation has the advantage that for
|
||||||
|
@ -564,7 +564,7 @@
|
||||||
s = [ s<sub>0</sub>,..., s<sub>t - 1</sub>]
|
s = [ s<sub>0</sub>,..., s<sub>t - 1</sub>]
|
||||||
</p><p>be a string of t characters, each of which is from
|
</p><p>be a string of t characters, each of which is from
|
||||||
domain S. Consider the following ranged-hash
|
domain S. Consider the following ranged-hash
|
||||||
function:</p><div class="equation"><a id="id668799"/><p class="title"><strong>Equation 22.5.
|
function:</p><div class="equation"><a id="id498883"/><p class="title"><strong>Equation 22.5.
|
||||||
A Standard String Hash Function
|
A Standard String Hash Function
|
||||||
</strong></p><div class="equation-contents"><span class="mathphrase">
|
</strong></p><div class="equation-contents"><span class="mathphrase">
|
||||||
f<sub>1</sub>(s, m) = ∑ <sub>i =
|
f<sub>1</sub>(s, m) = ∑ <sub>i =
|
||||||
|
@ -576,7 +576,7 @@
|
||||||
of a long DNA sequence (and so S = {'A', 'C', 'G',
|
of a long DNA sequence (and so S = {'A', 'C', 'G',
|
||||||
'T'}). In this case, scanning the entire string might be
|
'T'}). In this case, scanning the entire string might be
|
||||||
prohibitively expensive. A possible alternative might be to use
|
prohibitively expensive. A possible alternative might be to use
|
||||||
only the first k characters of the string, where</p><p>|S|<sup>k</sup> ≥ m ,</p><p>i.e., using the hash function</p><div class="equation"><a id="id668850"/><p class="title"><strong>Equation 22.6.
|
only the first k characters of the string, where</p><p>|S|<sup>k</sup> ≥ m ,</p><p>i.e., using the hash function</p><div class="equation"><a id="id498934"/><p class="title"><strong>Equation 22.6.
|
||||||
Only k String DNA Hash
|
Only k String DNA Hash
|
||||||
</strong></p><div class="equation-contents"><span class="mathphrase">
|
</strong></p><div class="equation-contents"><span class="mathphrase">
|
||||||
f<sub>2</sub>(s, m) = ∑ <sub>i
|
f<sub>2</sub>(s, m) = ∑ <sub>i
|
||||||
|
@ -607,12 +607,12 @@
|
||||||
the container transforms the key into a non-negative integral
|
the container transforms the key into a non-negative integral
|
||||||
using the hash functor (points B and C), and transforms the
|
using the hash functor (points B and C), and transforms the
|
||||||
result into a position using the combining functor (points D
|
result into a position using the combining functor (points D
|
||||||
and E).</p><div class="figure"><a id="id669038"/><p class="title"><strong>Figure 22.15. Insert hash sequence diagram</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_hash_range_hashing_seq_diagram.png" style="text-align: middle" alt="Insert hash sequence diagram"/></div></div></div><br class="figure-break"/><p>If <code class="classname">cc_hash_table</code>'s
|
and E).</p><div class="figure"><a id="id499123"/><p class="title"><strong>Figure 22.15. Insert hash sequence diagram</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_hash_range_hashing_seq_diagram.png" style="text-align: middle" alt="Insert hash sequence diagram"/></div></div></div><br class="figure-break"/><p>If <code class="classname">cc_hash_table</code>'s
|
||||||
hash-functor, <code class="classname">Hash_Fn</code> is instantiated by <code class="classname">null_type</code> , then <code class="classname">Comb_Hash_Fn</code> is taken to be
|
hash-functor, <code class="classname">Hash_Fn</code> is instantiated by <code class="classname">null_type</code> , then <code class="classname">Comb_Hash_Fn</code> is taken to be
|
||||||
a ranged-hash function. The graphic below shows an <code class="function">insert</code> sequence
|
a ranged-hash function. The graphic below shows an <code class="function">insert</code> sequence
|
||||||
diagram. The user inserts an element (point A), the container
|
diagram. The user inserts an element (point A), the container
|
||||||
transforms the key into a position using the combining functor
|
transforms the key into a position using the combining functor
|
||||||
(points B and C).</p><div class="figure"><a id="id669097"/><p class="title"><strong>Figure 22.16. Insert hash sequence diagram with a null policy</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_hash_range_hashing_seq_diagram2.png" style="text-align: middle" alt="Insert hash sequence diagram with a null policy"/></div></div></div><br class="figure-break"/></div><div class="section" title="Probing tables"><div class="titlepage"><div><div><h6 class="title"><a id="hash_policies.implementation.probe"/>
|
(points B and C).</p><div class="figure"><a id="id499181"/><p class="title"><strong>Figure 22.16. Insert hash sequence diagram with a null policy</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_hash_range_hashing_seq_diagram2.png" style="text-align: middle" alt="Insert hash sequence diagram with a null policy"/></div></div></div><br class="figure-break"/></div><div class="section" title="Probing tables"><div class="titlepage"><div><div><h6 class="title"><a id="hash_policies.implementation.probe"/>
|
||||||
Probing tables
|
Probing tables
|
||||||
</h6></div></div></div><p><code class="classname">gp_hash_table</code> is parametrized by
|
</h6></div></div></div><p><code class="classname">gp_hash_table</code> is parametrized by
|
||||||
<code class="classname">Hash_Fn</code>, <code class="classname">Probe_Fn</code>,
|
<code class="classname">Hash_Fn</code>, <code class="classname">Probe_Fn</code>,
|
||||||
|
@ -635,7 +635,7 @@
|
||||||
a linear probe and a quadratic probe function,
|
a linear probe and a quadratic probe function,
|
||||||
respectively.</p></li></ol></div><p>
|
respectively.</p></li></ol></div><p>
|
||||||
The graphic below shows the relationships.
|
The graphic below shows the relationships.
|
||||||
</p><div class="figure"><a id="id669237"/><p class="title"><strong>Figure 22.17. Hash policy class diagram</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_hash_policy_cd.png" style="text-align: middle" alt="Hash policy class diagram"/></div></div></div><br class="figure-break"/></div></div></div><div class="section" title="Resize Policies"><div class="titlepage"><div><div><h6 class="title"><a id="container.hash.details.resize_policies"/>Resize Policies</h6></div></div></div><div class="section" title="General"><div class="titlepage"><div><div><h6 class="title"><a id="resize_policies.general"/>General</h6></div></div></div><p>Hash-tables, as opposed to trees, do not naturally grow or
|
</p><div class="figure"><a id="id499321"/><p class="title"><strong>Figure 22.17. Hash policy class diagram</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_hash_policy_cd.png" style="text-align: middle" alt="Hash policy class diagram"/></div></div></div><br class="figure-break"/></div></div></div><div class="section" title="Resize Policies"><div class="titlepage"><div><div><h6 class="title"><a id="container.hash.details.resize_policies"/>Resize Policies</h6></div></div></div><div class="section" title="General"><div class="titlepage"><div><div><h6 class="title"><a id="resize_policies.general"/>General</h6></div></div></div><p>Hash-tables, as opposed to trees, do not naturally grow or
|
||||||
shrink. It is necessary to specify policies to determine how
|
shrink. It is necessary to specify policies to determine how
|
||||||
and when a hash table should change its size. Usually, resize
|
and when a hash table should change its size. Usually, resize
|
||||||
policies can be decomposed into orthogonal policies:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>A size policy indicating how a hash table
|
policies can be decomposed into orthogonal policies:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>A size policy indicating how a hash table
|
||||||
|
@ -668,10 +668,10 @@
|
||||||
and some load factor be denoted by Α. We would like to
|
and some load factor be denoted by Α. We would like to
|
||||||
calculate the minimal length of k, such that if there were Α
|
calculate the minimal length of k, such that if there were Α
|
||||||
m elements in the hash table, a probe sequence of length k would
|
m elements in the hash table, a probe sequence of length k would
|
||||||
be found with probability at most 1/m.</p><div class="figure"><a id="id669396"/><p class="title"><strong>Figure 22.18. Balls and bins</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_balls_and_bins.png" style="text-align: middle" alt="Balls and bins"/></div></div></div><br class="figure-break"/><p>Denote the probability that a probe sequence of length
|
be found with probability at most 1/m.</p><div class="figure"><a id="id499480"/><p class="title"><strong>Figure 22.18. Balls and bins</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_balls_and_bins.png" style="text-align: middle" alt="Balls and bins"/></div></div></div><br class="figure-break"/><p>Denote the probability that a probe sequence of length
|
||||||
k appears in bin i by p<sub>i</sub>, the
|
k appears in bin i by p<sub>i</sub>, the
|
||||||
length of the probe sequence of bin i by
|
length of the probe sequence of bin i by
|
||||||
l<sub>i</sub>, and assume uniform distribution. Then</p><div class="equation"><a id="id669441"/><p class="title"><strong>Equation 22.7.
|
l<sub>i</sub>, and assume uniform distribution. Then</p><div class="equation"><a id="id499526"/><p class="title"><strong>Equation 22.7.
|
||||||
Probability of Probe Sequence of Length k
|
Probability of Probe Sequence of Length k
|
||||||
</strong></p><div class="equation-contents"><span class="mathphrase">
|
</strong></p><div class="equation-contents"><span class="mathphrase">
|
||||||
p<sub>1</sub> =
|
p<sub>1</sub> =
|
||||||
|
@ -685,7 +685,7 @@
|
||||||
l<sub>i</sub> are negatively-dependent
|
l<sub>i</sub> are negatively-dependent
|
||||||
(<a class="xref" href="policy_data_structures.html#biblio.dubhashi98neg" title="Balls and bins: A study in negative dependence">[biblio.dubhashi98neg]</a>)
|
(<a class="xref" href="policy_data_structures.html#biblio.dubhashi98neg" title="Balls and bins: A study in negative dependence">[biblio.dubhashi98neg]</a>)
|
||||||
. Let
|
. Let
|
||||||
I(.) denote the indicator function. Then</p><div class="equation"><a id="id669498"/><p class="title"><strong>Equation 22.8.
|
I(.) denote the indicator function. Then</p><div class="equation"><a id="id499582"/><p class="title"><strong>Equation 22.8.
|
||||||
Probability Probe Sequence in Some Bin
|
Probability Probe Sequence in Some Bin
|
||||||
</strong></p><div class="equation-contents"><span class="mathphrase">
|
</strong></p><div class="equation-contents"><span class="mathphrase">
|
||||||
P( exists<sub>i</sub> l<sub>i</sub> ≥ k ) =
|
P( exists<sub>i</sub> l<sub>i</sub> ≥ k ) =
|
||||||
|
@ -724,7 +724,7 @@
|
||||||
a resize is needed, and if so, what is the new size (points D
|
a resize is needed, and if so, what is the new size (points D
|
||||||
to G); following the resize, it notifies the policy that a
|
to G); following the resize, it notifies the policy that a
|
||||||
resize has completed (point H); finally, the element is
|
resize has completed (point H); finally, the element is
|
||||||
inserted, and the policy notified (point I).</p><div class="figure"><a id="id669652"/><p class="title"><strong>Figure 22.19. Insert resize sequence diagram</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_insert_resize_sequence_diagram1.png" style="text-align: middle" alt="Insert resize sequence diagram"/></div></div></div><br class="figure-break"/><p>In practice, a resize policy can be usually orthogonally
|
inserted, and the policy notified (point I).</p><div class="figure"><a id="id499736"/><p class="title"><strong>Figure 22.19. Insert resize sequence diagram</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_insert_resize_sequence_diagram1.png" style="text-align: middle" alt="Insert resize sequence diagram"/></div></div></div><br class="figure-break"/><p>In practice, a resize policy can be usually orthogonally
|
||||||
decomposed to a size policy and a trigger policy. Consequently,
|
decomposed to a size policy and a trigger policy. Consequently,
|
||||||
the library contains a single class for instantiating a resize
|
the library contains a single class for instantiating a resize
|
||||||
policy: <code class="classname">hash_standard_resize_policy</code>
|
policy: <code class="classname">hash_standard_resize_policy</code>
|
||||||
|
@ -733,8 +733,8 @@
|
||||||
both, and acts as a standard delegate (<a class="xref" href="policy_data_structures.html#biblio.gof" title="Design Patterns - Elements of Reusable Object-Oriented Software">[biblio.gof]</a>)
|
both, and acts as a standard delegate (<a class="xref" href="policy_data_structures.html#biblio.gof" title="Design Patterns - Elements of Reusable Object-Oriented Software">[biblio.gof]</a>)
|
||||||
to these policies.</p><p>The two graphics immediately below show sequence diagrams
|
to these policies.</p><p>The two graphics immediately below show sequence diagrams
|
||||||
illustrating the interaction between the standard resize policy
|
illustrating the interaction between the standard resize policy
|
||||||
and its trigger and size policies, respectively.</p><div class="figure"><a id="id669717"/><p class="title"><strong>Figure 22.20. Standard resize policy trigger sequence
|
and its trigger and size policies, respectively.</p><div class="figure"><a id="id499801"/><p class="title"><strong>Figure 22.20. Standard resize policy trigger sequence
|
||||||
diagram</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_insert_resize_sequence_diagram2.png" style="text-align: middle" alt="Standard resize policy trigger sequence diagram"/></div></div></div><br class="figure-break"/><div class="figure"><a id="id669752"/><p class="title"><strong>Figure 22.21. Standard resize policy size sequence
|
diagram</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_insert_resize_sequence_diagram2.png" style="text-align: middle" alt="Standard resize policy trigger sequence diagram"/></div></div></div><br class="figure-break"/><div class="figure"><a id="id499836"/><p class="title"><strong>Figure 22.21. Standard resize policy size sequence
|
||||||
diagram</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_insert_resize_sequence_diagram3.png" style="text-align: middle" alt="Standard resize policy size sequence diagram"/></div></div></div><br class="figure-break"/></div><div class="section" title="Predefined Policies"><div class="titlepage"><div><div><h6 class="title"><a id="resize_policies.impl.predefined"/>Predefined Policies</h6></div></div></div><p>The library includes the following
|
diagram</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_insert_resize_sequence_diagram3.png" style="text-align: middle" alt="Standard resize policy size sequence diagram"/></div></div></div><br class="figure-break"/></div><div class="section" title="Predefined Policies"><div class="titlepage"><div><div><h6 class="title"><a id="resize_policies.impl.predefined"/>Predefined Policies</h6></div></div></div><p>The library includes the following
|
||||||
instantiations of size and trigger policies:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p><code class="classname">hash_load_check_resize_trigger</code>
|
instantiations of size and trigger policies:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p><code class="classname">hash_load_check_resize_trigger</code>
|
||||||
implements a load check trigger policy.</p></li><li class="listitem"><p><code class="classname">cc_hash_max_collision_check_resize_trigger</code>
|
implements a load check trigger policy.</p></li><li class="listitem"><p><code class="classname">cc_hash_max_collision_check_resize_trigger</code>
|
||||||
|
@ -877,7 +877,7 @@
|
||||||
each node, and maintains node invariants (see <a class="xref" href="policy_data_structures.html#biblio.clrs2001" title="Introduction to Algorithms, 2nd edition">[biblio.clrs2001]</a>.) The first stores in
|
each node, and maintains node invariants (see <a class="xref" href="policy_data_structures.html#biblio.clrs2001" title="Introduction to Algorithms, 2nd edition">[biblio.clrs2001]</a>.) The first stores in
|
||||||
each node the size of the sub-tree rooted at the node; the
|
each node the size of the sub-tree rooted at the node; the
|
||||||
second stores at each node the maximal endpoint of the
|
second stores at each node the maximal endpoint of the
|
||||||
intervals at the sub-tree rooted at the node.</p><div class="figure"><a id="id670401"/><p class="title"><strong>Figure 22.22. Tree node invariants</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_tree_node_invariants.png" style="text-align: middle" alt="Tree node invariants"/></div></div></div><br class="figure-break"/><p>Supporting such trees is difficult for a number of
|
intervals at the sub-tree rooted at the node.</p><div class="figure"><a id="id500486"/><p class="title"><strong>Figure 22.22. Tree node invariants</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_tree_node_invariants.png" style="text-align: middle" alt="Tree node invariants"/></div></div></div><br class="figure-break"/><p>Supporting such trees is difficult for a number of
|
||||||
reasons:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>There must be a way to specify what a node's metadata
|
reasons:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>There must be a way to specify what a node's metadata
|
||||||
should be (if any).</p></li><li class="listitem"><p>Various operations can invalidate node
|
should be (if any).</p></li><li class="listitem"><p>Various operations can invalidate node
|
||||||
invariants. The graphic below shows how a right rotation,
|
invariants. The graphic below shows how a right rotation,
|
||||||
|
@ -891,7 +891,7 @@
|
||||||
metadata.</p></li><li class="listitem"><p>It is not feasible to know in advance which methods trees
|
metadata.</p></li><li class="listitem"><p>It is not feasible to know in advance which methods trees
|
||||||
can support. Besides the usual <code class="classname">find</code> method, the
|
can support. Besides the usual <code class="classname">find</code> method, the
|
||||||
first tree can support a <code class="classname">find_by_order</code> method, while
|
first tree can support a <code class="classname">find_by_order</code> method, while
|
||||||
the second can support an <code class="classname">overlaps</code> method.</p></li></ol></div><div class="figure"><a id="id670480"/><p class="title"><strong>Figure 22.23. Tree node invalidation</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_tree_node_invalidations.png" style="text-align: middle" alt="Tree node invalidation"/></div></div></div><br class="figure-break"/><p>These problems are solved by a combination of two means:
|
the second can support an <code class="classname">overlaps</code> method.</p></li></ol></div><div class="figure"><a id="id500564"/><p class="title"><strong>Figure 22.23. Tree node invalidation</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_tree_node_invalidations.png" style="text-align: middle" alt="Tree node invalidation"/></div></div></div><br class="figure-break"/><p>These problems are solved by a combination of two means:
|
||||||
node iterators, and template-template node updater
|
node iterators, and template-template node updater
|
||||||
parameters.</p><div class="section" title="Node Iterators"><div class="titlepage"><div><div><h6 class="title"><a id="container.tree.node.iterators"/>Node Iterators</h6></div></div></div><p>Each tree-based container defines two additional iterator
|
parameters.</p><div class="section" title="Node Iterators"><div class="titlepage"><div><div><h6 class="title"><a id="container.tree.node.iterators"/>Node Iterators</h6></div></div></div><p>Each tree-based container defines two additional iterator
|
||||||
types, <code class="classname">const_node_iterator</code>
|
types, <code class="classname">const_node_iterator</code>
|
||||||
|
@ -920,7 +920,7 @@
|
||||||
<code class="classname">node_update</code> class, and publicly subclasses
|
<code class="classname">node_update</code> class, and publicly subclasses
|
||||||
<code class="classname">node_update</code>. The graphic below shows this
|
<code class="classname">node_update</code>. The graphic below shows this
|
||||||
scheme, as well as some predefined policies (which are explained
|
scheme, as well as some predefined policies (which are explained
|
||||||
below).</p><div class="figure"><a id="id670590"/><p class="title"><strong>Figure 22.24. A tree and its update policy</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_tree_node_updator_policy_cd.png" style="text-align: middle" alt="A tree and its update policy"/></div></div></div><br class="figure-break"/><p><code class="classname">node_update</code> (an instantiation of
|
below).</p><div class="figure"><a id="id500674"/><p class="title"><strong>Figure 22.24. A tree and its update policy</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_tree_node_updator_policy_cd.png" style="text-align: middle" alt="A tree and its update policy"/></div></div></div><br class="figure-break"/><p><code class="classname">node_update</code> (an instantiation of
|
||||||
<code class="classname">Node_Update</code>) must define <code class="classname">metadata_type</code> as
|
<code class="classname">Node_Update</code>) must define <code class="classname">metadata_type</code> as
|
||||||
the type of metadata it requires. For order statistics,
|
the type of metadata it requires. For order statistics,
|
||||||
e.g., <code class="classname">metadata_type</code> might be <code class="classname">size_t</code>.
|
e.g., <code class="classname">metadata_type</code> might be <code class="classname">size_t</code>.
|
||||||
|
@ -939,7 +939,7 @@
|
||||||
<code class="classname">nd_it</code>. For example, say node x in the
|
<code class="classname">nd_it</code>. For example, say node x in the
|
||||||
graphic below label A has an invalid invariant, but its' children,
|
graphic below label A has an invalid invariant, but its' children,
|
||||||
y and z have valid invariants. After the invocation, all three
|
y and z have valid invariants. After the invocation, all three
|
||||||
nodes should have valid invariants, as in label B.</p><div class="figure"><a id="id670687"/><p class="title"><strong>Figure 22.25. Restoring node invariants</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_restoring_node_invariants.png" style="text-align: middle" alt="Restoring node invariants"/></div></div></div><br class="figure-break"/><p>When a tree operation might invalidate some node invariant,
|
nodes should have valid invariants, as in label B.</p><div class="figure"><a id="id500771"/><p class="title"><strong>Figure 22.25. Restoring node invariants</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_restoring_node_invariants.png" style="text-align: middle" alt="Restoring node invariants"/></div></div></div><br class="figure-break"/><p>When a tree operation might invalidate some node invariant,
|
||||||
it invokes this method in its <code class="classname">node_update</code> base to
|
it invokes this method in its <code class="classname">node_update</code> base to
|
||||||
restore the invariant. For example, the graphic below shows
|
restore the invariant. For example, the graphic below shows
|
||||||
an <code class="function">insert</code> operation (point A); the tree performs some
|
an <code class="function">insert</code> operation (point A); the tree performs some
|
||||||
|
@ -947,7 +947,7 @@
|
||||||
C, and D). (It is well known that any <code class="function">insert</code>,
|
C, and D). (It is well known that any <code class="function">insert</code>,
|
||||||
<code class="function">erase</code>, <code class="function">split</code> or <code class="function">join</code>, can restore
|
<code class="function">erase</code>, <code class="function">split</code> or <code class="function">join</code>, can restore
|
||||||
all node invariants by a small number of node invariant updates (<a class="xref" href="policy_data_structures.html#biblio.clrs2001" title="Introduction to Algorithms, 2nd edition">[biblio.clrs2001]</a>)
|
all node invariants by a small number of node invariant updates (<a class="xref" href="policy_data_structures.html#biblio.clrs2001" title="Introduction to Algorithms, 2nd edition">[biblio.clrs2001]</a>)
|
||||||
.</p><div class="figure"><a id="id670755"/><p class="title"><strong>Figure 22.26. Insert update sequence</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_update_seq_diagram.png" style="text-align: middle" alt="Insert update sequence"/></div></div></div><br class="figure-break"/><p>To complete the description of the scheme, three questions
|
.</p><div class="figure"><a id="id500839"/><p class="title"><strong>Figure 22.26. Insert update sequence</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_update_seq_diagram.png" style="text-align: middle" alt="Insert update sequence"/></div></div></div><br class="figure-break"/><p>To complete the description of the scheme, three questions
|
||||||
need to be answered:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>How can a tree which supports order statistics define a
|
need to be answered:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>How can a tree which supports order statistics define a
|
||||||
method such as <code class="classname">find_by_order</code>?</p></li><li class="listitem"><p>How can the node updater base access methods of the
|
method such as <code class="classname">find_by_order</code>?</p></li><li class="listitem"><p>How can the node updater base access methods of the
|
||||||
tree?</p></li><li class="listitem"><p>How can the following cyclic dependency be resolved?
|
tree?</p></li><li class="listitem"><p>How can the following cyclic dependency be resolved?
|
||||||
|
@ -989,7 +989,7 @@
|
||||||
node's metadata (this is halting reducible). In the graphic
|
node's metadata (this is halting reducible). In the graphic
|
||||||
below, assume the shaded node is inserted. The tree would have
|
below, assume the shaded node is inserted. The tree would have
|
||||||
to traverse the useless path shown to the root, applying
|
to traverse the useless path shown to the root, applying
|
||||||
redundant updates all the way.</p></li></ol></div><div class="figure"><a id="id670941"/><p class="title"><strong>Figure 22.27. Useless update path</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_rationale_null_node_updator.png" style="text-align: middle" alt="Useless update path"/></div></div></div><br class="figure-break"/><p>A null policy class, <code class="classname">null_node_update</code>
|
redundant updates all the way.</p></li></ol></div><div class="figure"><a id="id501025"/><p class="title"><strong>Figure 22.27. Useless update path</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_rationale_null_node_updator.png" style="text-align: middle" alt="Useless update path"/></div></div></div><br class="figure-break"/><p>A null policy class, <code class="classname">null_node_update</code>
|
||||||
solves both these problems. The tree detects that node
|
solves both these problems. The tree detects that node
|
||||||
invariants are irrelevant, and defines all accordingly.</p></div></div><div class="section" title="Split and Join"><div class="titlepage"><div><div><h6 class="title"><a id="container.tree.details.split"/>Split and Join</h6></div></div></div><p>Tree-based containers support split and join methods.
|
invariants are irrelevant, and defines all accordingly.</p></div></div><div class="section" title="Split and Join"><div class="titlepage"><div><div><h6 class="title"><a id="container.tree.details.split"/>Split and Join</h6></div></div></div><p>Tree-based containers support split and join methods.
|
||||||
It is possible to split a tree so that it passes
|
It is possible to split a tree so that it passes
|
||||||
|
@ -1072,7 +1072,7 @@
|
||||||
sub-tree with leafs "a" and "as". The maximal common prefix is
|
sub-tree with leafs "a" and "as". The maximal common prefix is
|
||||||
"a". The internal node contains, consequently, to const
|
"a". The internal node contains, consequently, to const
|
||||||
iterators, one pointing to <code class="varname">'a'</code>, and the other to
|
iterators, one pointing to <code class="varname">'a'</code>, and the other to
|
||||||
<code class="varname">'s'</code>.</p><div class="figure"><a id="id671313"/><p class="title"><strong>Figure 22.28. A PATRICIA trie</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_pat_trie.png" style="text-align: middle" alt="A PATRICIA trie"/></div></div></div><br class="figure-break"/></div><div class="section" title="Node Invariants"><div class="titlepage"><div><div><h6 class="title"><a id="container.trie.details.node"/>Node Invariants</h6></div></div></div><p>Trie-based containers support node invariants, as do
|
<code class="varname">'s'</code>.</p><div class="figure"><a id="id501397"/><p class="title"><strong>Figure 22.28. A PATRICIA trie</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_pat_trie.png" style="text-align: middle" alt="A PATRICIA trie"/></div></div></div><br class="figure-break"/></div><div class="section" title="Node Invariants"><div class="titlepage"><div><div><h6 class="title"><a id="container.trie.details.node"/>Node Invariants</h6></div></div></div><p>Trie-based containers support node invariants, as do
|
||||||
tree-based containers. There are two minor
|
tree-based containers. There are two minor
|
||||||
differences, though, which, unfortunately, thwart sharing them
|
differences, though, which, unfortunately, thwart sharing them
|
||||||
sharing the same node-updating policies:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>A trie's <code class="classname">Node_Update</code> template-template
|
sharing the same node-updating policies:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>A trie's <code class="classname">Node_Update</code> template-template
|
||||||
|
@ -1081,7 +1081,7 @@
|
||||||
parametrized by <code class="classname">Cmp_Fn</code>.</p></li><li class="listitem"><p>Tree-based containers store values in all nodes, while
|
parametrized by <code class="classname">Cmp_Fn</code>.</p></li><li class="listitem"><p>Tree-based containers store values in all nodes, while
|
||||||
trie-based containers (at least in this implementation) store
|
trie-based containers (at least in this implementation) store
|
||||||
values in leafs.</p></li></ol></div><p>The graphic below shows the scheme, as well as some predefined
|
values in leafs.</p></li></ol></div><p>The graphic below shows the scheme, as well as some predefined
|
||||||
policies (which are explained below).</p><div class="figure"><a id="id671400"/><p class="title"><strong>Figure 22.29. A trie and its update policy</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_trie_node_updator_policy_cd.png" style="text-align: middle" alt="A trie and its update policy"/></div></div></div><br class="figure-break"/><p>This library offers the following pre-defined trie node
|
policies (which are explained below).</p><div class="figure"><a id="id501485"/><p class="title"><strong>Figure 22.29. A trie and its update policy</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_trie_node_updator_policy_cd.png" style="text-align: middle" alt="A trie and its update policy"/></div></div></div><br class="figure-break"/><p>This library offers the following pre-defined trie node
|
||||||
updating policies:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>
|
updating policies:</p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>
|
||||||
<code class="classname">trie_order_statistics_node_update</code>
|
<code class="classname">trie_order_statistics_node_update</code>
|
||||||
supports order statistics.
|
supports order statistics.
|
||||||
|
@ -1129,7 +1129,7 @@
|
||||||
simple list of integer keys. If we search for the integer 6, we
|
simple list of integer keys. If we search for the integer 6, we
|
||||||
are paying an overhead: the link with key 6 is only the fifth
|
are paying an overhead: the link with key 6 is only the fifth
|
||||||
link; if it were the first link, it could be accessed
|
link; if it were the first link, it could be accessed
|
||||||
faster.</p><div class="figure"><a id="id671655"/><p class="title"><strong>Figure 22.30. A simple list</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_simple_list.png" style="text-align: middle" alt="A simple list"/></div></div></div><br class="figure-break"/><p>List-update algorithms reorder lists as elements are
|
faster.</p><div class="figure"><a id="id501739"/><p class="title"><strong>Figure 22.30. A simple list</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_simple_list.png" style="text-align: middle" alt="A simple list"/></div></div></div><br class="figure-break"/><p>List-update algorithms reorder lists as elements are
|
||||||
accessed. They try to determine, by the access history, which
|
accessed. They try to determine, by the access history, which
|
||||||
keys to move to the front of the list. Some of these algorithms
|
keys to move to the front of the list. Some of these algorithms
|
||||||
require adding some metadata alongside each entry.</p><p>For example, in the graphic below label A shows the counter
|
require adding some metadata alongside each entry.</p><p>For example, in the graphic below label A shows the counter
|
||||||
|
@ -1139,7 +1139,7 @@
|
||||||
predetermined value, say 10, as shown in label C, the count is set
|
predetermined value, say 10, as shown in label C, the count is set
|
||||||
to 0 and the node is moved to the front of the list, as in label
|
to 0 and the node is moved to the front of the list, as in label
|
||||||
D.
|
D.
|
||||||
</p><div class="figure"><a id="id671702"/><p class="title"><strong>Figure 22.31. The counter algorithm</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_list_update.png" style="text-align: middle" alt="The counter algorithm"/></div></div></div><br class="figure-break"/></div><div class="section" title="Policies"><div class="titlepage"><div><div><h6 class="title"><a id="container.list.details.policies"/>Policies</h6></div></div></div><p>this library allows instantiating lists with policies
|
</p><div class="figure"><a id="id501786"/><p class="title"><strong>Figure 22.31. The counter algorithm</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_list_update.png" style="text-align: middle" alt="The counter algorithm"/></div></div></div><br class="figure-break"/></div><div class="section" title="Policies"><div class="titlepage"><div><div><h6 class="title"><a id="container.list.details.policies"/>Policies</h6></div></div></div><p>this library allows instantiating lists with policies
|
||||||
implementing any algorithm moving nodes to the front of the
|
implementing any algorithm moving nodes to the front of the
|
||||||
list (policies implementing algorithms interchanging nodes are
|
list (policies implementing algorithms interchanging nodes are
|
||||||
unsupported).</p><p>Associative containers based on lists are parametrized by a
|
unsupported).</p><p>Associative containers based on lists are parametrized by a
|
||||||
|
@ -1311,7 +1311,7 @@
|
||||||
sequence; the second uses a tree (or forest of trees), which is
|
sequence; the second uses a tree (or forest of trees), which is
|
||||||
typically less structured than an associative container's tree;
|
typically less structured than an associative container's tree;
|
||||||
the third simply uses an associative container. These are
|
the third simply uses an associative container. These are
|
||||||
shown in the graphic below, in labels A1 and A2, label B, and label C.</p><div class="figure"><a id="id672233"/><p class="title"><strong>Figure 22.32. Underlying Priority-Queue Data-Structures.</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_priority_queue_different_underlying_dss.png" style="text-align: middle" alt="Underlying Priority-Queue Data-Structures."/></div></div></div><br class="figure-break"/><p>Roughly speaking, any value that is both pushed and popped
|
shown in the graphic below, in labels A1 and A2, label B, and label C.</p><div class="figure"><a id="id502317"/><p class="title"><strong>Figure 22.32. Underlying Priority-Queue Data-Structures.</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_priority_queue_different_underlying_dss.png" style="text-align: middle" alt="Underlying Priority-Queue Data-Structures."/></div></div></div><br class="figure-break"/><p>Roughly speaking, any value that is both pushed and popped
|
||||||
from a priority queue must incur a logarithmic expense (in the
|
from a priority queue must incur a logarithmic expense (in the
|
||||||
amortized sense). Any priority queue implementation that would
|
amortized sense). Any priority queue implementation that would
|
||||||
avoid this, would violate known bounds on comparison-based
|
avoid this, would violate known bounds on comparison-based
|
||||||
|
@ -1391,7 +1391,7 @@
|
||||||
container <code class="classname">Cntnr</code>, the tag of the underlying
|
container <code class="classname">Cntnr</code>, the tag of the underlying
|
||||||
data structure can be found via <code class="classname">typename
|
data structure can be found via <code class="classname">typename
|
||||||
Cntnr::container_category</code>; this is one of the possible tags shown in the graphic below.
|
Cntnr::container_category</code>; this is one of the possible tags shown in the graphic below.
|
||||||
</p><div class="figure"><a id="id672525"/><p class="title"><strong>Figure 22.33. Priority-Queue Data-Structure Tags.</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_priority_queue_tag_hierarchy.png" style="text-align: middle" alt="Priority-Queue Data-Structure Tags."/></div></div></div><br class="figure-break"/><p>Additionally, a traits mechanism can be used to query a
|
</p><div class="figure"><a id="id502609"/><p class="title"><strong>Figure 22.33. Priority-Queue Data-Structure Tags.</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_priority_queue_tag_hierarchy.png" style="text-align: middle" alt="Priority-Queue Data-Structure Tags."/></div></div></div><br class="figure-break"/><p>Additionally, a traits mechanism can be used to query a
|
||||||
container type for its attributes. Given any container
|
container type for its attributes. Given any container
|
||||||
<code class="classname">Cntnr</code>, then </p><pre class="programlisting">__gnu_pbds::container_traits<Cntnr></pre><p>
|
<code class="classname">Cntnr</code>, then </p><pre class="programlisting">__gnu_pbds::container_traits<Cntnr></pre><p>
|
||||||
is a traits class identifying the properties of the
|
is a traits class identifying the properties of the
|
||||||
|
|
|
@ -62,7 +62,7 @@
|
||||||
In addition, there are the following diagnostics classes,
|
In addition, there are the following diagnostics classes,
|
||||||
used to report errors specific to this library's data
|
used to report errors specific to this library's data
|
||||||
structures.
|
structures.
|
||||||
</p><div class="figure"><a id="id665824"/><p class="title"><strong>Figure 22.7. Exception Hierarchy</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_exception_hierarchy.png" style="text-align: middle" alt="Exception Hierarchy"/></div></div></div><br class="figure-break"/></div><div class="section" title="Tutorial"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.using.tutorial"/>Tutorial</h3></div></div></div><div class="section" title="Basic Use"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.using.tutorial.basic"/>Basic Use</h4></div></div></div><p>
|
</p><div class="figure"><a id="id495908"/><p class="title"><strong>Figure 22.7. Exception Hierarchy</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="../images/pbds_exception_hierarchy.png" style="text-align: middle" alt="Exception Hierarchy"/></div></div></div><br class="figure-break"/></div><div class="section" title="Tutorial"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.using.tutorial"/>Tutorial</h3></div></div></div><div class="section" title="Basic Use"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.using.tutorial.basic"/>Basic Use</h4></div></div></div><p>
|
||||||
For the most part, the policy-based containers containers in
|
For the most part, the policy-based containers containers in
|
||||||
namespace <code class="literal">__gnu_pbds</code> have the same interface as
|
namespace <code class="literal">__gnu_pbds</code> have the same interface as
|
||||||
the equivalent containers in the standard C++ library, except for
|
the equivalent containers in the standard C++ library, except for
|
||||||
|
|
|
@ -138,7 +138,7 @@ vector-size: improvement = 3: call stack = 0x804842c ...
|
||||||
call context.
|
call context.
|
||||||
(Environment variable not supported.)
|
(Environment variable not supported.)
|
||||||
</p></li></ul></div><p>
|
</p></li></ul></div><p>
|
||||||
</p></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h2 class="title"><a id="profile_mode.biblio"/>Bibliography</h2></div></div></div><div class="biblioentry"><a id="id662399"/><p><span class="citetitle"><em class="citetitle">
|
</p></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h2 class="title"><a id="profile_mode.biblio"/>Bibliography</h2></div></div></div><div class="biblioentry"><a id="id492483"/><p><span class="citetitle"><em class="citetitle">
|
||||||
Perflint: A Context Sensitive Performance Advisor for C++ Programs
|
Perflint: A Context Sensitive Performance Advisor for C++ Programs
|
||||||
</em>. </span><span class="author"><span class="firstname">Lixia</span> <span class="surname">Liu</span>. </span><span class="author"><span class="firstname">Silvius</span> <span class="surname">Rus</span>. </span><span class="copyright">Copyright © 2009 . </span><span class="publisher"><span class="publishername">
|
</em>. </span><span class="author"><span class="firstname">Lixia</span> <span class="surname">Liu</span>. </span><span class="author"><span class="firstname">Silvius</span> <span class="surname">Rus</span>. </span><span class="copyright">Copyright © 2009 . </span><span class="publisher"><span class="publishername">
|
||||||
Proceedings of the 2009 International Symposium on Code Generation
|
Proceedings of the 2009 International Symposium on Code Generation
|
||||||
|
|
|
@ -46,9 +46,9 @@
|
||||||
</p><p>
|
</p><p>
|
||||||
Finally, a few system-specific requirements:
|
Finally, a few system-specific requirements:
|
||||||
</p><div class="variablelist"><dl><dt><span class="term">linux</span></dt><dd><p>
|
</p><div class="variablelist"><dl><dt><span class="term">linux</span></dt><dd><p>
|
||||||
If gcc 3.1.0 or later on is being used on linux, an attempt
|
If GCC 3.1.0 or later on is being used on GNU/Linux, an attempt
|
||||||
will be made to use "C" library functionality necessary for
|
will be made to use "C" library functionality necessary for
|
||||||
C++ named locale support. For gcc 4.6.0 and later, this
|
C++ named locale support. For GCC 4.6.0 and later, this
|
||||||
means that glibc 2.3 or later is required.
|
means that glibc 2.3 or later is required.
|
||||||
</p><p>
|
</p><p>
|
||||||
If the 'gnu' locale model is being used, the following
|
If the 'gnu' locale model is being used, the following
|
||||||
|
@ -87,16 +87,7 @@ zh_TW BIG5
|
||||||
libstdc++ after "C" locales are installed is not necessary.
|
libstdc++ after "C" locales are installed is not necessary.
|
||||||
</p><p>
|
</p><p>
|
||||||
To install support for locales, do only one of the following:
|
To install support for locales, do only one of the following:
|
||||||
</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>install all locales</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>with RedHat Linux:
|
</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>install all locales</p></li><li class="listitem"><p>install just the necessary locales</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>with Debian GNU/Linux:</p><p> Add the above list, as shown, to the file
|
||||||
</p><p> <code class="code"> export LC_ALL=C </code>
|
|
||||||
</p><p> <code class="code"> rpm -e glibc-common --nodeps </code>
|
|
||||||
</p><p>
|
|
||||||
<code class="code"> rpm -i --define "_install_langs all"
|
|
||||||
glibc-common-2.2.5-34.i386.rpm
|
|
||||||
</code>
|
|
||||||
</p></li><li class="listitem"><p>
|
|
||||||
Instructions for other operating systems solicited.
|
|
||||||
</p></li></ul></div></li><li class="listitem"><p>install just the necessary locales</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>with Debian Linux:</p><p> Add the above list, as shown, to the file
|
|
||||||
<code class="code">/etc/locale.gen</code> </p><p> run <code class="code">/usr/sbin/locale-gen</code> </p></li><li class="listitem"><p>on most Unix-like operating systems:</p><p><code class="code"> localedef -i de_DE -f ISO-8859-1 de_DE </code></p><p>(repeat for each entry in the above list) </p></li><li class="listitem"><p>
|
<code class="code">/etc/locale.gen</code> </p><p> run <code class="code">/usr/sbin/locale-gen</code> </p></li><li class="listitem"><p>on most Unix-like operating systems:</p><p><code class="code"> localedef -i de_DE -f ISO-8859-1 de_DE </code></p><p>(repeat for each entry in the above list) </p></li><li class="listitem"><p>
|
||||||
Instructions for other operating systems solicited.
|
Instructions for other operating systems solicited.
|
||||||
</p></li></ul></div></li></ul></div></dd></dl></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bugs.html">Prev</a> </td><td align="center"><a accesskey="u" href="intro.html">Up</a></td><td align="right"> <a accesskey="n" href="configure.html">Next</a></td></tr><tr><td align="left" valign="top">Bugs </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Configure</td></tr></table></div></body></html>
|
</p></li></ul></div></li></ul></div></dd></dl></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bugs.html">Prev</a> </td><td align="center"><a accesskey="u" href="intro.html">Up</a></td><td align="right"> <a accesskey="n" href="configure.html">Next</a></td></tr><tr><td align="left" valign="top">Bugs </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Configure</td></tr></table></div></body></html>
|
||||||
|
|
|
@ -8,7 +8,7 @@ This status table is based on the table of contents of ISO/IEC 14882:2003.
|
||||||
</p><p>
|
</p><p>
|
||||||
This page describes the C++ support in mainline GCC SVN, not in any
|
This page describes the C++ support in mainline GCC SVN, not in any
|
||||||
particular release.
|
particular release.
|
||||||
</p><div class="table"><a id="id598677"/><p class="title"><strong>Table 1.1. C++ 1998/2003 Implementation Status</strong></p><div class="table-contents"><table summary="C++ 1998/2003 Implementation Status" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Section</th><th style="text-align: left">Description</th><th style="text-align: left">Status</th><th style="text-align: left">Comments</th></tr></thead><tbody><tr><td style="text-align: left">
|
</p><div class="table"><a id="id361767"/><p class="title"><strong>Table 1.1. C++ 1998/2003 Implementation Status</strong></p><div class="table-contents"><table summary="C++ 1998/2003 Implementation Status" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Section</th><th style="text-align: left">Description</th><th style="text-align: left">Status</th><th style="text-align: left">Comments</th></tr></thead><tbody><tr><td style="text-align: left">
|
||||||
<span class="emphasis"><em>18</em></span>
|
<span class="emphasis"><em>18</em></span>
|
||||||
</td><td colspan="3" style="text-align: left">
|
</td><td colspan="3" style="text-align: left">
|
||||||
<span class="emphasis"><em>Language support</em></span>
|
<span class="emphasis"><em>Language support</em></span>
|
||||||
|
@ -157,7 +157,7 @@ presence of the required flag.
|
||||||
</p><p>
|
</p><p>
|
||||||
This page describes the C++0x support in mainline GCC SVN, not in any
|
This page describes the C++0x support in mainline GCC SVN, not in any
|
||||||
particular release.
|
particular release.
|
||||||
</p><div class="table"><a id="id596384"/><p class="title"><strong>Table 1.2. C++ 200x Implementation Status</strong></p><div class="table-contents"><table summary="C++ 200x Implementation Status" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Section</th><th style="text-align: left">Description</th><th style="text-align: left">Status</th><th style="text-align: left">Comments</th></tr></thead><tbody><tr><td style="text-align: left">
|
</p><div class="table"><a id="id415056"/><p class="title"><strong>Table 1.2. C++ 200x Implementation Status</strong></p><div class="table-contents"><table summary="C++ 200x Implementation Status" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Section</th><th style="text-align: left">Description</th><th style="text-align: left">Status</th><th style="text-align: left">Comments</th></tr></thead><tbody><tr><td style="text-align: left">
|
||||||
<span class="emphasis"><em>18</em></span>
|
<span class="emphasis"><em>18</em></span>
|
||||||
</td><td colspan="3" style="text-align: left">
|
</td><td colspan="3" style="text-align: left">
|
||||||
<span class="emphasis"><em>Language support</em></span>
|
<span class="emphasis"><em>Language support</em></span>
|
||||||
|
@ -245,7 +245,7 @@ In this implementation the header names are prefixed by
|
||||||
</p><p>
|
</p><p>
|
||||||
This page describes the TR1 support in mainline GCC SVN, not in any particular
|
This page describes the TR1 support in mainline GCC SVN, not in any particular
|
||||||
release.
|
release.
|
||||||
</p><div class="table"><a id="id588207"/><p class="title"><strong>Table 1.3. C++ TR1 Implementation Status</strong></p><div class="table-contents"><table summary="C++ TR1 Implementation Status" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Section</th><th style="text-align: left">Description</th><th style="text-align: left">Status</th><th style="text-align: left">Comments</th></tr></thead><tbody><tr><td style="text-align: left"><span class="emphasis"><em>2</em></span></td><td colspan="3" style="text-align: left"><span class="emphasis"><em>General Utilities</em></span></td></tr><tr><td style="text-align: left">2.1</td><td style="text-align: left">Reference wrappers</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.1.1</td><td style="text-align: left">Additions to header <code class="code"><functional></code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.1.2</td><td style="text-align: left">Class template <code class="code">reference_wrapper</code></td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.1.2.1</td><td style="text-align: left"><code class="code">reference_wrapper</code> construct/copy/destroy</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.1.2.2</td><td style="text-align: left"><code class="code">reference_wrapper</code> assignment</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.1.2.3</td><td style="text-align: left"><code class="code">reference_wrapper</code> access</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.1.2.4</td><td style="text-align: left"><code class="code">reference_wrapper</code> invocation</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.1.2.5</td><td style="text-align: left"><code class="code">reference_wrapper</code> helper functions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2</td><td style="text-align: left">Smart pointers</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.1</td><td style="text-align: left">Additions to header <code class="code"><memory></code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.2</td><td style="text-align: left">Class <code class="code">bad_weak_ptr</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.3</td><td style="text-align: left">Class template <code class="code">shared_ptr</code></td><td style="text-align: left"> </td><td style="text-align: left">
|
</p><div class="table"><a id="id418192"/><p class="title"><strong>Table 1.3. C++ TR1 Implementation Status</strong></p><div class="table-contents"><table summary="C++ TR1 Implementation Status" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Section</th><th style="text-align: left">Description</th><th style="text-align: left">Status</th><th style="text-align: left">Comments</th></tr></thead><tbody><tr><td style="text-align: left"><span class="emphasis"><em>2</em></span></td><td colspan="3" style="text-align: left"><span class="emphasis"><em>General Utilities</em></span></td></tr><tr><td style="text-align: left">2.1</td><td style="text-align: left">Reference wrappers</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.1.1</td><td style="text-align: left">Additions to header <code class="code"><functional></code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.1.2</td><td style="text-align: left">Class template <code class="code">reference_wrapper</code></td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.1.2.1</td><td style="text-align: left"><code class="code">reference_wrapper</code> construct/copy/destroy</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.1.2.2</td><td style="text-align: left"><code class="code">reference_wrapper</code> assignment</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.1.2.3</td><td style="text-align: left"><code class="code">reference_wrapper</code> access</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.1.2.4</td><td style="text-align: left"><code class="code">reference_wrapper</code> invocation</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.1.2.5</td><td style="text-align: left"><code class="code">reference_wrapper</code> helper functions</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2</td><td style="text-align: left">Smart pointers</td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.1</td><td style="text-align: left">Additions to header <code class="code"><memory></code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.2</td><td style="text-align: left">Class <code class="code">bad_weak_ptr</code></td><td style="text-align: left">Y</td><td style="text-align: left"> </td></tr><tr><td style="text-align: left">2.2.3</td><td style="text-align: left">Class template <code class="code">shared_ptr</code></td><td style="text-align: left"> </td><td style="text-align: left">
|
||||||
<p>
|
<p>
|
||||||
Uses code from
|
Uses code from
|
||||||
<a class="link" href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm">boost::shared_ptr</a>.
|
<a class="link" href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm">boost::shared_ptr</a>.
|
||||||
|
@ -258,7 +258,7 @@ decimal floating-point arithmetic
|
||||||
</p><p>
|
</p><p>
|
||||||
This page describes the TR 24733 support in mainline GCC SVN, not in any
|
This page describes the TR 24733 support in mainline GCC SVN, not in any
|
||||||
particular release.
|
particular release.
|
||||||
</p><div class="table"><a id="id622095"/><p class="title"><strong>Table 1.4. C++ TR 24733 Implementation Status</strong></p><div class="table-contents"><table summary="C++ TR 24733 Implementation Status" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Section</th><th style="text-align: left">Description</th><th style="text-align: left">Status</th><th style="text-align: left">Comments</th></tr></thead><tbody><tr><td style="text-align: left">
|
</p><div class="table"><a id="id452102"/><p class="title"><strong>Table 1.4. C++ TR 24733 Implementation Status</strong></p><div class="table-contents"><table summary="C++ TR 24733 Implementation Status" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Section</th><th style="text-align: left">Description</th><th style="text-align: left">Status</th><th style="text-align: left">Comments</th></tr></thead><tbody><tr><td style="text-align: left">
|
||||||
<span class="emphasis"><em>0</em></span>
|
<span class="emphasis"><em>0</em></span>
|
||||||
</td><td colspan="3" style="text-align: left">
|
</td><td colspan="3" style="text-align: left">
|
||||||
<span class="emphasis"><em>Introduction</em></span>
|
<span class="emphasis"><em>Introduction</em></span>
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
Standard Contents
|
Standard Contents
|
||||||
</th><td align="right"> <a accesskey="n" href="localization.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 7. Strings"><div class="titlepage"><div><div><h2 class="title"><a id="std.strings"/>Chapter 7.
|
</th><td align="right"> <a accesskey="n" href="localization.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 7. Strings"><div class="titlepage"><div><div><h2 class="title"><a id="std.strings"/>Chapter 7.
|
||||||
Strings
|
Strings
|
||||||
<a id="id647564" class="indexterm"/>
|
<a id="id477648" class="indexterm"/>
|
||||||
</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="strings.html#std.strings.string">String Classes</a></span></dt><dd><dl><dt><span class="section"><a href="strings.html#strings.string.simple">Simple Transformations</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.case">Case Sensitivity</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.character_types">Arbitrary Character Types</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.token">Tokenizing</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.shrink">Shrink to Fit</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.Cstring">CString (MFC)</a></span></dt></dl></dd></dl></div><div class="section" title="String Classes"><div class="titlepage"><div><div><h2 class="title"><a id="std.strings.string"/>String Classes</h2></div></div></div><div class="section" title="Simple Transformations"><div class="titlepage"><div><div><h3 class="title"><a id="strings.string.simple"/>Simple Transformations</h3></div></div></div><p>
|
</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="strings.html#std.strings.string">String Classes</a></span></dt><dd><dl><dt><span class="section"><a href="strings.html#strings.string.simple">Simple Transformations</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.case">Case Sensitivity</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.character_types">Arbitrary Character Types</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.token">Tokenizing</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.shrink">Shrink to Fit</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.Cstring">CString (MFC)</a></span></dt></dl></dd></dl></div><div class="section" title="String Classes"><div class="titlepage"><div><div><h2 class="title"><a id="std.strings.string"/>String Classes</h2></div></div></div><div class="section" title="Simple Transformations"><div class="titlepage"><div><div><h3 class="title"><a id="strings.string.simple"/>Simple Transformations</h3></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
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
Standard Contents
|
Standard Contents
|
||||||
</th><td align="right"> <a accesskey="n" href="dynamic_memory.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 4. Support"><div class="titlepage"><div><div><h2 class="title"><a id="std.support"/>Chapter 4.
|
</th><td align="right"> <a accesskey="n" href="dynamic_memory.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 4. Support"><div class="titlepage"><div><div><h2 class="title"><a id="std.support"/>Chapter 4.
|
||||||
Support
|
Support
|
||||||
<a id="id631894" class="indexterm"/>
|
<a id="id461980" class="indexterm"/>
|
||||||
</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="support.html#std.support.types">Types</a></span></dt><dd><dl><dt><span class="section"><a href="support.html#std.support.types.fundamental">Fundamental Types</a></span></dt><dt><span class="section"><a href="support.html#std.support.types.numeric_limits">Numeric Properties</a></span></dt><dt><span class="section"><a href="support.html#std.support.types.null">NULL</a></span></dt></dl></dd><dt><span class="section"><a href="dynamic_memory.html">Dynamic Memory</a></span></dt><dt><span class="section"><a href="termination.html">Termination</a></span></dt><dd><dl><dt><span class="section"><a href="termination.html#support.termination.handlers">Termination Handlers</a></span></dt><dt><span class="section"><a href="termination.html#support.termination.verbose">Verbose Terminate Handler</a></span></dt></dl></dd></dl></div><p>
|
</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="support.html#std.support.types">Types</a></span></dt><dd><dl><dt><span class="section"><a href="support.html#std.support.types.fundamental">Fundamental Types</a></span></dt><dt><span class="section"><a href="support.html#std.support.types.numeric_limits">Numeric Properties</a></span></dt><dt><span class="section"><a href="support.html#std.support.types.null">NULL</a></span></dt></dl></dd><dt><span class="section"><a href="dynamic_memory.html">Dynamic Memory</a></span></dt><dt><span class="section"><a href="termination.html">Termination</a></span></dt><dd><dl><dt><span class="section"><a href="termination.html#support.termination.handlers">Termination Handlers</a></span></dt><dt><span class="section"><a href="termination.html#support.termination.verbose">Verbose Terminate Handler</a></span></dt></dl></dd></dl></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.
|
||||||
|
|
|
@ -493,7 +493,7 @@ only default variables.
|
||||||
reporting functions including:
|
reporting functions including:
|
||||||
</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>time_counter</p></li><li class="listitem"><p>resource_counter</p></li><li class="listitem"><p>report_performance</p></li></ul></div></li></ul></div></div></div><div class="section" title="Special Topics"><div class="titlepage"><div><div><h3 class="title"><a id="test.special"/>Special Topics</h3></div></div></div><div class="section" title="Qualifying Exception Safety Guarantees"><div class="titlepage"><div><div><h4 class="title"><a id="test.exception.safety"/>
|
</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>time_counter</p></li><li class="listitem"><p>resource_counter</p></li><li class="listitem"><p>report_performance</p></li></ul></div></li></ul></div></div></div><div class="section" title="Special Topics"><div class="titlepage"><div><div><h3 class="title"><a id="test.special"/>Special Topics</h3></div></div></div><div class="section" title="Qualifying Exception Safety Guarantees"><div class="titlepage"><div><div><h4 class="title"><a id="test.exception.safety"/>
|
||||||
Qualifying Exception Safety Guarantees
|
Qualifying Exception Safety Guarantees
|
||||||
<a id="id705405" class="indexterm"/>
|
<a id="id535489" class="indexterm"/>
|
||||||
</h4></div></div></div><div class="section" title="Overview"><div class="titlepage"><div><div><h5 class="title"><a id="test.exception.safety.overview"/>Overview</h5></div></div></div><p>
|
</h4></div></div></div><div class="section" title="Overview"><div class="titlepage"><div><div><h5 class="title"><a id="test.exception.safety.overview"/>Overview</h5></div></div></div><p>
|
||||||
Testing is composed of running a particular test sequence,
|
Testing is composed of running a particular test sequence,
|
||||||
and looking at what happens to the surrounding code when
|
and looking at what happens to the surrounding code when
|
||||||
|
|
|
@ -11,5 +11,5 @@
|
||||||
enumerated and detailed in the table below.
|
enumerated and detailed in the table below.
|
||||||
</p><p>
|
</p><p>
|
||||||
By default, <span class="command"><strong>g++</strong></span> is equivalent to <span class="command"><strong>g++ -std=gnu++98</strong></span>. The standard library also defaults to this dialect.
|
By default, <span class="command"><strong>g++</strong></span> is equivalent to <span class="command"><strong>g++ -std=gnu++98</strong></span>. The standard library also defaults to this dialect.
|
||||||
</p><div class="table"><a id="id626203"/><p class="title"><strong>Table 3.1. C++ Command Options</strong></p><div class="table-contents"><table summary="C++ Command Options" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/></colgroup><thead><tr><th style="text-align: left">Option Flags</th><th style="text-align: left">Description</th></tr></thead><tbody><tr><td style="text-align: left"><code class="literal">-std=c++98</code></td><td style="text-align: left">Use the 1998 ISO C++ standard plus amendments.</td></tr><tr><td style="text-align: left"><code class="literal">-std=gnu++98</code></td><td style="text-align: left">As directly above, with GNU extensions.</td></tr><tr><td style="text-align: left"><code class="literal">-std=c++0x</code></td><td style="text-align: left">Use the working draft of the upcoming ISO C++0x standard.</td></tr><tr><td style="text-align: left"><code class="literal">-std=gnu++0x</code></td><td style="text-align: left">As directly above, with GNU extensions.</td></tr><tr><td style="text-align: left"><code class="literal">-fexceptions</code></td><td style="text-align: left">See <a class="link" href="using_exceptions.html#intro.using.exception.no" title="Doing without">exception-free dialect</a></td></tr><tr><td style="text-align: left"><code class="literal">-frtti</code></td><td style="text-align: left">As above, but RTTI-free dialect.</td></tr><tr><td style="text-align: left"><code class="literal">-pthread</code> or <code class="literal">-pthreads</code></td><td style="text-align: left">For ISO C++0x <thread>, <future>,
|
</p><div class="table"><a id="id456161"/><p class="title"><strong>Table 3.1. C++ Command Options</strong></p><div class="table-contents"><table summary="C++ Command Options" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/></colgroup><thead><tr><th style="text-align: left">Option Flags</th><th style="text-align: left">Description</th></tr></thead><tbody><tr><td style="text-align: left"><code class="literal">-std=c++98</code></td><td style="text-align: left">Use the 1998 ISO C++ standard plus amendments.</td></tr><tr><td style="text-align: left"><code class="literal">-std=gnu++98</code></td><td style="text-align: left">As directly above, with GNU extensions.</td></tr><tr><td style="text-align: left"><code class="literal">-std=c++0x</code></td><td style="text-align: left">Use the working draft of the upcoming ISO C++0x standard.</td></tr><tr><td style="text-align: left"><code class="literal">-std=gnu++0x</code></td><td style="text-align: left">As directly above, with GNU extensions.</td></tr><tr><td style="text-align: left"><code class="literal">-fexceptions</code></td><td style="text-align: left">See <a class="link" href="using_exceptions.html#intro.using.exception.no" title="Doing without">exception-free dialect</a></td></tr><tr><td style="text-align: left"><code class="literal">-frtti</code></td><td style="text-align: left">As above, but RTTI-free dialect.</td></tr><tr><td style="text-align: left"><code class="literal">-pthread</code> or <code class="literal">-pthreads</code></td><td style="text-align: left">For ISO C++0x <thread>, <future>,
|
||||||
<mutex>, or <condition_variable>.</td></tr><tr><td style="text-align: left"><code class="literal">-fopenmp</code></td><td style="text-align: left">For <a class="link" href="parallel_mode.html" title="Chapter 18. Parallel Mode">parallel</a> mode.</td></tr></tbody></table></div></div><br class="table-break"/></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="make.html">Prev</a> </td><td align="center"><a accesskey="u" href="intro.html">Up</a></td><td align="right"> <a accesskey="n" href="using_headers.html">Next</a></td></tr><tr><td align="left" valign="top">Make </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Headers</td></tr></table></div></body></html>
|
<mutex>, or <condition_variable>.</td></tr><tr><td style="text-align: left"><code class="literal">-fopenmp</code></td><td style="text-align: left">For <a class="link" href="parallel_mode.html" title="Chapter 18. Parallel Mode">parallel</a> mode.</td></tr></tbody></table></div></div><br class="table-break"/></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="make.html">Prev</a> </td><td align="center"><a accesskey="u" href="intro.html">Up</a></td><td align="right"> <a accesskey="n" href="using_headers.html">Next</a></td></tr><tr><td align="left" valign="top">Make </td><td align="center"><a accesskey="h" href="../index.html">Home</a></td><td align="right" valign="top"> Headers</td></tr></table></div></body></html>
|
||||||
|
|
|
@ -34,7 +34,15 @@
|
||||||
AFAIK, none of this is properly documented anywhere other than
|
AFAIK, none of this is properly documented anywhere other than
|
||||||
in ``gcc -dumpspecs'' (look at lib and cpp entries).
|
in ``gcc -dumpspecs'' (look at lib and cpp entries).
|
||||||
</p></div><div class="section" title="Thread Safety"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.concurrency.thread_safety"/>Thread Safety</h3></div></div></div><p>
|
</p></div><div class="section" title="Thread Safety"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.concurrency.thread_safety"/>Thread Safety</h3></div></div></div><p>
|
||||||
We currently use the <a class="link" href="http://www.sgi.com/tech/stl/thread_safety.html">SGI STL</a> definition of thread safety.
|
In the terms of the 2011 C++ standard a thread-safe program is one which
|
||||||
|
does not perform any conflicting non-atomic operations on memory locations
|
||||||
|
and so does not contain any data races.
|
||||||
|
The standard places requirements on the library to ensure that no data
|
||||||
|
races are caused by the library itself or by programs which use the
|
||||||
|
library correctly (as described below).
|
||||||
|
The C++11 memory model and library requirements are a more formal version
|
||||||
|
of the <a class="link" href="http://www.sgi.com/tech/stl/thread_safety.html">SGI STL</a> definition of thread safety, which the library used
|
||||||
|
prior to the 2011 standard.
|
||||||
</p><p>The library strives to be thread-safe when all of the following
|
</p><p>The library strives to be thread-safe when all of the following
|
||||||
conditions are met:
|
conditions are met:
|
||||||
</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>The system's libc is itself thread-safe,
|
</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>The system's libc is itself thread-safe,
|
||||||
|
@ -58,37 +66,96 @@ gcc version 4.1.2 20070925 (Red Hat 4.1.2-33)
|
||||||
</p></li><li class="listitem"><p>
|
</p></li><li class="listitem"><p>
|
||||||
An implementation of atomicity.h functions
|
An implementation of atomicity.h functions
|
||||||
exists for the architecture in question. See the internals documentation for more <a class="link" href="internals.html#internals.thread_safety" title="Thread Safety">details</a>.
|
exists for the architecture in question. See the internals documentation for more <a class="link" href="internals.html#internals.thread_safety" title="Thread Safety">details</a>.
|
||||||
</p></li></ul></div><p>The user-code must guard against concurrent method calls which may
|
</p></li></ul></div><p>The user code must guard against concurrent function calls which
|
||||||
access any particular library object's state. Typically, the
|
access any particular library object's state when one or more of
|
||||||
application programmer may infer what object locks must be held
|
those accesses modifies the state. An object will be modified by
|
||||||
based on the objects referenced in a method call. Without getting
|
invoking a non-const member function on it or passing it as a
|
||||||
|
non-const argument to a library function. An object will not be
|
||||||
|
modified by invoking a const member function on it or passing it to
|
||||||
|
a function as a pointer- or reference-to-const.
|
||||||
|
Typically, the application
|
||||||
|
programmer may infer what object locks must be held based on the
|
||||||
|
objects referenced in a function call and whether the objects are
|
||||||
|
accessed as const or non-const. Without getting
|
||||||
into great detail, here is an example which requires user-level
|
into great detail, here is an example which requires user-level
|
||||||
locks:
|
locks:
|
||||||
</p><pre class="programlisting">
|
</p><pre class="programlisting">
|
||||||
library_class_a shared_object_a;
|
library_class_a shared_object_a;
|
||||||
|
|
||||||
thread_main () {
|
void thread_main () {
|
||||||
library_class_b *object_b = new library_class_b;
|
library_class_b *object_b = new library_class_b;
|
||||||
shared_object_a.add_b (object_b); // must hold lock for shared_object_a
|
shared_object_a.add_b (object_b); // must hold lock for shared_object_a
|
||||||
shared_object_a.mutate (); // must hold lock for shared_object_a
|
shared_object_a.mutate (); // must hold lock for shared_object_a
|
||||||
}
|
}
|
||||||
|
|
||||||
// Multiple copies of thread_main() are started in independent threads.</pre><p>Under the assumption that object_a and object_b are never exposed to
|
// Multiple copies of thread_main() are started in independent threads.</pre><p>Under the assumption that object_a and object_b are never exposed to
|
||||||
another thread, here is an example that should not require any
|
another thread, here is an example that does not require any
|
||||||
user-level locks:
|
user-level locks:
|
||||||
</p><pre class="programlisting">
|
</p><pre class="programlisting">
|
||||||
thread_main () {
|
void thread_main () {
|
||||||
library_class_a object_a;
|
library_class_a object_a;
|
||||||
library_class_b *object_b = new library_class_b;
|
library_class_b *object_b = new library_class_b;
|
||||||
object_a.add_b (object_b);
|
object_a.add_b (object_b);
|
||||||
object_a.mutate ();
|
object_a.mutate ();
|
||||||
} </pre><p>All library objects are safe to use in a multithreaded program as
|
} </pre><p>All library types are safe to use in a multithreaded program
|
||||||
long as each thread carefully locks out access by any other
|
if objects are not shared between threads or as
|
||||||
thread while it uses any object visible to another thread, i.e.,
|
long each thread carefully locks out access by any other
|
||||||
treat library objects like any other shared resource. In general,
|
thread while it modifies any object visible to another thread.
|
||||||
this requirement includes both read and write access to objects;
|
Unless otherwise documented, the only exceptions to these rules
|
||||||
unless otherwise documented as safe, do not assume that two threads
|
are atomic operations on the types in
|
||||||
may access a shared standard library object at the same time.
|
<code class="filename"><atomic></code>
|
||||||
|
and lock/unlock operations on the standard mutex types in
|
||||||
|
<code class="filename"><mutex></code>. These
|
||||||
|
atomic operations allow concurrent accesses to the same object
|
||||||
|
without introducing data races.
|
||||||
|
</p><p>The following member functions of standard containers can be
|
||||||
|
considered to be const for the purposes of avoiding data races:
|
||||||
|
<code class="code">begin</code>, <code class="code">end</code>, <code class="code">rbegin</code>, <code class="code">rend</code>,
|
||||||
|
<code class="code">front</code>, <code class="code">back</code>, <code class="code">data</code>,
|
||||||
|
<code class="code">find</code>, <code class="code">lower_bound</code>, <code class="code">upper_bound</code>,
|
||||||
|
<code class="code">equal_range</code>, <code class="code">at</code>
|
||||||
|
and, except in associative or unordered associative containers,
|
||||||
|
<code class="code">operator[]</code>. In other words, although they are non-const
|
||||||
|
so that they can return mutable iterators, those member functions
|
||||||
|
will not modify the container.
|
||||||
|
Accessing an iterator might cause a non-modifying access to
|
||||||
|
the container the iterator refers to (for example incrementing a
|
||||||
|
list iterator must access the pointers between nodes, which are part
|
||||||
|
of the container and so conflict with other accesses to the container).
|
||||||
|
</p><p>Programs which follow the rules above will not encounter data
|
||||||
|
races in library code, even when using library types which share
|
||||||
|
state between distinct objects. In the example below the
|
||||||
|
<code class="code">shared_ptr</code> objects share a reference count, but
|
||||||
|
because the code does not perform any non-const operations on the
|
||||||
|
globally-visible object, the library ensures that the reference
|
||||||
|
count updates are atomic and do not introduce data races:
|
||||||
|
</p><pre class="programlisting">
|
||||||
|
std::shared_ptr<int> global_sp;
|
||||||
|
|
||||||
|
void thread_main() {
|
||||||
|
auto local_sp = global_sp; // OK, copy constructor's parameter is reference-to-const
|
||||||
|
|
||||||
|
int i = *global_sp; // OK, operator* is const
|
||||||
|
int j = *local_sp; // OK, does not operate on global_sp
|
||||||
|
|
||||||
|
// *global_sp = 2; // NOT OK, modifies int visible to other threads
|
||||||
|
// *local_sp = 2; // NOT OK, modifies int visible to other threads
|
||||||
|
|
||||||
|
// global_sp.reset(); // NOT OK, reset is non-const
|
||||||
|
local_sp.reset(); // OK, does not operate on global_sp
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
global_sp.reset(new int(1));
|
||||||
|
std::thread t1(thread_main);
|
||||||
|
std::thread t2(thread_main);
|
||||||
|
t1.join();
|
||||||
|
t2.join();
|
||||||
|
}
|
||||||
|
</pre><p>For further details of the C++11 memory model see Hans-J. Boehm's
|
||||||
|
<a class="link" href="http://www.hpl.hp.com/personal/Hans_Boehm/c++mm/user-faq.html">Threads
|
||||||
|
and memory model for C++</a> pages, particularly the <a class="link" href="http://www.hpl.hp.com/personal/Hans_Boehm/c++mm/threadsintro.html">introduction</a>
|
||||||
|
and <a class="link" href="http://www.hpl.hp.com/personal/Hans_Boehm/c++mm/user-faq.html">FAQ</a>.
|
||||||
</p></div><div class="section" title="Atomics"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.concurrency.atomics"/>Atomics</h3></div></div></div><p>
|
</p></div><div class="section" title="Atomics"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.concurrency.atomics"/>Atomics</h3></div></div></div><p>
|
||||||
</p></div><div class="section" title="IO"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.concurrency.io"/>IO</h3></div></div></div><p>This gets a bit tricky. Please read carefully, and bear with me.
|
</p></div><div class="section" title="IO"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.concurrency.io"/>IO</h3></div></div></div><p>This gets a bit tricky. Please read carefully, and bear with me.
|
||||||
</p><div class="section" title="Structure"><div class="titlepage"><div><div><h4 class="title"><a id="concurrency.io.structure"/>Structure</h4></div></div></div><p>A wrapper
|
</p><div class="section" title="Structure"><div class="titlepage"><div><div><h4 class="title"><a id="concurrency.io.structure"/>Structure</h4></div></div></div><p>A wrapper
|
||||||
|
|
|
@ -266,7 +266,7 @@ is called.
|
||||||
}
|
}
|
||||||
catch(...)
|
catch(...)
|
||||||
{ this->_M_setstate(ios_base::badbit); }
|
{ this->_M_setstate(ios_base::badbit); }
|
||||||
</pre></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="using.exceptions.biblio"/>Bibliography</h3></div></div></div><div class="biblioentry" title="System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)"><a id="id631052"/><p><span class="title"><em>
|
</pre></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="using.exceptions.biblio"/>Bibliography</h3></div></div></div><div class="biblioentry" title="System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)"><a id="id461137"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://www.opengroup.org/austin">
|
<a class="link" href="http://www.opengroup.org/austin">
|
||||||
System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
|
System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
|
||||||
</a>
|
</a>
|
||||||
|
@ -275,39 +275,39 @@ is called.
|
||||||
. </span><span class="copyright">Copyright © 2008
|
. </span><span class="copyright">Copyright © 2008
|
||||||
The Open Group/The Institute of Electrical and Electronics
|
The Open Group/The Institute of Electrical and Electronics
|
||||||
Engineers, Inc.
|
Engineers, Inc.
|
||||||
. </span></p></div><div class="biblioentry" title="Error and Exception Handling"><a id="id631082"/><p><span class="title"><em>
|
. </span></p></div><div class="biblioentry" title="Error and Exception Handling"><a id="id461168"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://www.boost.org/community/error_handling.html">
|
<a class="link" href="http://www.boost.org/community/error_handling.html">
|
||||||
Error and Exception Handling
|
Error and Exception Handling
|
||||||
</a>
|
</a>
|
||||||
</em>. </span><span class="author"><span class="firstname">David</span> <span class="surname">Abrahams </span>. </span><span class="publisher"><span class="publishername">
|
</em>. </span><span class="author"><span class="firstname">David</span> <span class="surname">Abrahams </span>. </span><span class="publisher"><span class="publishername">
|
||||||
Boost
|
Boost
|
||||||
. </span></span></p></div><div class="biblioentry" title="Exception-Safety in Generic Components"><a id="id631113"/><p><span class="title"><em>
|
. </span></span></p></div><div class="biblioentry" title="Exception-Safety in Generic Components"><a id="id461199"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://www.boost.org/community/exception_safety.html">
|
<a class="link" href="http://www.boost.org/community/exception_safety.html">
|
||||||
Exception-Safety in Generic Components
|
Exception-Safety in Generic Components
|
||||||
</a>
|
</a>
|
||||||
</em>. </span><span class="author"><span class="firstname">David</span> <span class="surname">Abrahams</span>. </span><span class="publisher"><span class="publishername">
|
</em>. </span><span class="author"><span class="firstname">David</span> <span class="surname">Abrahams</span>. </span><span class="publisher"><span class="publishername">
|
||||||
Boost
|
Boost
|
||||||
. </span></span></p></div><div class="biblioentry" title="Standard Library Exception Policy"><a id="id631144"/><p><span class="title"><em>
|
. </span></span></p></div><div class="biblioentry" title="Standard Library Exception Policy"><a id="id461230"/><p><span class="title"><em>
|
||||||
<a class="link" href="www.open-std.org/jtc1/sc22/wg21/docs/papers/1997/N1077.pdf">
|
<a class="link" href="www.open-std.org/jtc1/sc22/wg21/docs/papers/1997/N1077.pdf">
|
||||||
Standard Library Exception Policy
|
Standard Library Exception Policy
|
||||||
</a>
|
</a>
|
||||||
</em>. </span><span class="author"><span class="firstname">Matt</span> <span class="surname">Austern</span>. </span><span class="publisher"><span class="publishername">
|
</em>. </span><span class="author"><span class="firstname">Matt</span> <span class="surname">Austern</span>. </span><span class="publisher"><span class="publishername">
|
||||||
WG21 N1077
|
WG21 N1077
|
||||||
. </span></span></p></div><div class="biblioentry" title="ia64 c++ abi exception handling"><a id="id631175"/><p><span class="title"><em>
|
. </span></span></p></div><div class="biblioentry" title="ia64 c++ abi exception handling"><a id="id461260"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://gcc.gnu.org/ml/gcc-patches/2001-03/msg00661.html">
|
<a class="link" href="http://gcc.gnu.org/ml/gcc-patches/2001-03/msg00661.html">
|
||||||
ia64 c++ abi exception handling
|
ia64 c++ abi exception handling
|
||||||
</a>
|
</a>
|
||||||
</em>. </span><span class="author"><span class="firstname">Richard</span> <span class="surname">Henderson</span>. </span><span class="publisher"><span class="publishername">
|
</em>. </span><span class="author"><span class="firstname">Richard</span> <span class="surname">Henderson</span>. </span><span class="publisher"><span class="publishername">
|
||||||
GNU
|
GNU
|
||||||
. </span></span></p></div><div class="biblioentry" title="Appendix E: Standard-Library Exception Safety"><a id="id631206"/><p><span class="title"><em>
|
. </span></span></p></div><div class="biblioentry" title="Appendix E: Standard-Library Exception Safety"><a id="id461291"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://www.research.att.com/~bs/3rd_safe.pdf">
|
<a class="link" href="http://www.research.att.com/~bs/3rd_safe.pdf">
|
||||||
Appendix E: Standard-Library Exception Safety
|
Appendix E: Standard-Library Exception Safety
|
||||||
</a>
|
</a>
|
||||||
</em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span></p></div><div class="biblioentry"><a id="id631229"/><p><span class="citetitle"><em class="citetitle">
|
</em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span></p></div><div class="biblioentry"><a id="id461315"/><p><span class="citetitle"><em class="citetitle">
|
||||||
Exceptional C++
|
Exceptional C++
|
||||||
</em>. </span><span class="pagenums">
|
</em>. </span><span class="pagenums">
|
||||||
Exception-Safety Issues and Techniques
|
Exception-Safety Issues and Techniques
|
||||||
. </span><span class="author"><span class="firstname">Herb</span> <span class="surname">Sutter</span>. </span></p></div><div class="biblioentry" title="GCC Bug 25191: exception_defines.h #defines try/catch"><a id="id631249"/><p><span class="title"><em>
|
. </span><span class="author"><span class="firstname">Herb</span> <span class="surname">Sutter</span>. </span></p></div><div class="biblioentry" title="GCC Bug 25191: exception_defines.h #defines try/catch"><a id="id461335"/><p><span class="title"><em>
|
||||||
<a class="link" href="http://gcc.gnu.org/PR25191">
|
<a class="link" href="http://gcc.gnu.org/PR25191">
|
||||||
GCC Bug 25191: exception_defines.h #defines try/catch
|
GCC Bug 25191: exception_defines.h #defines try/catch
|
||||||
</a>
|
</a>
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -7,8 +7,8 @@
|
||||||
Standard Contents
|
Standard Contents
|
||||||
</th><td align="right"> <a accesskey="n" href="pairs.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 6. Utilities"><div class="titlepage"><div><div><h2 class="title"><a id="std.util"/>Chapter 6.
|
</th><td align="right"> <a accesskey="n" href="pairs.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="Chapter 6. Utilities"><div class="titlepage"><div><div><h2 class="title"><a id="std.util"/>Chapter 6.
|
||||||
Utilities
|
Utilities
|
||||||
<a id="id632871" class="indexterm"/>
|
<a id="id462956" class="indexterm"/>
|
||||||
</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="utilities.html#std.util.functors">Functors</a></span></dt><dt><span class="section"><a href="pairs.html">Pairs</a></span></dt><dt><span class="section"><a href="memory.html">Memory</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#std.util.memory.allocator">Allocators</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#allocator.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#allocator.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#allocator.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id633362">Interface Design</a></span></dt><dt><span class="section"><a href="memory.html#id633392">Selecting Default Allocation Policy</a></span></dt><dt><span class="section"><a href="memory.html#id633502">Disabling Memory Caching</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#allocator.using">Using a Specific Allocator</a></span></dt><dt><span class="section"><a href="memory.html#allocator.custom">Custom Allocators</a></span></dt><dt><span class="section"><a href="memory.html#allocator.ext">Extension Allocators</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.auto_ptr">auto_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#auto_ptr.limitations">Limitations</a></span></dt><dt><span class="section"><a href="memory.html#auto_ptr.using">Use in Containers</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.shared_ptr">shared_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#shared_ptr.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id634511">Class Hierarchy</a></span></dt><dt><span class="section"><a href="memory.html#id634689">Thread Safety</a></span></dt><dt><span class="section"><a href="memory.html#id634759">Selecting Lock Policy</a></span></dt><dt><span class="section"><a href="memory.html#id634881">Dual C++0x and TR1 Implementation</a></span></dt><dt><span class="section"><a href="memory.html#id634937">Related functions and classes</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.using">Use</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id635086">Examples</a></span></dt><dt><span class="section"><a href="memory.html#id635116">Unresolved Issues</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.ack">Acknowledgments</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="traits.html">Traits</a></span></dt></dl></div><div class="section" title="Functors"><div class="titlepage"><div><div><h2 class="title"><a id="std.util.functors"/>Functors</h2></div></div></div><p>If you don't know what functors are, you're not alone. Many people
|
</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="utilities.html#std.util.functors">Functors</a></span></dt><dt><span class="section"><a href="pairs.html">Pairs</a></span></dt><dt><span class="section"><a href="memory.html">Memory</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#std.util.memory.allocator">Allocators</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#allocator.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#allocator.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#allocator.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id463447">Interface Design</a></span></dt><dt><span class="section"><a href="memory.html#id463477">Selecting Default Allocation Policy</a></span></dt><dt><span class="section"><a href="memory.html#id463588">Disabling Memory Caching</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#allocator.using">Using a Specific Allocator</a></span></dt><dt><span class="section"><a href="memory.html#allocator.custom">Custom Allocators</a></span></dt><dt><span class="section"><a href="memory.html#allocator.ext">Extension Allocators</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.auto_ptr">auto_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#auto_ptr.limitations">Limitations</a></span></dt><dt><span class="section"><a href="memory.html#auto_ptr.using">Use in Containers</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.shared_ptr">shared_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#shared_ptr.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id464596">Class Hierarchy</a></span></dt><dt><span class="section"><a href="memory.html#id464775">Thread Safety</a></span></dt><dt><span class="section"><a href="memory.html#id464844">Selecting Lock Policy</a></span></dt><dt><span class="section"><a href="memory.html#id464966">Dual C++0x and TR1 Implementation</a></span></dt><dt><span class="section"><a href="memory.html#id465022">Related functions and classes</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.using">Use</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#id465171">Examples</a></span></dt><dt><span class="section"><a href="memory.html#id465201">Unresolved Issues</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.ack">Acknowledgments</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="traits.html">Traits</a></span></dt></dl></div><div class="section" title="Functors"><div class="titlepage"><div><div><h2 class="title"><a id="std.util.functors"/>Functors</h2></div></div></div><p>If you don't know what functors are, you're not alone. Many people
|
||||||
get slightly the wrong idea. In the interest of not reinventing
|
get slightly the wrong idea. In the interest of not reinventing
|
||||||
the wheel, we will refer you to the introduction to the functor
|
the wheel, we will refer you to the introduction to the functor
|
||||||
concept written by SGI as chapter of their STL, in
|
concept written by SGI as chapter of their STL, in
|
||||||
|
|
Loading…
Reference in New Issue