Extensions moved to <filenameclass="directory">include/ext</filename>.
</para>
<para>
Include files from the SGI/HP sources that pre-date the ISO standard
are added. These files are placed into
the <filenameclass="directory">include/backward</filename> directory and a deprecated warning
is added that notifies on inclusion (<literal>-Wno-deprecated</literal>
deactivates the warning.)
</para>
<para>Deprecated include <filenameclass="headerfile">backward/strstream</filename> added.</para>
<para>Removal of include <filenameclass="headerfile">builtinbuf.h</filename>, <filenameclass="headerfile">indstream.h</filename>, <filenameclass="headerfile">parsestream.h</filename>, <filenameclass="headerfile">PlotFile.h</filename>, <filenameclass="headerfile">SFile.h</filename>, <filenameclass="headerfile">stdiostream.h</filename>, and <filenameclass="headerfile">stream.h</filename>.
</para>
</sect2>
<sect2id="api.rel_310"xreflabel="api.rel_310">
<title><constant>3.1</constant></title>
<para>
</para>
<para>
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: <filenameclass="headerfile">ext/algorithm</filename>, <filenameclass="headerfile">ext/functional</filename>, <filenameclass="headerfile">ext/iterator</filename>, <filenameclass="headerfile">ext/memory</filename>, and <filenameclass="headerfile">ext/numeric</filename>.
</para>
<para>
Extensions to <code>basic_filebuf</code> introduced: <code>__gnu_cxx::enc_filebuf</code>, and <code>__gnu_cxx::stdio_filebuf</code>.
</para>
<para>
Extensions to tree data structures added in <filenameclass="headerfile">ext/rb_tree</filename>.
</para>
<para>
Removal of <filenameclass="headerfile">ext/tree</filename>, moved to <filenameclass="headerfile">backward/tree.h</filename>.
</para>
</sect2>
<sect2id="api.rel_320"xreflabel="api.rel_320">
<title><constant>3.2</constant></title>
<para>
</para>
<para>Symbol versioning introduced for shared library.</para>
<para>Removal of include <filenameclass="headerfile">backward/strstream.h</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>
<para> For GCC releases from 2.95 through the 3.1 series, defining
<literal>__USE_MALLOC</literal> on the gcc command line would change the
default allocation strategy to instead use <code> malloc</code> and
for details as to why this was something needing improvement.
</para>
<para>Error handling in iostreams cleaned up, made consistent. </para>
</sect2>
<sect2id="api.rel_330"xreflabel="api.rel_330">
<title><constant>3.3</constant></title>
<para>
</para>
</sect2>
<sect2id="api.rel_340"xreflabel="api.rel_340">
<title><constant>3.4</constant></title>
<para>
</para>
<para>
Large file support.
</para>
<para> Extensions for generic characters and <code>char_traits</code> added in <filenameclass="headerfile">ext/pod_char_traits.h</filename>.
</para>
<para>
Support for <code>wchar_t</code> specializations of <code>basic_filebuf</code> enhanced to support <code>UTF-8</code> and <code>Unicode</code>, depending on host. More hosts support basic <code>wchar_t</code> functionality.
</para>
<para>
Support for <code>char_traits</code> beyond builtin types.
</para>
<para>
Conformant <code>allocator</code> class and usage in containers. As
Extension <code>codecvt</code> specializations moved to <filenameclass="headerfile">ext/codecvt_specializations.h</filename>.
</para>
<para>
Removal of <filenameclass="headerfile">ext/demangle.h</filename>.
</para>
</sect2>
<sect2id="api.rel_410"xreflabel="api.rel_410">
<title><constant>4.1</constant></title>
<para>
</para>
<para>
Removal of <filenameclass="headerfile">cassert</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,
types, namespace <code>pb_assoc</code>.
</para>
<para> Extensions for typelists added in <filenameclass="headerfile">ext/typelist.h</filename>.
</para>
<para> Extension for policy-based <code>basic_string</code> first added: <code>__gnu_cxx::__versa_string</code> in <filenameclass="headerfile">ext/vstring.h</filename>.
</para>
</sect2>
<sect2id="api.rel_420"xreflabel="api.rel_420">
<title><constant>4.2</constant></title>
<para>
</para>
<para> Default visibility attributes applied to <code>namespace std</code>. Support for <code>-fvisibility</code>.
</para>
<para>TR1 <filenameclass="headerfile">random</filename>, <filenameclass="headerfile">complex</filename>, and C compatibility headers added.</para>
<para> Extensions for concurrent programming consolidated
into <filenameclass="headerfile">ext/concurrence.h</filename> and <filenameclass="headerfile">ext/atomicity.h</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 <filenameclass="headerfile">ext/type_traits.h</filename>. Additional traits are added
<filenameclass="headerfile">hash_map</filename> and <filenameclass="headerfile">hash_set</filename>
</para>
</listitem>
<listitem>
<para>Added in C++0x</para>
<para>
<filenameclass="headerfile">auto_ptr.h</filename> and <filenameclass="headerfile">binders.h</filename>
</para>
</listitem>
</itemizedlist>
<para>
Header dependency streamlining.
</para>
<itemizedlist>
<listitem><para><filenameclass="headerfile">algorithm</filename> no longer includes <filenameclass="headerfile">climits</filename>, <filenameclass="headerfile">cstring</filename>, or <filenameclass="headerfile">iosfwd</filename></para></listitem>
<listitem><para><filenameclass="headerfile">bitset</filename> no longer includes <filenameclass="headerfile">istream</filename> or <filenameclass="headerfile">ostream</filename>, adds <filenameclass="headerfile">iosfwd</filename></para></listitem>
<listitem><para><filenameclass="headerfile">functional</filename> no longer includes <filenameclass="headerfile">cstddef</filename></para></listitem>
<listitem><para><filenameclass="headerfile">iomanip</filename> no longer includes <filenameclass="headerfile">istream</filename>, <filenameclass="headerfile">istream</filename>, or <filenameclass="headerfile">functional</filename>, adds <filenameclass="headerfile">ioswd</filename></para></listitem>
<listitem><para><filenameclass="headerfile">numeric</filename> no longer includes <filenameclass="headerfile">iterator</filename></para></listitem>
<listitem><para><filenameclass="headerfile">string</filename> no longer includes <filenameclass="headerfile">algorithm</filename> or <filenameclass="headerfile">memory</filename></para></listitem>
<listitem><para><filenameclass="headerfile">valarray</filename> no longer includes <filenameclass="headerfile">numeric</filename> or <filenameclass="headerfile">cstdlib</filename></para></listitem>
<listitem><para><filenameclass="headerfile">tr1/hashtable</filename> no longer includes <filenameclass="headerfile">memory</filename> or <filenameclass="headerfile">functional</filename></para></listitem>
<listitem><para><filenameclass="headerfile">tr1/memory</filename> no longer includes <filenameclass="headerfile">algorithm</filename></para></listitem>
<listitem><para><filenameclass="headerfile">tr1/random</filename> no longer includes <filenameclass="headerfile">algorithm</filename> or <filenameclass="headerfile">fstream</filename></para></listitem>
</itemizedlist>
<para>
Debug mode for <filenameclass="headerfile">unordered_map</filename> and <filenameclass="headerfile">unordered_set</filename>.
</para>
<para>
Parallel mode first appears.
</para>
<para>Variadic template implementations of items in <filenameclass="headerfile">tuple</filename> and