Extensions moved to <codeclass="filename">include/ext</code>.
</p><p>
Include files from the SGI/HP sources that pre-date the ISO standard
are added. These files are placed into
the <codeclass="filename">include/backward</code> directory and a deprecated warning
is added that notifies on inclusion (<codeclass="literal">-Wno-deprecated</code>
deactivates the warning.)
</p><p>Deprecated include <codeclass="filename">backward/strstream</code> added.</p><p>Removal of include <codeclass="filename">builtinbuf.h</code>, <codeclass="filename">indstream.h</code>, <codeclass="filename">parsestream.h</code>, <codeclass="filename">PlotFile.h</code>, <codeclass="filename">SFile.h</code>, <codeclass="filename">stdiostream.h</code>, and <codeclass="filename">stream.h</code>.
Extensions from SGI/HP moved from <codeclass="code">namespace std</code>
to <codeclass="code">namespace __gnu_cxx</code>. As part of this, the following
new includes are
added: <codeclass="filename">ext/algorithm</code>, <codeclass="filename">ext/functional</code>, <codeclass="filename">ext/iterator</code>, <codeclass="filename">ext/memory</code>, and <codeclass="filename">ext/numeric</code>.
</p><p>
Extensions to <codeclass="code">basic_filebuf</code> introduced: <codeclass="code">__gnu_cxx::enc_filebuf</code>, and <codeclass="code">__gnu_cxx::stdio_filebuf</code>.
</p><p>
Extensions to tree data structures added in <codeclass="filename">ext/rb_tree</code>.
</p><p>
Removal of <codeclass="filename">ext/tree</code>, moved to <codeclass="filename">backward/tree.h</code>.
</p><p>Symbol versioning introduced for shared library.</p><p>Removal of include <codeclass="filename">backward/strstream.h</code>.</p><p>Allocator changes. Change <codeclass="code">__malloc_alloc</code> to <codeclass="code">malloc_allocator</code> and <codeclass="code">__new_alloc</code> to <codeclass="code">new_allocator</code>. </p><p> For GCC releases from 2.95 through the 3.1 series, defining
<codeclass="literal">__USE_MALLOC</code> on the gcc command line would change the
default allocation strategy to instead use <codeclass="code"> malloc</code> and
</p><p>Error handling in iostreams cleaned up, made consistent. </p></div><divclass="section"><divclass="titlepage"><div><div><h3class="title"><aid="api.rel_330"></a><codeclass="constant">3.3</code></h3></div></div></div><p>
</p><p> Extensions for generic characters and <codeclass="code">char_traits</code> added in <codeclass="filename">ext/pod_char_traits.h</code>.
</p><p>
Support for <codeclass="code">wchar_t</code> specializations of <codeclass="code">basic_filebuf</code> enhanced to support <codeclass="code">UTF-8</code> and <codeclass="code">Unicode</code>, depending on host. More hosts support basic <codeclass="code">wchar_t</code> functionality.
</p><p>
Support for <codeclass="code">char_traits</code> beyond builtin types.
</p><p>
Conformant <codeclass="code">allocator</code> class and usage in containers. As
</p><divclass="table"><aid="table.extension_allocators"></a><pclass="title"><strong>TableB.6.Extension Allocators</strong></p><divclass="table-contents"><tablesummary="Extension Allocators"border="1"><colgroup><colalign="left"class="c1"/><colalign="left"class="c2"/><colalign="left"class="c3"/><colalign="left"class="c4"/></colgroup><thead><tr><thalign="left">Allocator (3.4)</th><thalign="left">Header (3.4)</th><thalign="left">Allocator (3.[0-3])</th><thalign="left">Header (3.[0-3])</th></tr></thead><tbody><tr><tdalign="left"><codeclass="classname">__gnu_cxx::new_allocator<T></code></td><tdalign="left"><codeclass="filename">ext/new_allocator.h</code></td><tdalign="left"><codeclass="classname">std::__new_alloc</code></td><tdalign="left"><codeclass="filename">memory</code></td></tr><tr><tdalign="left"><codeclass="classname">__gnu_cxx::malloc_allocator<T></code></td><tdalign="left"><codeclass="filename">ext/malloc_allocator.h</code></td><tdalign="left"><codeclass="classname">std::__malloc_alloc_template<int></code></td><tdalign="left"><codeclass="filename">memory</code></td></tr><tr><tdalign="left"><codeclass="classname">__gnu_cxx::debug_allocator<T></code></td><tdalign="left"><codeclass="filename">ext/debug_allocator.h</code></td><tdalign="left"><codeclass="classname">std::debug_alloc<T></code></td><tdalign="left"><codeclass="filename">memory</code></td></tr><tr><tdalign="left"><codeclass="classname">__gnu_cxx::__pool_alloc<T></code></td><tdalign="left"><codeclass="filename">ext/pool_allocator.h</code></td><tdalign="left"><codeclass="classname">std::__default_alloc_template<bool,int></code></td><tdalign="left"><codeclass="filename">memory</code></td></tr><tr><tdalign="left"><codeclass="classname">__gnu_cxx::__mt_alloc<T></code></td><tdalign="left"><codeclass="filename">ext/mt_allocator.h</code></td><tdalign="left"></td><tdalign="left"></td></tr><tr><tdalign="left"><codeclass="classname">__gnu_cxx::bitmap_allocator<T></code></td><tdalign="left"><codeclass="filename">ext/bitmap_allocator.h</code></td><tdalign="left"></td><tdalign="left"></td></tr></tbody></table></div></div><brclass="table-break"/><p> Releases after gcc-3.4 have continued to add to the collection
Removal of <codeclass="filename">cassert</code> from all standard headers: now has to be explicitly included for <codeclass="code">std::assert</code> calls.
</p><p> Extensions for policy-based data structures first added. New includes,
</p><p> Extensions for typelists added in <codeclass="filename">ext/typelist.h</code>.
</p><p> Extension for policy-based <codeclass="code">basic_string</code> first added: <codeclass="code">__gnu_cxx::__versa_string</code> in <codeclass="filename">ext/vstring.h</code>.
</p><p> Default visibility attributes applied to <codeclass="code">namespace std</code>. Support for <codeclass="code">-fvisibility</code>.
</p><p>TR1 <codeclass="filename">random</code>, <codeclass="filename">complex</code>, and C compatibility headers added.</p><p> Extensions for concurrent programming consolidated
into <codeclass="filename">ext/concurrence.h</code> and <codeclass="filename">ext/atomicity.h</code>,
including change of namespace to <codeclass="code">__gnu_cxx</code> in some
cases. Added types
include <codeclass="code">_Lock_policy</code>, <codeclass="code">__concurrence_lock_error</code>, <codeclass="code">__concurrence_unlock_error</code>, <codeclass="code">__mutex</code>, <codeclass="code">__scoped_lock</code>.</p><p> Extensions for type traits consolidated
into <codeclass="filename">ext/type_traits.h</code>. Additional traits are added
</p><divclass="itemizedlist"><ulclass="itemizedlist"style="list-style-type: disc; "><liclass="listitem"><p><codeclass="filename">algorithm</code> no longer includes <codeclass="filename">climits</code>, <codeclass="filename">cstring</code>, or <codeclass="filename">iosfwd</code></p></li><liclass="listitem"><p><codeclass="filename">bitset</code> no longer includes <codeclass="filename">istream</code> or <codeclass="filename">ostream</code>, adds <codeclass="filename">iosfwd</code></p></li><liclass="listitem"><p><codeclass="filename">functional</code> no longer includes <codeclass="filename">cstddef</code></p></li><liclass="listitem"><p><codeclass="filename">iomanip</code> no longer includes <codeclass="filename">istream</code>, <codeclass="filename">istream</code>, or <codeclass="filename">functional</code>, adds <codeclass="filename">ioswd</code></p></li><liclass="listitem"><p><codeclass="filename">numeric</code> no longer includes <codeclass="filename">iterator</code></p></li><liclass="listitem"><p><codeclass="filename">string</code> no longer includes <codeclass="filename">algorithm</code> or <codeclass="filename">memory</code></p></li><liclass="listitem"><p><codeclass="filename">valarray</code> no longer includes <codeclass="filename">numeric</code> or <codeclass="filename">cstdlib</code></p></li><liclass="listitem"><p><codeclass="filename">tr1/hashtable</code> no longer includes <codeclass="filename">memory</code> or <codeclass="filename">functional</code></p></li><liclass="listitem"><p><codeclass="filename">tr1/memory</code> no longer includes <codeclass="filename">algorithm</code></p></li><liclass="listitem"><p><codeclass="filename">tr1/random</code> no longer includes <codeclass="filename">algorithm</code> or <codeclass="filename">fstream</code></p></li></ul></div><p>
Add support for explicit operators and standard layout types.
</p></li></ul></div><p>
Profile mode first appears.
</p><p>
Support for decimal floating-point arithmetic, including <codeclass="classname">decimal32</code>, <codeclass="classname">decimal64</code>, and <codeclass="classname">decimal128</code>.
</p><p>
Python pretty-printers are added for use with appropriately-advanced versions of <spanclass="command"><strong>gdb</strong></span>.
Use constexpr and nullptr where appropriate throughout the library.
</p><p>
The library was updated to avoid including
<codeclass="filename">stddef.h</code> in order
to reduce namespace pollution.
</p><p>Reference-count annotations to assist data race detectors.
</p><p>
Added <codeclass="function">make_exception_ptr</code> as an alias of
<codeclass="function">copy_exception</code>.
</p></div><divclass="section"><divclass="titlepage"><div><div><h3class="title"><aid="api.rel_470"></a><codeclass="constant">4.7</code></h3></div></div></div><p>Use of noexcept throughout library.</p><p>Partial support for C++11 allocators first appears.</p><p>
<codeclass="classname">monotonic_clock</code> renamed to
<codeclass="classname">steady_clock</code> as required by the final C++11
standard.
</p><p>A new clocale model for newlib is available.</p><p>
The library was updated to avoid including
<codeclass="filename">unistd.h</code> in order
to reduce namespace pollution.
</p><p>Debug Mode was improved for unordered containers. </p></div><divclass="section"><divclass="titlepage"><div><div><h3class="title"><aid="api.rel_480"></a><codeclass="constant">4.8</code></h3></div></div></div><p>