Update libstdc++ API Evolution documentation

* doc/xml/manual/allocator.xml: Link to table documenting evolution
	of extension allocators.
	* doc/xml/manual/evolution.xml: Use angle brackets for header names.
	Document new headers in 7.2, 8.1 and 9.1 releases.
	* doc/xml/manual/using.xml: Adjust link target for new_allocator.
	* doc/html/*: Regenerate.

From-SVN: r269794
This commit is contained in:
Jonathan Wakely 2019-03-19 09:38:41 +00:00 committed by Jonathan Wakely
parent edff2a0574
commit cad3fc8c59
11 changed files with 242 additions and 151 deletions

View File

@ -1,3 +1,12 @@
2019-03-19 Jonathan Wakely <jwakely@redhat.com>
* doc/xml/manual/allocator.xml: Link to table documenting evolution
of extension allocators.
* doc/xml/manual/evolution.xml: Use angle brackets for header names.
Document new headers in 7.2, 8.1 and 9.1 releases.
* doc/xml/manual/using.xml: Adjust link target for new_allocator.
* doc/html/*: Regenerate.
2019-03-12 John David Anglin <dave.anglin@bell.net>
PR libstdc++/89461

File diff suppressed because one or more lines are too long

View File

@ -12,21 +12,21 @@ are added. These files are placed into
the <code class="filename">include/backward</code> directory and a deprecated warning
is added that notifies on inclusion (<code class="literal">-Wno-deprecated</code>
deactivates the warning.)
</p><p>Deprecated include <code class="filename">backward/strstream</code> added.</p><p>Removal of include <code class="filename">builtinbuf.h</code>, <code class="filename">indstream.h</code>, <code class="filename">parsestream.h</code>, <code class="filename">PlotFile.h</code>, <code class="filename">SFile.h</code>, <code class="filename">stdiostream.h</code>, and <code class="filename">stream.h</code>.
</p><p>Deprecated include <code class="filename">&lt;backward/strstream&gt;</code> added.</p><p>Removal of include <code class="filename">&lt;builtinbuf.h&gt;</code>, <code class="filename">&lt;indstream.h&gt;</code>, <code class="filename">&lt;parsestream.h&gt;</code>, <code class="filename">&lt;PlotFile.h&gt;</code>, <code class="filename">&lt;SFile.h&gt;</code>, <code class="filename">&lt;stdiostream.h&gt;</code>, and <code class="filename">&lt;stream.h&gt;</code>.
</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_310"></a><code class="constant">3.1</code></h3></div></div></div><p>
</p><p>
Extensions from SGI/HP moved from <code class="code">namespace std</code>
to <code class="code">namespace __gnu_cxx</code>. As part of this, the following
new includes are
added: <code class="filename">ext/algorithm</code>, <code class="filename">ext/functional</code>, <code class="filename">ext/iterator</code>, <code class="filename">ext/memory</code>, and <code class="filename">ext/numeric</code>.
added: <code class="filename">&lt;ext/algorithm&gt;</code>, <code class="filename">&lt;ext/functional&gt;</code>, <code class="filename">&lt;ext/iterator&gt;</code>, <code class="filename">&lt;ext/memory&gt;</code>, and <code class="filename">&lt;ext/numeric&gt;</code>.
</p><p>
Extensions to <code class="code">basic_filebuf</code> introduced: <code class="code">__gnu_cxx::enc_filebuf</code>, and <code class="code">__gnu_cxx::stdio_filebuf</code>.
</p><p>
Extensions to tree data structures added in <code class="filename">ext/rb_tree</code>.
Extensions to tree data structures added in <code class="filename">&lt;ext/rb_tree&gt;</code>.
</p><p>
Removal of <code class="filename">ext/tree</code>, moved to <code class="filename">backward/tree.h</code>.
Removal of <code class="filename">&lt;ext/tree&gt;</code>, moved to <code class="filename">&lt;backward/tree.h&gt;</code>.
</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_320"></a><code class="constant">3.2</code></h3></div></div></div><p>
</p><p>Symbol versioning introduced for shared library.</p><p>Removal of include <code class="filename">backward/strstream.h</code>.</p><p>Allocator changes. Change <code class="code">__malloc_alloc</code> to <code class="code">malloc_allocator</code> and <code class="code">__new_alloc</code> to <code class="code">new_allocator</code>. </p><p> For GCC releases from 2.95 through the 3.1 series, defining
</p><p>Symbol versioning introduced for shared library.</p><p>Removal of include <code class="filename">&lt;backward/strstream.h&gt;</code>.</p><p>Allocator changes. Change <code class="code">__malloc_alloc</code> to <code class="code">malloc_allocator</code> and <code class="code">__new_alloc</code> to <code class="code">new_allocator</code>. </p><p> For GCC releases from 2.95 through the 3.1 series, defining
<code class="literal">__USE_MALLOC</code> on the gcc command line would change the
default allocation strategy to instead use <code class="code"> malloc</code> and
<code class="function">free</code>. For the 3.2 and 3.3 release series the same
@ -39,7 +39,7 @@ Removal of <code class="filename">ext/tree</code>, moved to <code class="filenam
</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_340"></a><code class="constant">3.4</code></h3></div></div></div><p>
</p><p>
Large file support.
</p><p> Extensions for generic characters and <code class="code">char_traits</code> added in <code class="filename">ext/pod_char_traits.h</code>.
</p><p> Extensions for generic characters and <code class="code">char_traits</code> added in <code class="filename">&lt;ext/pod_char_traits.h&gt;</code>.
</p><p>
Support for <code class="code">wchar_t</code> specializations of <code class="code">basic_filebuf</code> enhanced to support <code class="code">UTF-8</code> and <code class="code">Unicode</code>, depending on host. More hosts support basic <code class="code">wchar_t</code> functionality.
</p><p>
@ -47,7 +47,7 @@ Support for <code class="code">char_traits</code> beyond builtin types.
</p><p>
Conformant <code class="code">allocator</code> class and usage in containers. As
part of this, the following extensions are
added: <code class="filename">ext/bitmap_allocator.h</code>, <code class="filename">ext/debug_allocator.h</code>, <code class="filename">ext/mt_allocator.h</code>, <code class="filename">ext/malloc_allocator.h</code>,<code class="filename">ext/new_allocator.h</code>, <code class="filename">ext/pool_allocator.h</code>.
added: <code class="filename">&lt;ext/bitmap_allocator.h&gt;</code>, <code class="filename">&lt;ext/debug_allocator.h&gt;</code>, <code class="filename">&lt;ext/mt_allocator.h&gt;</code>, <code class="filename">&lt;ext/malloc_allocator.h&gt;</code>,<code class="filename">&lt;ext/new_allocator.h&gt;</code>, <code class="filename">&lt;ext/pool_allocator.h&gt;</code>.
</p><p>
This is a change from all previous versions, and may require
source-level changes due to allocator-related changes to structures
@ -77,75 +77,75 @@ _Alloc_traits</code> have been removed.
<span class="type">__alloc</span> to select an underlying allocator that
satisfied memory allocation requests. The selection of this
underlying allocator was not user-configurable.
</p><div class="table"><a id="table.extension_allocators"></a><p class="title"><strong>Table B.6. Extension Allocators</strong></p><div class="table-contents"><table class="table" summary="Extension Allocators" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Allocator (3.4)</th><th align="left">Header (3.4)</th><th align="left">Allocator (3.[0-3])</th><th align="left">Header (3.[0-3])</th></tr></thead><tbody><tr><td align="left"><code class="classname">__gnu_cxx::new_allocator&lt;T&gt;</code></td><td align="left"><code class="filename">ext/new_allocator.h</code></td><td align="left"><code class="classname">std::__new_alloc</code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::malloc_allocator&lt;T&gt;</code></td><td align="left"><code class="filename">ext/malloc_allocator.h</code></td><td align="left"><code class="classname">std::__malloc_alloc_template&lt;int&gt;</code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::debug_allocator&lt;T&gt;</code></td><td align="left"><code class="filename">ext/debug_allocator.h</code></td><td align="left"><code class="classname">std::debug_alloc&lt;T&gt;</code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::__pool_alloc&lt;T&gt;</code></td><td align="left"><code class="filename">ext/pool_allocator.h</code></td><td align="left"><code class="classname">std::__default_alloc_template&lt;bool,int&gt;</code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::__mt_alloc&lt;T&gt;</code></td><td align="left"><code class="filename">ext/mt_allocator.h</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left"><code class="classname">__gnu_cxx::bitmap_allocator&lt;T&gt;</code></td><td align="left"><code class="filename">ext/bitmap_allocator.h</code></td><td align="left"> </td><td align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><p> Releases after gcc-3.4 have continued to add to the collection
</p><div class="table"><a id="table.extension_allocators"></a><p class="title"><strong>Table B.6. Extension Allocators</strong></p><div class="table-contents"><table class="table" summary="Extension Allocators" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Allocator (3.4)</th><th align="left">Header (3.4)</th><th align="left">Allocator (3.[0-3])</th><th align="left">Header (3.[0-3])</th></tr></thead><tbody><tr><td align="left"><code class="classname">__gnu_cxx::new_allocator&lt;T&gt;</code></td><td align="left"><code class="filename">&lt;ext/new_allocator.h&gt;</code></td><td align="left"><code class="classname">std::__new_alloc</code></td><td align="left"><code class="filename">&lt;memory&gt;</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::malloc_allocator&lt;T&gt;</code></td><td align="left"><code class="filename">&lt;ext/malloc_allocator.h&gt;</code></td><td align="left"><code class="classname">std::__malloc_alloc_template&lt;int&gt;</code></td><td align="left"><code class="filename">&lt;memory&gt;</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::debug_allocator&lt;T&gt;</code></td><td align="left"><code class="filename">&lt;ext/debug_allocator.h&gt;</code></td><td align="left"><code class="classname">std::debug_alloc&lt;T&gt;</code></td><td align="left"><code class="filename">&lt;memory&gt;</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::__pool_alloc&lt;T&gt;</code></td><td align="left"><code class="filename">&lt;ext/pool_allocator.h&gt;</code></td><td align="left"><code class="classname">std::__default_alloc_template&lt;bool,int&gt;</code></td><td align="left"><code class="filename">&lt;memory&gt;</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::__mt_alloc&lt;T&gt;</code></td><td align="left"><code class="filename">&lt;ext/mt_allocator.h&gt;</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left"><code class="classname">__gnu_cxx::bitmap_allocator&lt;T&gt;</code></td><td align="left"><code class="filename">&lt;ext/bitmap_allocator.h&gt;</code></td><td align="left"> </td><td align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><p> Releases after gcc-3.4 have continued to add to the collection
of available allocators. All of these new allocators are
standard-style. The following table includes details, along with
the first released version of GCC that included the extension allocator.
</p><div class="table"><a id="table.extension_allocators2"></a><p class="title"><strong>Table B.7. Extension Allocators Continued</strong></p><div class="table-contents"><table class="table" summary="Extension Allocators Continued" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left">Allocator</th><th align="left">Include</th><th align="left">Version</th></tr></thead><tbody><tr><td align="left"><code class="classname">__gnu_cxx::array_allocator&lt;T&gt;</code></td><td align="left"><code class="filename">ext/array_allocator.h</code></td><td align="left">4.0.0</td></tr><tr><td align="left"><code class="classname">__gnu_cxx::throw_allocator&lt;T&gt;</code></td><td align="left"><code class="filename">ext/throw_allocator.h</code></td><td align="left">4.2.0</td></tr></tbody></table></div></div><br class="table-break" /><p>
</p><div class="table"><a id="table.extension_allocators2"></a><p class="title"><strong>Table B.7. Extension Allocators Continued</strong></p><div class="table-contents"><table class="table" summary="Extension Allocators Continued" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left">Allocator</th><th align="left">Include</th><th align="left">Version</th></tr></thead><tbody><tr><td align="left"><code class="classname">__gnu_cxx::array_allocator&lt;T&gt;</code></td><td align="left"><code class="filename">&lt;ext/array_allocator.h&gt;</code></td><td align="left">4.0.0</td></tr><tr><td align="left"><code class="classname">__gnu_cxx::throw_allocator&lt;T&gt;</code></td><td align="left"><code class="filename">&lt;ext/throw_allocator.h&gt;</code></td><td align="left">4.2.0</td></tr></tbody></table></div></div><br class="table-break" /><p>
Debug mode first appears.
</p><p>
Precompiled header support <acronym class="acronym">PCH</acronym> support.
</p><p>
Macro guard for changed, from <code class="literal">_GLIBCPP_</code> to <code class="literal">_GLIBCXX_</code>.
</p><p>
Extension <code class="filename">ext/stdio_sync_filebuf.h</code> added.
Extension <code class="filename">&lt;ext/stdio_sync_filebuf.h&gt;</code> added.
</p><p>
Extension <code class="filename">ext/demangle.h</code> added.
Extension <code class="filename">&lt;ext/demangle.h&gt;</code> added.
</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_400"></a><code class="constant">4.0</code></h3></div></div></div><p>
</p><p>
TR1 features first appear.
</p><p>
Extension allocator <code class="filename">ext/array_allocator.h</code> added.
Extension allocator <code class="filename">&lt;ext/array_allocator.h&gt;</code> added.
</p><p>
Extension <code class="code">codecvt</code> specializations moved to <code class="filename">ext/codecvt_specializations.h</code>.
Extension <code class="code">codecvt</code> specializations moved to <code class="filename">&lt;ext/codecvt_specializations.h&gt;</code>.
</p><p>
Removal of <code class="filename">ext/demangle.h</code>.
Removal of <code class="filename">&lt;ext/demangle.h&gt;</code>.
</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_410"></a><code class="constant">4.1</code></h3></div></div></div><p>
</p><p>
Removal of <code class="filename">cassert</code> from all standard headers: now has to be explicitly included for <code class="code">std::assert</code> calls.
Removal of <code class="filename">&lt;cassert&gt;</code> from all standard headers: now has to be explicitly included for <code class="code">std::assert</code> calls.
</p><p> Extensions for policy-based data structures first added. New includes,
types, namespace <code class="code">pb_assoc</code>.
</p><p> Extensions for typelists added in <code class="filename">ext/typelist.h</code>.
</p><p> Extension for policy-based <code class="code">basic_string</code> first added: <code class="code">__gnu_cxx::__versa_string</code> in <code class="filename">ext/vstring.h</code>.
</p><p> Extensions for typelists added in <code class="filename">&lt;ext/typelist.h&gt;</code>.
</p><p> Extension for policy-based <code class="code">basic_string</code> first added: <code class="code">__gnu_cxx::__versa_string</code> in <code class="filename">&lt;ext/vstring.h&gt;</code>.
</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_420"></a><code class="constant">4.2</code></h3></div></div></div><p>
</p><p> Default visibility attributes applied to <code class="code">namespace std</code>. Support for <code class="code">-fvisibility</code>.
</p><p>TR1 <code class="filename">random</code>, <code class="filename">complex</code>, and C compatibility headers added.</p><p> Extensions for concurrent programming consolidated
into <code class="filename">ext/concurrence.h</code> and <code class="filename">ext/atomicity.h</code>,
</p><p>TR1 <code class="filename">&lt;random&gt;</code>, <code class="filename">&lt;complex&gt;</code>, and C compatibility headers added.</p><p> Extensions for concurrent programming consolidated
into <code class="filename">&lt;ext/concurrence.h&gt;</code> and <code class="filename">&lt;ext/atomicity.h&gt;</code>,
including change of namespace to <code class="code">__gnu_cxx</code> in some
cases. Added types
include <code class="code">_Lock_policy</code>, <code class="code">__concurrence_lock_error</code>, <code class="code">__concurrence_unlock_error</code>, <code class="code">__mutex</code>, <code class="code">__scoped_lock</code>.</p><p> Extensions for type traits consolidated
into <code class="filename">ext/type_traits.h</code>. Additional traits are added
into <code class="filename">&lt;ext/type_traits.h&gt;</code>. Additional traits are added
(<code class="code">__conditional_type</code>, <code class="code">__enable_if</code>, others.)
</p><p> Extensions for policy-based data structures revised. New includes,
types, namespace moved to <code class="code">__pb_ds</code>.
</p><p> Extensions for debug mode modified: now nested in <code class="code">namespace
std::__debug</code> and extensions in <code class="code">namespace
__gnu_cxx::__debug</code>.</p><p> Extensions added: <code class="filename">ext/typelist.h</code>
and <code class="filename">ext/throw_allocator.h</code>.
__gnu_cxx::__debug</code>.</p><p> Extensions added: <code class="filename">&lt;ext/typelist.h&gt;</code>
and <code class="filename">&lt;ext/throw_allocator.h&gt;</code>.
</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_430"></a><code class="constant">4.3</code></h3></div></div></div><p>
</p><p>
C++0X features first appear.
</p><p>TR1 <code class="filename">regex</code> and <code class="filename">cmath</code>'s mathematical special function added.
</p><p>TR1 <code class="filename">&lt;regex&gt;</code> and <code class="filename">&lt;cmath&gt;</code>'s mathematical special function added.
</p><p>
Backward include edit.
</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Removed</p><p>
<code class="filename">algobase.h</code> <code class="filename">algo.h</code> <code class="filename">alloc.h</code> <code class="filename">bvector.h</code> <code class="filename">complex.h</code>
<code class="filename">defalloc.h</code> <code class="filename">deque.h</code> <code class="filename">fstream.h</code> <code class="filename">function.h</code> <code class="filename">hash_map.h</code> <code class="filename">hash_set.h</code>
<code class="filename">hashtable.h</code> <code class="filename">heap.h</code> <code class="filename">iomanip.h</code> <code class="filename">iostream.h</code> <code class="filename">istream.h</code> <code class="filename">iterator.h</code>
<code class="filename">list.h</code> <code class="filename">map.h</code> <code class="filename">multimap.h</code> <code class="filename">multiset.h</code> <code class="filename">new.h</code> <code class="filename">ostream.h</code> <code class="filename">pair.h</code> <code class="filename">queue.h</code> <code class="filename">rope.h</code> <code class="filename">set.h</code> <code class="filename">slist.h</code> <code class="filename">stack.h</code> <code class="filename">streambuf.h</code> <code class="filename">stream.h</code> <code class="filename">tempbuf.h</code>
<code class="filename">tree.h</code> <code class="filename">vector.h</code>
<code class="filename">&lt;algobase.h&gt;</code> <code class="filename">&lt;algo.h&gt;</code> <code class="filename">&lt;alloc.h&gt;</code> <code class="filename">&lt;bvector.h&gt;</code> <code class="filename">&lt;complex.h&gt;</code>
<code class="filename">&lt;defalloc.h&gt;</code> <code class="filename">&lt;deque.h&gt;</code> <code class="filename">&lt;fstream.h&gt;</code> <code class="filename">&lt;function.h&gt;</code> <code class="filename">&lt;hash_map.h&gt;</code> <code class="filename">&lt;hash_set.h&gt;</code>
<code class="filename">&lt;hashtable.h&gt;</code> <code class="filename">&lt;heap.h&gt;</code> <code class="filename">&lt;iomanip.h&gt;</code> <code class="filename">&lt;iostream.h&gt;</code> <code class="filename">&lt;istream.h&gt;</code> <code class="filename">&lt;iterator.h&gt;</code>
<code class="filename">&lt;list.h&gt;</code> <code class="filename">&lt;map.h&gt;</code> <code class="filename">&lt;multimap.h&gt;</code> <code class="filename">&lt;multiset.h&gt;</code> <code class="filename">&lt;new.h&gt;</code> <code class="filename">&lt;ostream.h&gt;</code> <code class="filename">&lt;pair.h&gt;</code> <code class="filename">&lt;queue.h&gt;</code> <code class="filename">&lt;rope.h&gt;</code> <code class="filename">&lt;set.h&gt;</code> <code class="filename">&lt;slist.h&gt;</code> <code class="filename">&lt;stack.h&gt;</code> <code class="filename">&lt;streambuf.h&gt;</code> <code class="filename">&lt;stream.h&gt;</code> <code class="filename">&lt;tempbuf.h&gt;</code>
<code class="filename">&lt;tree.h&gt;</code> <code class="filename">&lt;vector.h&gt;</code>
</p></li><li class="listitem"><p>Added</p><p>
<code class="filename">hash_map</code> and <code class="filename">hash_set</code>
<code class="filename">&lt;hash_map&gt;</code> and <code class="filename">&lt;hash_set&gt;</code>
</p></li><li class="listitem"><p>Added in C++11</p><p>
<code class="filename">auto_ptr.h</code> and <code class="filename">binders.h</code>
<code class="filename">&lt;auto_ptr.h&gt;</code> and <code class="filename">&lt;binders.h&gt;</code>
</p></li></ul></div><p>
Header dependency streamlining.
</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><code class="filename">algorithm</code> no longer includes <code class="filename">climits</code>, <code class="filename">cstring</code>, or <code class="filename">iosfwd</code> </p></li><li class="listitem"><p><code class="filename">bitset</code> no longer includes <code class="filename">istream</code> or <code class="filename">ostream</code>, adds <code class="filename">iosfwd</code> </p></li><li class="listitem"><p><code class="filename">functional</code> no longer includes <code class="filename">cstddef</code></p></li><li class="listitem"><p><code class="filename">iomanip</code> no longer includes <code class="filename">istream</code>, <code class="filename">istream</code>, or <code class="filename">functional</code>, adds <code class="filename">ioswd</code> </p></li><li class="listitem"><p><code class="filename">numeric</code> no longer includes <code class="filename">iterator</code></p></li><li class="listitem"><p><code class="filename">string</code> no longer includes <code class="filename">algorithm</code> or <code class="filename">memory</code></p></li><li class="listitem"><p><code class="filename">valarray</code> no longer includes <code class="filename">numeric</code> or <code class="filename">cstdlib</code></p></li><li class="listitem"><p><code class="filename">tr1/hashtable</code> no longer includes <code class="filename">memory</code> or <code class="filename">functional</code></p></li><li class="listitem"><p><code class="filename">tr1/memory</code> no longer includes <code class="filename">algorithm</code></p></li><li class="listitem"><p><code class="filename">tr1/random</code> no longer includes <code class="filename">algorithm</code> or <code class="filename">fstream</code></p></li></ul></div><p>
Debug mode for <code class="filename">unordered_map</code> and <code class="filename">unordered_set</code>.
</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><code class="filename">&lt;algorithm&gt;</code> no longer includes <code class="filename">&lt;climits&gt;</code>, <code class="filename">&lt;cstring&gt;</code>, or <code class="filename">&lt;iosfwd&gt;</code> </p></li><li class="listitem"><p><code class="filename">&lt;bitset&gt;</code> no longer includes <code class="filename">&lt;istream&gt;</code> or <code class="filename">&lt;ostream&gt;</code>, adds <code class="filename">&lt;iosfwd&gt;</code> </p></li><li class="listitem"><p><code class="filename">&lt;functional&gt;</code> no longer includes <code class="filename">&lt;cstddef&gt;</code></p></li><li class="listitem"><p><code class="filename">&lt;iomanip&gt;</code> no longer includes <code class="filename">&lt;istream&gt;</code>, <code class="filename">&lt;istream&gt;</code>, or <code class="filename">&lt;functional&gt;</code>, adds <code class="filename">&lt;ioswd&gt;</code> </p></li><li class="listitem"><p><code class="filename">&lt;numeric&gt;</code> no longer includes <code class="filename">&lt;iterator&gt;</code></p></li><li class="listitem"><p><code class="filename">&lt;string&gt;</code> no longer includes <code class="filename">&lt;algorithm&gt;</code> or <code class="filename">&lt;memory&gt;</code></p></li><li class="listitem"><p><code class="filename">&lt;valarray&gt;</code> no longer includes <code class="filename">&lt;numeric&gt;</code> or <code class="filename">&lt;cstdlib&gt;</code></p></li><li class="listitem"><p><code class="filename">&lt;tr1/hashtable&gt;</code> no longer includes <code class="filename">&lt;memory&gt;</code> or <code class="filename">&lt;functional&gt;</code></p></li><li class="listitem"><p><code class="filename">&lt;tr1/memory&gt;</code> no longer includes <code class="filename">&lt;algorithm&gt;</code></p></li><li class="listitem"><p><code class="filename">&lt;tr1/random&gt;</code> no longer includes <code class="filename">&lt;algorithm&gt;</code> or <code class="filename">&lt;fstream&gt;</code></p></li></ul></div><p>
Debug mode for <code class="filename">&lt;unordered_map&gt;</code> and <code class="filename">&lt;unordered_set&gt;</code>.
</p><p>
Parallel mode first appears.
</p><p>Variadic template implementations of items in <code class="filename">tuple</code> and
<code class="filename">functional</code>.
</p><p>Variadic template implementations of items in <code class="filename">&lt;tuple&gt;</code> and
<code class="filename">&lt;functional&gt;</code>.
</p><p>Default <code class="code">what</code> implementations give more elaborate
exception strings for <code class="code">bad_cast</code>,
<code class="code">bad_typeid</code>, <code class="code">bad_exception</code>, and
@ -160,20 +160,20 @@ C++0X features.
</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
Added.
</p><p>
<code class="filename">atomic</code>,
<code class="filename">chrono</code>,
<code class="filename">condition_variable</code>,
<code class="filename">forward_list</code>,
<code class="filename">initializer_list</code>,
<code class="filename">mutex</code>,
<code class="filename">ratio</code>,
<code class="filename">thread</code>
<code class="filename">&lt;atomic&gt;</code>,
<code class="filename">&lt;chrono&gt;</code>,
<code class="filename">&lt;condition_variable&gt;</code>,
<code class="filename">&lt;forward_list&gt;</code>,
<code class="filename">&lt;initializer_list&gt;</code>,
<code class="filename">&lt;mutex&gt;</code>,
<code class="filename">&lt;ratio&gt;</code>,
<code class="filename">&lt;thread&gt;</code>
</p></li><li class="listitem"><p>
Updated and improved.
</p><p>
<code class="filename">algorithm</code>,
<code class="filename">system_error</code>,
<code class="filename">type_traits</code>
<code class="filename">&lt;algorithm&gt;</code>,
<code class="filename">&lt;system_error&gt;</code>,
<code class="filename">&lt;type_traits&gt;</code>
</p></li><li class="listitem"><p>
Use of the GNU extension namespace association converted to inline namespaces.
</p></li><li class="listitem"><p>
@ -204,8 +204,8 @@ and <code class="literal">catch</code> to <code class="literal">__catch</code>.
Audit of internal mutex usage, conversion to functions returning static
local mutex.
</p><p> Extensions
added: <code class="filename">ext/pointer.h</code>
and <code class="filename">ext/extptr_allocator.h</code>. Support
added: <code class="filename">&lt;ext/pointer.h&gt;</code>
and <code class="filename">&lt;ext/extptr_allocator.h&gt;</code>. Support
for non-standard pointer types has been added
to <code class="classname">vector</code>
and <code class="classname">forward_list</code>.
@ -215,15 +215,15 @@ C++0X features.
</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
Added.
</p><p>
<code class="filename">functional</code>,
<code class="filename">future</code>,
<code class="filename">random</code>
<code class="filename">&lt;functional&gt;</code>,
<code class="filename">&lt;future&gt;</code>,
<code class="filename">&lt;random&gt;</code>
</p></li><li class="listitem"><p>
Updated and improved.
</p><p>
<code class="filename">atomic</code>,
<code class="filename">system_error</code>,
<code class="filename">type_traits</code>
<code class="filename">&lt;atomic&gt;</code>,
<code class="filename">&lt;system_error&gt;</code>,
<code class="filename">&lt;type_traits&gt;</code>
</p></li><li class="listitem"><p>
Add support for explicit operators and standard layout types.
</p></li></ul></div><p>
@ -236,14 +236,14 @@ Python pretty-printers are added for use with appropriately-advanced versions of
Audit for application of function attributes nothrow, const, pure, and noreturn.
</p><p>
The default behavior for comparing typeinfo names changed, so
in <code class="filename">typeinfo</code>, <code class="literal">__GXX_MERGED_TYPEINFO_NAMES</code>
in <code class="filename">&lt;typeinfo&gt;</code>, <code class="literal">__GXX_MERGED_TYPEINFO_NAMES</code>
now defaults to zero.
</p><p> Extensions modified: <code class="filename">ext/throw_allocator.h</code>.
</p><p> Extensions modified: <code class="filename">&lt;ext/throw_allocator.h&gt;</code>.
</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_460"></a><code class="constant">4.6</code></h3></div></div></div><p>
Use constexpr and nullptr where appropriate throughout the library.
</p><p>
The library was updated to avoid including
<code class="filename">stddef.h</code> in order
<code class="filename">&lt;stddef.h&gt;</code> in order
to reduce namespace pollution.
</p><p>Reference-count annotations to assist data race detectors.
</p><p>
@ -255,7 +255,7 @@ now defaults to zero.
standard.
</p><p>A new clocale model for newlib is available.</p><p>
The library was updated to avoid including
<code class="filename">unistd.h</code> in order
<code class="filename">&lt;unistd.h&gt;</code> in order
to reduce namespace pollution.
</p><p>Debug Mode was improved for unordered containers. </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_480"></a><code class="constant">4.8</code></h3></div></div></div><p>
New random number engines and distributions.
@ -314,7 +314,11 @@ now defaults to zero.
<code class="classname">has_trivial_default_constructor</code>,
<code class="classname">has_trivial_copy_constructor</code> and
<code class="classname">has_trivial_copy_assign</code> removed.
</p><p> Profile Mode was deprecated. </p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="api.rel_73"></a><code class="constant">7.3</code></h4></div></div></div><p>
</p><p> Profile Mode was deprecated. </p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="api.rel_72"></a><code class="constant">7.2</code></h4></div></div></div><p>
Library Fundamentals TS header
<code class="filename">&lt;experimental/source_location&gt;</code>
added.
</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="api.rel_73"></a><code class="constant">7.3</code></h4></div></div></div><p>
Including new C++14 or C++17 headers without a suitable <code class="option">-std</code>
no longer causes compilation to fail via <code class="literal">#error</code>.
Instead the header is simply empty and doesn't define anything.
@ -322,7 +326,13 @@ now defaults to zero.
The exceptions thrown by iostreams can now be caught by handlers for either
version of <code class="classname">std::ios_base::failure</code>.
</p><p>
Improved experimental C++17 support. Headers
<code class="filename">&lt;charconv&gt;</code> and
<code class="filename">&lt;filesystem&gt;</code>.
Experimental implementation of the C++17 Filesystem library added.
</p><p>
Experimental C++2a support
(<code class="function">to_address</code> and <code class="classname">endian</code>).
</p><p>
AddressSanitizer annotations added to <code class="classname">std::vector</code>
to detect out-of-range accesses to the unused capacity of a vector.
@ -356,4 +366,28 @@ now defaults to zero.
For the non-default <code class="option">--enable-symvers=gnu-versioned-namespace</code>
configuration, the shared library SONAME has been changed to
<code class="filename">libstdc++.so.8</code>.
</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_91"></a><code class="constant">9</code></h3></div></div></div><p>
C++17 header
<code class="filename">&lt;memory_resource&gt;</code>
added.
</p><p>
Experimental C++2a support improved, with new headers
<code class="filename">&lt;bit&gt;</code> and
<code class="filename">&lt;version&gt;</code> added.
Support for new character type <span class="type">char8_t</span> added
to <code class="classname">char_traits</code>, <code class="classname">basic_string</code>,
<code class="classname">numeric_limits</code>,
and relevant locale facets and type traits.
</p><p>
Experimental implementation of the Networking TS library added,
with new headers
<code class="filename">&lt;experimental/buffer&gt;</code>,
<code class="filename">&lt;experimental/executor&gt;</code>,
<code class="filename">&lt;experimental/internet&gt;</code>,
<code class="filename">&lt;experimental/io_context&gt;</code>,
<code class="filename">&lt;experimental/net&gt;</code>,
<code class="filename">&lt;experimental/netfwd&gt;</code>,
<code class="filename">&lt;experimental/socket&gt;</code>,
and
<code class="filename">&lt;experimental/timer&gt;</code>.
</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="abi.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="appendix_porting.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="backwards.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ABI Policy and Guidelines </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Backwards Compatibility</td></tr></table></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -204,8 +204,8 @@
names have changed, but in all cases, functionality is
equivalent. Starting with gcc-3.4, all extension allocators are
standard style. Before this point, SGI style was the norm. Because of
this, the number of template arguments also changed. Here's a simple
chart to track the changes.
this, the number of template arguments also changed.
<a class="xref" href="api.html#table.extension_allocators" title="Table B.6. Extension Allocators">Table B.6, “Extension Allocators”</a> tracks the changes.
</p><p>
More details on each of these extension allocators follows.
</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>
@ -300,7 +300,7 @@
</p><p>
A high-performance fixed-size allocator with
exponentially-increasing allocations. It has its own
<a class="link" href="mt_allocator.html" title="Chapter 20. The mt_allocator">chapter</a>
<a class="link" href="mt_allocator.html" title="Chapter 20. The mt_allocator">chapter</a>
in the documentation.
</p></li><li class="listitem"><p>
<code class="classname">bitmap_allocator</code>

View File

@ -116,7 +116,7 @@
enabled for
<code class="classname">std::vector&lt;T, std::allocator&lt;T&gt;&gt;</code>
and only when <code class="classname">std::allocator</code> is derived from
<a class="link" href="memory.html#allocator.impl" title="Implementation"><code class="classname">new_allocator</code>
<a class="link" href="memory.html#allocator.ext" title="Extension Allocators"><code class="classname">new_allocator</code>
or <code class="classname">malloc_allocator</code></a>. The annotations
must be present on all vector operations or none, so this macro must
be defined to the same value for all translation units that create,

View File

@ -138,7 +138,6 @@
<section xml:id="allocator.interface"><info><title>Interface Design</title></info>
<para>
The only allocator interface that
@ -162,7 +161,6 @@
</section>
<section xml:id="allocator.default"><info><title>Selecting Default Allocation Policy</title></info>
<para>
It's difficult to pick an allocation strategy that will provide
@ -228,7 +226,6 @@
</section>
<section xml:id="allocator.caching"><info><title>Disabling Memory Caching</title></info>
<para>
In use, <classname>allocator</classname> may allocate and
@ -328,8 +325,8 @@
names have changed, but in all cases, functionality is
equivalent. Starting with gcc-3.4, all extension allocators are
standard style. Before this point, SGI style was the norm. Because of
this, the number of template arguments also changed. Here's a simple
chart to track the changes.
this, the number of template arguments also changed.
<xref linkend="table.extension_allocators"/> tracks the changes.
</para>
<para>
@ -468,7 +465,7 @@
<para>
A high-performance fixed-size allocator with
exponentially-increasing allocations. It has its own
<link linkend="manual.ext.allocator.mt">chapter</link>
<link linkend="manual.ext.allocator.mt">chapter</link>
in the documentation.
</para>
</listitem>

View File

@ -13,7 +13,6 @@
</info>
<para>
A list of user-visible changes, in chronological order
</para>
@ -33,9 +32,9 @@ is added that notifies on inclusion (<literal>-Wno-deprecated</literal>
deactivates the warning.)
</para>
<para>Deprecated include <filename class="headerfile">backward/strstream</filename> added.</para>
<para>Deprecated include <filename class="headerfile">&lt;backward/strstream&gt;</filename> added.</para>
<para>Removal of include <filename class="headerfile">builtinbuf.h</filename>, <filename class="headerfile">indstream.h</filename>, <filename class="headerfile">parsestream.h</filename>, <filename class="headerfile">PlotFile.h</filename>, <filename class="headerfile">SFile.h</filename>, <filename class="headerfile">stdiostream.h</filename>, and <filename class="headerfile">stream.h</filename>.
<para>Removal of include <filename class="headerfile">&lt;builtinbuf.h&gt;</filename>, <filename class="headerfile">&lt;indstream.h&gt;</filename>, <filename class="headerfile">&lt;parsestream.h&gt;</filename>, <filename class="headerfile">&lt;PlotFile.h&gt;</filename>, <filename class="headerfile">&lt;SFile.h&gt;</filename>, <filename class="headerfile">&lt;stdiostream.h&gt;</filename>, and <filename class="headerfile">&lt;stream.h&gt;</filename>.
</para>
@ -51,7 +50,7 @@ deactivates the warning.)
Extensions from SGI/HP moved from <code>namespace std</code>
to <code>namespace __gnu_cxx</code>. As part of this, the following
new includes are
added: <filename class="headerfile">ext/algorithm</filename>, <filename class="headerfile">ext/functional</filename>, <filename class="headerfile">ext/iterator</filename>, <filename class="headerfile">ext/memory</filename>, and <filename class="headerfile">ext/numeric</filename>.
added: <filename class="headerfile">&lt;ext/algorithm&gt;</filename>, <filename class="headerfile">&lt;ext/functional&gt;</filename>, <filename class="headerfile">&lt;ext/iterator&gt;</filename>, <filename class="headerfile">&lt;ext/memory&gt;</filename>, and <filename class="headerfile">&lt;ext/numeric&gt;</filename>.
</para>
<para>
@ -59,11 +58,11 @@ Extensions to <code>basic_filebuf</code> introduced: <code>__gnu_cxx::enc_filebu
</para>
<para>
Extensions to tree data structures added in <filename class="headerfile">ext/rb_tree</filename>.
Extensions to tree data structures added in <filename class="headerfile">&lt;ext/rb_tree&gt;</filename>.
</para>
<para>
Removal of <filename class="headerfile">ext/tree</filename>, moved to <filename class="headerfile">backward/tree.h</filename>.
Removal of <filename class="headerfile">&lt;ext/tree&gt;</filename>, moved to <filename class="headerfile">&lt;backward/tree.h&gt;</filename>.
</para>
</section>
@ -74,7 +73,7 @@ Removal of <filename class="headerfile">ext/tree</filename>, moved to <filename
</para>
<para>Symbol versioning introduced for shared library.</para>
<para>Removal of include <filename class="headerfile">backward/strstream.h</filename>.</para>
<para>Removal of include <filename class="headerfile">&lt;backward/strstream.h&gt;</filename>.</para>
<para>Allocator changes. Change <code>__malloc_alloc</code> to <code>malloc_allocator</code> and <code>__new_alloc</code> to <code>new_allocator</code>. </para>
@ -109,7 +108,7 @@ Removal of <filename class="headerfile">ext/tree</filename>, moved to <filename
Large file support.
</para>
<para> Extensions for generic characters and <code>char_traits</code> added in <filename class="headerfile">ext/pod_char_traits.h</filename>.
<para> Extensions for generic characters and <code>char_traits</code> added in <filename class="headerfile">&lt;ext/pod_char_traits.h&gt;</filename>.
</para>
<para>
@ -123,7 +122,7 @@ Support for <code>char_traits</code> beyond builtin types.
<para>
Conformant <code>allocator</code> class and usage in containers. As
part of this, the following extensions are
added: <filename class="headerfile">ext/bitmap_allocator.h</filename>, <filename class="headerfile">ext/debug_allocator.h</filename>, <filename class="headerfile">ext/mt_allocator.h</filename>, <filename class="headerfile">ext/malloc_allocator.h</filename>,<filename class="headerfile">ext/new_allocator.h</filename>, <filename class="headerfile">ext/pool_allocator.h</filename>.
added: <filename class="headerfile">&lt;ext/bitmap_allocator.h&gt;</filename>, <filename class="headerfile">&lt;ext/debug_allocator.h&gt;</filename>, <filename class="headerfile">&lt;ext/mt_allocator.h&gt;</filename>, <filename class="headerfile">&lt;ext/malloc_allocator.h&gt;</filename>,<filename class="headerfile">&lt;ext/new_allocator.h&gt;</filename>, <filename class="headerfile">&lt;ext/pool_allocator.h&gt;</filename>.
</para>
<para>
@ -186,37 +185,37 @@ _Alloc_traits</code> have been removed.
<tbody>
<row>
<entry><classname>__gnu_cxx::new_allocator&lt;T&gt;</classname></entry>
<entry><filename class="headerfile">ext/new_allocator.h</filename></entry>
<entry><filename class="headerfile">&lt;ext/new_allocator.h&gt;</filename></entry>
<entry><classname>std::__new_alloc</classname></entry>
<entry><filename class="headerfile">memory</filename></entry>
<entry><filename class="headerfile">&lt;memory&gt;</filename></entry>
</row>
<row>
<entry><classname>__gnu_cxx::malloc_allocator&lt;T&gt;</classname></entry>
<entry><filename class="headerfile">ext/malloc_allocator.h</filename></entry>
<entry><filename class="headerfile">&lt;ext/malloc_allocator.h&gt;</filename></entry>
<entry><classname>std::__malloc_alloc_template&lt;int&gt;</classname></entry>
<entry><filename class="headerfile">memory</filename></entry>
<entry><filename class="headerfile">&lt;memory&gt;</filename></entry>
</row>
<row>
<entry><classname>__gnu_cxx::debug_allocator&lt;T&gt;</classname></entry>
<entry><filename class="headerfile">ext/debug_allocator.h</filename></entry>
<entry><filename class="headerfile">&lt;ext/debug_allocator.h&gt;</filename></entry>
<entry><classname>std::debug_alloc&lt;T&gt;</classname></entry>
<entry><filename class="headerfile">memory</filename></entry>
<entry><filename class="headerfile">&lt;memory&gt;</filename></entry>
</row>
<row>
<entry><classname>__gnu_cxx::__pool_alloc&lt;T&gt;</classname></entry>
<entry><filename class="headerfile">ext/pool_allocator.h</filename></entry>
<entry><filename class="headerfile">&lt;ext/pool_allocator.h&gt;</filename></entry>
<entry><classname>std::__default_alloc_template&lt;bool,int&gt;</classname></entry>
<entry><filename class="headerfile">memory</filename></entry>
<entry><filename class="headerfile">&lt;memory&gt;</filename></entry>
</row>
<row>
<entry><classname>__gnu_cxx::__mt_alloc&lt;T&gt;</classname></entry>
<entry><filename class="headerfile">ext/mt_allocator.h</filename></entry>
<entry><filename class="headerfile">&lt;ext/mt_allocator.h&gt;</filename></entry>
<entry> </entry>
<entry> </entry>
</row>
<row>
<entry><classname>__gnu_cxx::bitmap_allocator&lt;T&gt;</classname></entry>
<entry><filename class="headerfile">ext/bitmap_allocator.h</filename></entry>
<entry><filename class="headerfile">&lt;ext/bitmap_allocator.h&gt;</filename></entry>
<entry> </entry>
<entry> </entry>
</row>
@ -249,12 +248,12 @@ _Alloc_traits</code> have been removed.
<tbody>
<row>
<entry><classname>__gnu_cxx::array_allocator&lt;T&gt;</classname></entry>
<entry><filename class="headerfile">ext/array_allocator.h</filename></entry>
<entry><filename class="headerfile">&lt;ext/array_allocator.h&gt;</filename></entry>
<entry>4.0.0</entry>
</row>
<row>
<entry><classname>__gnu_cxx::throw_allocator&lt;T&gt;</classname></entry>
<entry><filename class="headerfile">ext/throw_allocator.h</filename></entry>
<entry><filename class="headerfile">&lt;ext/throw_allocator.h&gt;</filename></entry>
<entry>4.2.0</entry>
</row>
</tbody>
@ -275,11 +274,11 @@ Macro guard for changed, from <literal>_GLIBCPP_</literal> to <literal>_GLIBCXX_
</para>
<para>
Extension <filename class="headerfile">ext/stdio_sync_filebuf.h</filename> added.
Extension <filename class="headerfile">&lt;ext/stdio_sync_filebuf.h&gt;</filename> added.
</para>
<para>
Extension <filename class="headerfile">ext/demangle.h</filename> added.
Extension <filename class="headerfile">&lt;ext/demangle.h&gt;</filename> added.
</para>
@ -294,15 +293,15 @@ TR1 features first appear.
</para>
<para>
Extension allocator <filename class="headerfile">ext/array_allocator.h</filename> added.
Extension allocator <filename class="headerfile">&lt;ext/array_allocator.h&gt;</filename> added.
</para>
<para>
Extension <code>codecvt</code> specializations moved to <filename class="headerfile">ext/codecvt_specializations.h</filename>.
Extension <code>codecvt</code> specializations moved to <filename class="headerfile">&lt;ext/codecvt_specializations.h&gt;</filename>.
</para>
<para>
Removal of <filename class="headerfile">ext/demangle.h</filename>.
Removal of <filename class="headerfile">&lt;ext/demangle.h&gt;</filename>.
</para>
@ -315,7 +314,7 @@ Removal of <filename class="headerfile">ext/demangle.h</filename>.
<para>
Removal of <filename class="headerfile">cassert</filename> from all standard headers: now has to be explicitly included for <code>std::assert</code> calls.
Removal of <filename class="headerfile">&lt;cassert&gt;</filename> from all standard headers: now has to be explicitly included for <code>std::assert</code> calls.
</para>
<para> Extensions for policy-based data structures first added. New includes,
@ -324,10 +323,10 @@ types, namespace <code>pb_assoc</code>.
<para> Extensions for typelists added in <filename class="headerfile">ext/typelist.h</filename>.
<para> Extensions for typelists added in <filename class="headerfile">&lt;ext/typelist.h&gt;</filename>.
</para>
<para> Extension for policy-based <code>basic_string</code> first added: <code>__gnu_cxx::__versa_string</code> in <filename class="headerfile">ext/vstring.h</filename>.
<para> Extension for policy-based <code>basic_string</code> first added: <code>__gnu_cxx::__versa_string</code> in <filename class="headerfile">&lt;ext/vstring.h&gt;</filename>.
</para>
</section>
@ -341,16 +340,16 @@ types, namespace <code>pb_assoc</code>.
<para> Default visibility attributes applied to <code>namespace std</code>. Support for <code>-fvisibility</code>.
</para>
<para>TR1 <filename class="headerfile">random</filename>, <filename class="headerfile">complex</filename>, and C compatibility headers added.</para>
<para>TR1 <filename class="headerfile">&lt;random&gt;</filename>, <filename class="headerfile">&lt;complex&gt;</filename>, and C compatibility headers added.</para>
<para> Extensions for concurrent programming consolidated
into <filename class="headerfile">ext/concurrence.h</filename> and <filename class="headerfile">ext/atomicity.h</filename>,
into <filename class="headerfile">&lt;ext/concurrence.h&gt;</filename> and <filename class="headerfile">&lt;ext/atomicity.h&gt;</filename>,
including change of namespace to <code>__gnu_cxx</code> in some
cases. Added types
include <code>_Lock_policy</code>, <code>__concurrence_lock_error</code>, <code>__concurrence_unlock_error</code>, <code>__mutex</code>, <code>__scoped_lock</code>.</para>
<para> Extensions for type traits consolidated
into <filename class="headerfile">ext/type_traits.h</filename>. Additional traits are added
into <filename class="headerfile">&lt;ext/type_traits.h&gt;</filename>. Additional traits are added
(<code>__conditional_type</code>, <code>__enable_if</code>, others.)
</para>
@ -362,8 +361,8 @@ types, namespace moved to <code>__pb_ds</code>.
std::__debug</code> and extensions in <code>namespace
__gnu_cxx::__debug</code>.</para>
<para> Extensions added: <filename class="headerfile">ext/typelist.h</filename>
and <filename class="headerfile">ext/throw_allocator.h</filename>.
<para> Extensions added: <filename class="headerfile">&lt;ext/typelist.h&gt;</filename>
and <filename class="headerfile">&lt;ext/throw_allocator.h&gt;</filename>.
</para>
</section>
@ -378,7 +377,7 @@ and <filename class="headerfile">ext/throw_allocator.h</filename>.
C++0X features first appear.
</para>
<para>TR1 <filename class="headerfile">regex</filename> and <filename class="headerfile">cmath</filename>'s mathematical special function added.
<para>TR1 <filename class="headerfile">&lt;regex&gt;</filename> and <filename class="headerfile">&lt;cmath&gt;</filename>'s mathematical special function added.
</para>
<para>
@ -388,23 +387,23 @@ Backward include edit.
<listitem>
<para>Removed</para>
<para>
<filename class="headerfile">algobase.h</filename> <filename class="headerfile">algo.h</filename> <filename class="headerfile">alloc.h</filename> <filename class="headerfile">bvector.h</filename> <filename class="headerfile">complex.h</filename>
<filename class="headerfile">defalloc.h</filename> <filename class="headerfile">deque.h</filename> <filename class="headerfile">fstream.h</filename> <filename class="headerfile">function.h</filename> <filename class="headerfile">hash_map.h</filename> <filename class="headerfile">hash_set.h</filename>
<filename class="headerfile">hashtable.h</filename> <filename class="headerfile">heap.h</filename> <filename class="headerfile">iomanip.h</filename> <filename class="headerfile">iostream.h</filename> <filename class="headerfile">istream.h</filename> <filename class="headerfile">iterator.h</filename>
<filename class="headerfile">list.h</filename> <filename class="headerfile">map.h</filename> <filename class="headerfile">multimap.h</filename> <filename class="headerfile">multiset.h</filename> <filename class="headerfile">new.h</filename> <filename class="headerfile">ostream.h</filename> <filename class="headerfile">pair.h</filename> <filename class="headerfile">queue.h</filename> <filename class="headerfile">rope.h</filename> <filename class="headerfile">set.h</filename> <filename class="headerfile">slist.h</filename> <filename class="headerfile">stack.h</filename> <filename class="headerfile">streambuf.h</filename> <filename class="headerfile">stream.h</filename> <filename class="headerfile">tempbuf.h</filename>
<filename class="headerfile">tree.h</filename> <filename class="headerfile">vector.h</filename>
<filename class="headerfile">&lt;algobase.h&gt;</filename> <filename class="headerfile">&lt;algo.h&gt;</filename> <filename class="headerfile">&lt;alloc.h&gt;</filename> <filename class="headerfile">&lt;bvector.h&gt;</filename> <filename class="headerfile">&lt;complex.h&gt;</filename>
<filename class="headerfile">&lt;defalloc.h&gt;</filename> <filename class="headerfile">&lt;deque.h&gt;</filename> <filename class="headerfile">&lt;fstream.h&gt;</filename> <filename class="headerfile">&lt;function.h&gt;</filename> <filename class="headerfile">&lt;hash_map.h&gt;</filename> <filename class="headerfile">&lt;hash_set.h&gt;</filename>
<filename class="headerfile">&lt;hashtable.h&gt;</filename> <filename class="headerfile">&lt;heap.h&gt;</filename> <filename class="headerfile">&lt;iomanip.h&gt;</filename> <filename class="headerfile">&lt;iostream.h&gt;</filename> <filename class="headerfile">&lt;istream.h&gt;</filename> <filename class="headerfile">&lt;iterator.h&gt;</filename>
<filename class="headerfile">&lt;list.h&gt;</filename> <filename class="headerfile">&lt;map.h&gt;</filename> <filename class="headerfile">&lt;multimap.h&gt;</filename> <filename class="headerfile">&lt;multiset.h&gt;</filename> <filename class="headerfile">&lt;new.h&gt;</filename> <filename class="headerfile">&lt;ostream.h&gt;</filename> <filename class="headerfile">&lt;pair.h&gt;</filename> <filename class="headerfile">&lt;queue.h&gt;</filename> <filename class="headerfile">&lt;rope.h&gt;</filename> <filename class="headerfile">&lt;set.h&gt;</filename> <filename class="headerfile">&lt;slist.h&gt;</filename> <filename class="headerfile">&lt;stack.h&gt;</filename> <filename class="headerfile">&lt;streambuf.h&gt;</filename> <filename class="headerfile">&lt;stream.h&gt;</filename> <filename class="headerfile">&lt;tempbuf.h&gt;</filename>
<filename class="headerfile">&lt;tree.h&gt;</filename> <filename class="headerfile">&lt;vector.h&gt;</filename>
</para>
</listitem>
<listitem>
<para>Added</para>
<para>
<filename class="headerfile">hash_map</filename> and <filename class="headerfile">hash_set</filename>
<filename class="headerfile">&lt;hash_map&gt;</filename> and <filename class="headerfile">&lt;hash_set&gt;</filename>
</para>
</listitem>
<listitem>
<para>Added in C++11</para>
<para>
<filename class="headerfile">auto_ptr.h</filename> and <filename class="headerfile">binders.h</filename>
<filename class="headerfile">&lt;auto_ptr.h&gt;</filename> and <filename class="headerfile">&lt;binders.h&gt;</filename>
</para>
</listitem>
@ -415,29 +414,29 @@ Header dependency streamlining.
</para>
<itemizedlist>
<listitem><para><filename class="headerfile">algorithm</filename> no longer includes <filename class="headerfile">climits</filename>, <filename class="headerfile">cstring</filename>, or <filename class="headerfile">iosfwd</filename> </para></listitem>
<listitem><para><filename class="headerfile">bitset</filename> no longer includes <filename class="headerfile">istream</filename> or <filename class="headerfile">ostream</filename>, adds <filename class="headerfile">iosfwd</filename> </para></listitem>
<listitem><para><filename class="headerfile">functional</filename> no longer includes <filename class="headerfile">cstddef</filename></para></listitem>
<listitem><para><filename class="headerfile">iomanip</filename> no longer includes <filename class="headerfile">istream</filename>, <filename class="headerfile">istream</filename>, or <filename class="headerfile">functional</filename>, adds <filename class="headerfile">ioswd</filename> </para></listitem>
<listitem><para><filename class="headerfile">numeric</filename> no longer includes <filename class="headerfile">iterator</filename></para></listitem>
<listitem><para><filename class="headerfile">string</filename> no longer includes <filename class="headerfile">algorithm</filename> or <filename class="headerfile">memory</filename></para></listitem>
<listitem><para><filename class="headerfile">&lt;algorithm&gt;</filename> no longer includes <filename class="headerfile">&lt;climits&gt;</filename>, <filename class="headerfile">&lt;cstring&gt;</filename>, or <filename class="headerfile">&lt;iosfwd&gt;</filename> </para></listitem>
<listitem><para><filename class="headerfile">&lt;bitset&gt;</filename> no longer includes <filename class="headerfile">&lt;istream&gt;</filename> or <filename class="headerfile">&lt;ostream&gt;</filename>, adds <filename class="headerfile">&lt;iosfwd&gt;</filename> </para></listitem>
<listitem><para><filename class="headerfile">&lt;functional&gt;</filename> no longer includes <filename class="headerfile">&lt;cstddef&gt;</filename></para></listitem>
<listitem><para><filename class="headerfile">&lt;iomanip&gt;</filename> no longer includes <filename class="headerfile">&lt;istream&gt;</filename>, <filename class="headerfile">&lt;istream&gt;</filename>, or <filename class="headerfile">&lt;functional&gt;</filename>, adds <filename class="headerfile">&lt;ioswd&gt;</filename> </para></listitem>
<listitem><para><filename class="headerfile">&lt;numeric&gt;</filename> no longer includes <filename class="headerfile">&lt;iterator&gt;</filename></para></listitem>
<listitem><para><filename class="headerfile">&lt;string&gt;</filename> no longer includes <filename class="headerfile">&lt;algorithm&gt;</filename> or <filename class="headerfile">&lt;memory&gt;</filename></para></listitem>
<listitem><para><filename class="headerfile">valarray</filename> no longer includes <filename class="headerfile">numeric</filename> or <filename class="headerfile">cstdlib</filename></para></listitem>
<listitem><para><filename class="headerfile">tr1/hashtable</filename> no longer includes <filename class="headerfile">memory</filename> or <filename class="headerfile">functional</filename></para></listitem>
<listitem><para><filename class="headerfile">tr1/memory</filename> no longer includes <filename class="headerfile">algorithm</filename></para></listitem>
<listitem><para><filename class="headerfile">tr1/random</filename> no longer includes <filename class="headerfile">algorithm</filename> or <filename class="headerfile">fstream</filename></para></listitem>
<listitem><para><filename class="headerfile">&lt;valarray&gt;</filename> no longer includes <filename class="headerfile">&lt;numeric&gt;</filename> or <filename class="headerfile">&lt;cstdlib&gt;</filename></para></listitem>
<listitem><para><filename class="headerfile">&lt;tr1/hashtable&gt;</filename> no longer includes <filename class="headerfile">&lt;memory&gt;</filename> or <filename class="headerfile">&lt;functional&gt;</filename></para></listitem>
<listitem><para><filename class="headerfile">&lt;tr1/memory&gt;</filename> no longer includes <filename class="headerfile">&lt;algorithm&gt;</filename></para></listitem>
<listitem><para><filename class="headerfile">&lt;tr1/random&gt;</filename> no longer includes <filename class="headerfile">&lt;algorithm&gt;</filename> or <filename class="headerfile">&lt;fstream&gt;</filename></para></listitem>
</itemizedlist>
<para>
Debug mode for <filename class="headerfile">unordered_map</filename> and <filename class="headerfile">unordered_set</filename>.
Debug mode for <filename class="headerfile">&lt;unordered_map&gt;</filename> and <filename class="headerfile">&lt;unordered_set&gt;</filename>.
</para>
<para>
Parallel mode first appears.
</para>
<para>Variadic template implementations of items in <filename class="headerfile">tuple</filename> and
<filename class="headerfile">functional</filename>.
<para>Variadic template implementations of items in <filename class="headerfile">&lt;tuple&gt;</filename> and
<filename class="headerfile">&lt;functional&gt;</filename>.
</para>
<para>Default <code>what</code> implementations give more elaborate
@ -472,14 +471,14 @@ C++0X features.
Added.
</para>
<para>
<filename class="headerfile">atomic</filename>,
<filename class="headerfile">chrono</filename>,
<filename class="headerfile">condition_variable</filename>,
<filename class="headerfile">forward_list</filename>,
<filename class="headerfile">initializer_list</filename>,
<filename class="headerfile">mutex</filename>,
<filename class="headerfile">ratio</filename>,
<filename class="headerfile">thread</filename>
<filename class="headerfile">&lt;atomic&gt;</filename>,
<filename class="headerfile">&lt;chrono&gt;</filename>,
<filename class="headerfile">&lt;condition_variable&gt;</filename>,
<filename class="headerfile">&lt;forward_list&gt;</filename>,
<filename class="headerfile">&lt;initializer_list&gt;</filename>,
<filename class="headerfile">&lt;mutex&gt;</filename>,
<filename class="headerfile">&lt;ratio&gt;</filename>,
<filename class="headerfile">&lt;thread&gt;</filename>
</para>
</listitem>
@ -488,9 +487,9 @@ C++0X features.
Updated and improved.
</para>
<para>
<filename class="headerfile">algorithm</filename>,
<filename class="headerfile">system_error</filename>,
<filename class="headerfile">type_traits</filename>
<filename class="headerfile">&lt;algorithm&gt;</filename>,
<filename class="headerfile">&lt;system_error&gt;</filename>,
<filename class="headerfile">&lt;type_traits&gt;</filename>
</para>
</listitem>
@ -558,8 +557,8 @@ local mutex.
</para>
<para> Extensions
added: <filename class="headerfile">ext/pointer.h</filename>
and <filename class="headerfile">ext/extptr_allocator.h</filename>. Support
added: <filename class="headerfile">&lt;ext/pointer.h&gt;</filename>
and <filename class="headerfile">&lt;ext/extptr_allocator.h&gt;</filename>. Support
for non-standard pointer types has been added
to <classname>vector</classname>
and <classname>forward_list</classname>.
@ -581,9 +580,9 @@ C++0X features.
Added.
</para>
<para>
<filename class="headerfile">functional</filename>,
<filename class="headerfile">future</filename>,
<filename class="headerfile">random</filename>
<filename class="headerfile">&lt;functional&gt;</filename>,
<filename class="headerfile">&lt;future&gt;</filename>,
<filename class="headerfile">&lt;random&gt;</filename>
</para>
</listitem>
@ -592,9 +591,9 @@ C++0X features.
Updated and improved.
</para>
<para>
<filename class="headerfile">atomic</filename>,
<filename class="headerfile">system_error</filename>,
<filename class="headerfile">type_traits</filename>
<filename class="headerfile">&lt;atomic&gt;</filename>,
<filename class="headerfile">&lt;system_error&gt;</filename>,
<filename class="headerfile">&lt;type_traits&gt;</filename>
</para>
</listitem>
@ -623,11 +622,11 @@ Audit for application of function attributes nothrow, const, pure, and noreturn.
<para>
The default behavior for comparing typeinfo names changed, so
in <filename class="headerfile">typeinfo</filename>, <literal>__GXX_MERGED_TYPEINFO_NAMES</literal>
in <filename class="headerfile">&lt;typeinfo&gt;</filename>, <literal>__GXX_MERGED_TYPEINFO_NAMES</literal>
now defaults to zero.
</para>
<para> Extensions modified: <filename class="headerfile">ext/throw_allocator.h</filename>.
<para> Extensions modified: <filename class="headerfile">&lt;ext/throw_allocator.h&gt;</filename>.
</para>
</section>
@ -639,7 +638,7 @@ now defaults to zero.
<para>
The library was updated to avoid including
<filename class="headerfile">stddef.h</filename> in order
<filename class="headerfile">&lt;stddef.h&gt;</filename> in order
to reduce namespace pollution.
</para>
@ -669,7 +668,7 @@ now defaults to zero.
<para>
The library was updated to avoid including
<filename class="headerfile">unistd.h</filename> in order
<filename class="headerfile">&lt;unistd.h&gt;</filename> in order
to reduce namespace pollution.
</para>
@ -819,6 +818,16 @@ now defaults to zero.
<para> Profile Mode was deprecated. </para>
<section xml:id="api.rel_72"><info><title><constant>7.2</constant></title></info>
<para>
Library Fundamentals TS header
<filename class="headerfile">&lt;experimental/source_location&gt;</filename>
added.
</para>
</section>
<section xml:id="api.rel_73"><info><title><constant>7.3</constant></title></info>
<para>
@ -839,9 +848,17 @@ now defaults to zero.
</para>
<para>
Improved experimental C++17 support. Headers
<filename class="headerfile">&lt;charconv&gt;</filename> and
<filename class="headerfile">&lt;filesystem&gt;</filename>.
Experimental implementation of the C++17 Filesystem library added.
</para>
<para>
Experimental C++2a support
(<function>to_address</function> and <classname>endian</classname>).
</para>
<para>
AddressSanitizer annotations added to <classname>std::vector</classname>
to detect out-of-range accesses to the unused capacity of a vector.
@ -895,4 +912,38 @@ now defaults to zero.
</section>
<section xml:id="api.rel_91"><info><title><constant>9</constant></title></info>
<para>
C++17 header
<filename class="headerfile">&lt;memory_resource&gt;</filename>
added.
</para>
<para>
Experimental C++2a support improved, with new headers
<filename class="headerfile">&lt;bit&gt;</filename> and
<filename class="headerfile">&lt;version&gt;</filename> added.
Support for new character type <type>char8_t</type> added
to <classname>char_traits</classname>, <classname>basic_string</classname>,
<classname>numeric_limits</classname>,
and relevant locale facets and type traits.
</para>
<para>
Experimental implementation of the Networking TS library added,
with new headers
<filename class="headerfile">&lt;experimental/buffer&gt;</filename>,
<filename class="headerfile">&lt;experimental/executor&gt;</filename>,
<filename class="headerfile">&lt;experimental/internet&gt;</filename>,
<filename class="headerfile">&lt;experimental/io_context&gt;</filename>,
<filename class="headerfile">&lt;experimental/net&gt;</filename>,
<filename class="headerfile">&lt;experimental/netfwd&gt;</filename>,
<filename class="headerfile">&lt;experimental/socket&gt;</filename>,
and
<filename class="headerfile">&lt;experimental/timer&gt;</filename>.
</para>
</section>
</section>

View File

@ -1192,7 +1192,7 @@ g++ -Winvalid-pch -I. -include stdc++.h -H -g -O2 hello.cc -o test.exe
enabled for
<classname>std::vector&lt;T, std::allocator&lt;T&gt;&gt;</classname>
and only when <classname>std::allocator</classname> is derived from
<link linkend="allocator.impl"><classname>new_allocator</classname>
<link linkend="allocator.ext"><classname>new_allocator</classname>
or <classname>malloc_allocator</classname></link>. The annotations
must be present on all vector operations or none, so this macro must
be defined to the same value for all translation units that create,