<section xmlns="http://docbook.org/ns/docbook" version="5.0"
	 xml:id="appendix.porting.api" xreflabel="api">
<?dbhtml filename="api.html"?>

<info><title>API Evolution and Deprecation History</title>
  <keywordset>
    <keyword>ISO C++</keyword>
    <keyword>api</keyword>
    <keyword>evolution</keyword>
    <keyword>deprecation</keyword>
    <keyword>history</keyword>
  </keywordset>
</info>


<para>
A list of user-visible changes, in chronological order
</para>

<section xml:id="api.rel_300"><info><title><constant>3.0</constant></title></info>


  <para>
Extensions moved to <filename class="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 <filename class="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 <filename class="headerfile">&lt;backward/strstream&gt;</filename> added.</para>

<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>



</section>

<section xml:id="api.rel_310"><info><title><constant>3.1</constant></title></info>

  <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: <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>
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 <filename class="headerfile">&lt;ext/rb_tree&gt;</filename>.
</para>

<para>
Removal of <filename class="headerfile">&lt;ext/tree&gt;</filename>, moved to <filename class="headerfile">&lt;backward/tree.h&gt;</filename>.
</para>

</section>

<section xml:id="api.rel_320"><info><title><constant>3.2</constant></title></info>

  <para>
  </para>
<para>Symbol versioning introduced for shared library.</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>

   <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
   <code>free</code>. For the 3.2 and 3.3 release series the same
   functionality was spelled <literal>_GLIBCXX_FORCE_NEW</literal>. From
   GCC 3.4 onwards the default allocator uses <code>new</code> anyway,
   but for the optional pooling allocators the functionality is enabled by
   setting <literal>GLIBCXX_FORCE_NEW</literal> in the environment, see
   <link linkend="manual.ext.allocator.mt">the mt allocator chapter</link>
   for details.
   </para>


<para>Error handling in iostreams cleaned up, made consistent. </para>


</section>

<section xml:id="api.rel_330"><info><title><constant>3.3</constant></title></info>

  <para>
  </para>
</section>

<section xml:id="api.rel_340"><info><title><constant>3.4</constant></title></info>

  <para>
  </para>
<para>
Large file support.
</para>

<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>
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
part of this, the following extensions are
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>
This is a change from all previous versions, and may require
source-level changes due to allocator-related changes to structures
names and template parameters, filenames, and file locations. Some,
like <code>__simple_alloc, __allocator, __alloc, </code> and <code>
_Alloc_traits</code> have been removed.
</para>

<para>Default behavior of <code>std::allocator</code> has changed.</para>

<para>
   Previous versions prior to 3.4 cache allocations in a memory
   pool, instead of passing through to call the global allocation
   operators (i.e., <classname>__gnu_cxx::pool_allocator</classname>).  More
   recent versions default to the
   simpler <classname>__gnu_cxx::new_allocator</classname>.
</para>

<para> Previously, all allocators were written to the SGI
   style, and all STL containers expected this interface. This
   interface had a traits class called <code>_Alloc_traits</code> that
   attempted to provide more information for compile-time allocation
   selection and optimization. This traits class had another allocator
   wrapper, <code>__simple_alloc&lt;T,A&gt;</code>, which was a
   wrapper around another allocator, A, which itself is an allocator
   for instances of T. But wait, there's more:
   <code>__allocator&lt;T,A&gt;</code> is another adapter.  Many of
   the provided allocator classes were SGI style: such classes can be
   changed to a conforming interface with this wrapper:
   <code>__allocator&lt;T, __alloc&gt;</code> is thus the same as
   <code>allocator&lt;T&gt;</code>.
   </para>

   <para> The class <classname>allocator</classname> used the typedef
   <type>__alloc</type> to select an underlying allocator that
   satisfied memory allocation requests. The selection of this
   underlying allocator was not user-configurable.
   </para>

<table frame="all" xml:id="table.extension_allocators">
<title>Extension Allocators</title>

<tgroup cols="4" align="left" colsep="1" rowsep="1">
<colspec colname="c1"/>
<colspec colname="c2"/>
<colspec colname="c3"/>
<colspec colname="c4"/>

  <thead>
    <row>
      <entry>Allocator (3.4)</entry>
      <entry>Header (3.4)</entry>
      <entry>Allocator (3.[0-3])</entry>
      <entry>Header (3.[0-3])</entry>
    </row>
  </thead>

  <tbody>
  <row>
    <entry><classname>__gnu_cxx::new_allocator&lt;T&gt;</classname></entry>
    <entry><filename class="headerfile">&lt;ext/new_allocator.h&gt;</filename></entry>
    <entry><classname>std::__new_alloc</classname></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">&lt;ext/malloc_allocator.h&gt;</filename></entry>
    <entry><classname>std::__malloc_alloc_template&lt;int&gt;</classname></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">&lt;ext/debug_allocator.h&gt;</filename></entry>
    <entry><classname>std::debug_alloc&lt;T&gt;</classname></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">&lt;ext/pool_allocator.h&gt;</filename></entry>
    <entry><classname>std::__default_alloc_template&lt;bool,int&gt;</classname></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">&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">&lt;ext/bitmap_allocator.h&gt;</filename></entry>
    <entry> </entry>
    <entry> </entry>
  </row>
  </tbody>
</tgroup>
</table>

   <para> 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.
   </para>

<table frame="all" xml:id="table.extension_allocators2">
<title>Extension Allocators Continued</title>

<tgroup cols="3" align="left" colsep="1" rowsep="1">
<colspec colname="c1"/>
<colspec colname="c2"/>
<colspec colname="c3"/>

<thead>
  <row>
    <entry>Allocator</entry>
    <entry>Include</entry>
    <entry>Version</entry>
  </row>
</thead>

<tbody>
  <row>
    <entry><classname>__gnu_cxx::array_allocator&lt;T&gt;</classname></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">&lt;ext/throw_allocator.h&gt;</filename></entry>
    <entry>4.2.0</entry>
  </row>
</tbody>
</tgroup>
</table>


<para>
Debug mode first appears.
</para>

<para>
Precompiled header support <acronym>PCH</acronym> support.
</para>

<para>
Macro guard for changed, from <literal>_GLIBCPP_</literal> to <literal>_GLIBCXX_</literal>.
</para>

<para>
Extension <filename class="headerfile">&lt;ext/stdio_sync_filebuf.h&gt;</filename> added.
</para>

<para>
Extension <filename class="headerfile">&lt;ext/demangle.h&gt;</filename> added.
</para>


</section>

<section xml:id="api.rel_400"><info><title><constant>4.0</constant></title></info>

  <para>
  </para>
<para>
TR1 features first appear.
</para>

<para>
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">&lt;ext/codecvt_specializations.h&gt;</filename>.
</para>

<para>
Removal of <filename class="headerfile">&lt;ext/demangle.h&gt;</filename>.
</para>


</section>

<section xml:id="api.rel_410"><info><title><constant>4.1</constant></title></info>

  <para>
  </para>


<para>
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,
types, namespace <code>pb_assoc</code>.
</para>



<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">&lt;ext/vstring.h&gt;</filename>.
</para>

</section>

<section xml:id="api.rel_420"><info><title><constant>4.2</constant></title></info>

  <para>
  </para>


<para> Default visibility attributes applied to <code>namespace std</code>. Support for <code>-fvisibility</code>.
</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">&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">&lt;ext/type_traits.h&gt;</filename>. Additional traits are added
(<code>__conditional_type</code>, <code>__enable_if</code>, others.)
</para>

<para> Extensions for policy-based data structures revised. New includes,
types, namespace moved to <code>__pb_ds</code>.
</para>

<para> Extensions for debug mode modified: now nested in <code>namespace
std::__debug</code> and extensions in <code>namespace
__gnu_cxx::__debug</code>.</para>

<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>

<section xml:id="api.rel_430"><info><title><constant>4.3</constant></title></info>

  <para>
  </para>


<para>
C++0X features first appear.
</para>

<para>TR1 <filename class="headerfile">&lt;regex&gt;</filename> and <filename class="headerfile">&lt;cmath&gt;</filename>'s mathematical special function added.
</para>

<para>
Backward include edit.
</para>
<itemizedlist>
  <listitem>
    <para>Removed</para>
  <para>
<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">&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">&lt;auto_ptr.h&gt;</filename> and <filename class="headerfile">&lt;binders.h&gt;</filename>
  </para>
  </listitem>

</itemizedlist>

<para>
Header dependency streamlining.
</para>

<itemizedlist>
  <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">&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">&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">&lt;tuple&gt;</filename> and
    <filename class="headerfile">&lt;functional&gt;</filename>.
</para>

<para>Default <code>what</code> implementations give more elaborate
    exception strings for <code>bad_cast</code>,
    <code>bad_typeid</code>, <code>bad_exception</code>, and
    <code>bad_alloc</code>.
</para>

<para>
PCH binary files no longer installed. Instead, the source files are installed.
</para>

<para>
Namespace pb_ds moved to __gnu_pb_ds.
</para>

</section>


<section xml:id="api.rel_440"><info><title><constant>4.4</constant></title></info>

  <para>
  </para>

<para>
C++0X features.
</para>

<itemizedlist>
<listitem>
  <para>
    Added.
  </para>
  <para>
    <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>

<listitem>
  <para>
    Updated and improved.
  </para>
  <para>
    <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>

<listitem>
  <para>
    Use of the GNU extension namespace association converted to inline namespaces.
  </para>
</listitem>

<listitem>
  <para>
    Preliminary support for <classname>initializer_list</classname>
    and defaulted and deleted constructors in container classes.
  </para>
</listitem>

<listitem>
  <para>
    <classname>unique_ptr</classname>.
  </para>
</listitem>

<listitem>
  <para>
    Support for new character types <type>char16_t</type>
    and <type>char32_t</type> added
    to <classname>char_traits</classname>, <classname>basic_string</classname>, <classname>numeric_limits</classname>,
    and assorted compile-time type traits.
  </para>
</listitem>

<listitem>
  <para>
    Support for string conversions <function>to_string</function>
    and <function>to_wstring</function>.
  </para>
</listitem>

<listitem>
  <para>
    Member functions taking string arguments were added to iostreams
    including <classname>basic_filebuf</classname>, <classname>basic_ofstream</classname>,
    and <classname>basic_ifstream</classname>.
  </para>
</listitem>

<listitem>
  <para>
    Exception propagation support,
    including <classname>exception_ptr</classname>, <function>current_exception</function>, <function>copy_exception</function>,
    and <function>rethrow_exception</function>.
  </para>
</listitem>
</itemizedlist>


  <para>
Uglification of <literal>try</literal> to <literal>__try</literal>
and <literal>catch</literal> to <literal>__catch</literal>.
  </para>

  <para>
Audit of internal mutex usage, conversion to functions returning static
local mutex.
  </para>

<para> Extensions
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>.
</para>
</section>

<section xml:id="api.rel_450"><info><title><constant>4.5</constant></title></info>

  <para>
  </para>

<para>
C++0X features.
</para>

<itemizedlist>
<listitem>
  <para>
    Added.
  </para>
  <para>
    <filename class="headerfile">&lt;functional&gt;</filename>,
    <filename class="headerfile">&lt;future&gt;</filename>,
    <filename class="headerfile">&lt;random&gt;</filename>
  </para>
</listitem>

<listitem>
  <para>
    Updated and improved.
  </para>
  <para>
    <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>

<listitem>
  <para>
    Add support for explicit operators and standard layout types.
  </para>
</listitem>
</itemizedlist>

<para>
Profile mode first appears.
</para>

<para>
Support for decimal floating-point arithmetic, including <classname>decimal32</classname>, <classname>decimal64</classname>, and <classname>decimal128</classname>.
</para>

<para>
Python pretty-printers are added for use with appropriately-advanced versions of <command>gdb</command>.
</para>

<para>
Audit for application of function attributes nothrow, const, pure, and noreturn.
</para>

<para>
The default behavior for comparing typeinfo names changed, so
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">&lt;ext/throw_allocator.h&gt;</filename>.
</para>
</section>

<section xml:id="api.rel_460"><info><title><constant>4.6</constant></title></info>

<para>
  Use constexpr and nullptr where appropriate throughout the library.
</para>

<para>
  The library was updated to avoid including
  <filename class="headerfile">&lt;stddef.h&gt;</filename> in order
  to reduce namespace pollution.
</para>

<para>Reference-count annotations to assist data race detectors.
</para>

<para>
  Added <function>make_exception_ptr</function> as an alias of
  <function>copy_exception</function>.
</para>

</section>

<section xml:id="api.rel_470"><info><title><constant>4.7</constant></title></info>

<para>Use of noexcept throughout library.</para>

<para>Partial support for C++11 allocators first appears.</para>

<para>
  <classname>monotonic_clock</classname> renamed to
  <classname>steady_clock</classname> as required by the final C++11
  standard.
</para>

<para>A new clocale model for newlib is available.</para>

<para>
  The library was updated to avoid including
  <filename class="headerfile">&lt;unistd.h&gt;</filename> in order
  to reduce namespace pollution.
</para>

<para>Debug Mode was improved for unordered containers. </para>

</section>

<section xml:id="api.rel_480"><info><title><constant>4.8</constant></title></info>

<para>
  New random number engines and distributions.
  Optimisations for random.
</para>

<para>New --enable-libstdcxx-verbose configure option</para>

<para>
  The --enable-libstdcxx-time configure option becomes unnecessary given a
  sufficiently recent glibc.
</para>

</section>

<section xml:id="api.rel_490"><info><title><constant>4.9</constant></title></info>

<para> Implementation of <classname>regex</classname> completed. </para>

<para> C++14 library and TS implementations are added. </para>

<para> <function>copy_exception</function> deprecated. </para>

<para> <classname>__gnu_cxx::array_allocator</classname> deprecated. </para>

</section>

<section xml:id="api.rel_51"><info><title><constant>5</constant></title></info>

<para>
  ABI transition adds new implementations of several components, using the
  <code>abi_tag</code> attribute and the <code>__cxx11</code> inline
  namespace to distinguish the new entities from the old ones.
</para>

<itemizedlist>
<listitem>
  <para>
    Use of the new or old ABI can be selected per-translation unit with the
    <xref linkend="manual.intro.using.macros"><symbol>_GLIBCXX_USE_CXX11_ABI</symbol>
    macro</xref>.
  </para>
</listitem>
<listitem>
  <para>
    New non-reference-counted <classname>string</classname> implementation.
  </para>
</listitem>
<listitem>
  <para>
    New <classname>list</classname> implementation containing a new
    data member in order to provide O(1) <function>size()</function>.
  </para>
</listitem>
<listitem>
  <para>
    New <classname>ios_base::failure</classname> implementation inheriting
    from <classname>system_error</classname>.
  </para>
</listitem>
</itemizedlist>

<para>
  C++11 support completed (movable iostreams, new I/O manipulators,
  Unicode conversion utilities, atomic operations for
  <classname>shared_ptr</classname>, functions for notifying condition
  variables and making futures ready at thread exit).
</para>

<para>
   Changed formatting of floating point types when
   <code>ios_base::fixed|ios_base::scientific</code> is set in a stream's
   format flags.
</para>

<para> Improved C++14 support and TS implementations. </para>

<para> New random number engines and distributions. </para>

<para>
  GDB Xmethods for containers and <classname>unique_ptr</classname> added.
</para>

<para>
  <classname>has_trivial_default_constructor</classname>,
  <classname>has_trivial_copy_constructor</classname> and
  <classname>has_trivial_copy_assign</classname> deprecated.
</para>

<section xml:id="api.rel_53"><info><title><constant>5.3</constant></title></info>
<para> Experimental implementation of the C++ Filesystem TS added. </para>

</section>

</section>

<section xml:id="api.rel_61"><info><title><constant>6</constant></title></info>

<para> C++14 support completed. </para>

<para>
  Support for mathematical special functions (ISO/IEC 29124:2010) added.
</para>

<para>
  Assertions to check function preconditions can be enabled by defining the
  <link linkend="manual.intro.using.macros"><symbol>_GLIBCXX_ASSERTIONS</symbol>
  macro</link>.
  The initial set of assertions are a subset of the checks enabled by
  the Debug Mode, but without the ABI changes and changes to algorithmic
  complexity that are caused by enabling the full Debug Mode.
</para>

</section>

<section xml:id="api.rel_71"><info><title><constant>7</constant></title></info>

<para>
  The type of exception thrown by iostreams changed to the <code>cxx11</code>
  ABI version of <classname>std::ios_base::failure</classname>.
</para>

<para>
  Experimental C++17 support added, including most new library features.
  The meaning of <classname>shared_ptr&lt;T[]&gt;</classname> changed to
  match the C++17 semantics.
</para>

<para>
  <xref linkend="manual.intro.using.macros"><symbol>_GLIBCXX_RELEASE</symbol>
  macro</xref> added.
</para>

<para>
  <classname>has_trivial_default_constructor</classname>,
  <classname>has_trivial_copy_constructor</classname> and
  <classname>has_trivial_copy_assign</classname> removed.
</para>

<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>
  Including new C++14 or C++17 headers without a suitable <option>-std</option>
  no longer causes compilation to fail via <literal>#error</literal>.
  Instead the header is simply empty and doesn't define anything.
</para>

</section>

</section>

<section xml:id="api.rel_81"><info><title><constant>8</constant></title></info>

<para>
  The exceptions thrown by iostreams can now be caught by handlers for either
  version of <classname>std::ios_base::failure</classname>.
</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.
</para>

<para>
  <function>std::char_traits&lt;char16_t&gt;::to_int_type(u'\uFFFF')</function>
  now returns <literal>0xFFFD</literal>, as <literal>0xFFFF</literal> is
  used for <function>std::char_traits&lt;char16_t&gt;::eof()</function>.
</para>

<para>
  The extension allowing arithmetic on
  <classname>std::atomic&lt;void*&gt;</classname> and types like
  <classname>std::atomic&lt;R(*)()&gt;</classname> was deprecated.
</para>

<para>
  The <function>std::uncaught_exception</function> function was deprecated
  for C++17 mode.
</para>

<para>
  The nested typedefs <type>std::hash::result_type</type> and
  <type>std::hash::argument_type</type> were deprecated for C++17 mode.
</para>

<para>
  The deprecated iostream members <type>ios_base::io_state</type>,
  <type>ios_base::open_mode</type>, <type>ios_base::seek_dir</type>, and
  <function>basic_streambuf::stossc</function> were removed for C++17 mode.
</para>

<para>
  The non-standard C++0x <function>std::copy_exception</function> function
  was removed.
</para>

<para>
  For <option>-std=c++11</option>, <option>-std=c++14</option>, and
  <option>-std=c++17</option> modes the <filename>&lt;complex.h&gt;</filename>
  header no longer includes the C99 <filename>&lt;complex.h&gt;</filename>
  header.
</para>

<para>
  For the non-default <option>--enable-symvers=gnu-versioned-namespace</option>
  configuration, the shared library SONAME has been changed to
  <filename>libstdc++.so.8</filename>.
</para>

</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 xml:id="api.rel_101"><info><title><constant>10</constant></title></info>
<para> Deprecated features removed:
<itemizedlist>
<listitem> Profile Mode </listitem>
<listitem> <classname>__gnu_cxx::array_allocator</classname> </listitem>
</itemizedlist>
</para>

<para>
  The non-standard <function>std::__is_nullptr_t</function> type trait
  was deprecated.
</para>

<para>
  The <classname>std::packaged_task</classname> constructors taking
  an allocator argument are only defined for C++11 and C++14.
</para>

<para>
  Several members of <classname>std::allocator</classname> were removed
  for C++20 mode. The removed functionality has been provided by
  <classname>std::allocator_traits</classname> since C++11 and that should
  be used instead.
</para>

<para>
  The type of the <classname>std::iterator</classname> base class of
  <classname>std::istreambuf_iterator</classname> was changed to be
  consistent for all <option>-std</option> modes.
  Before GCC 10.1 the base class had one type in C++98 mode and a
  different type in C++11 and later modes. The type in C++98 mode
  was changed to be the same as for C++11 and later.
</para>

<para>
  Experimental C++2a support improved, with new headers
  <filename class="headerfile">&lt;concepts&gt;</filename>,
  <filename class="headerfile">&lt;ranges&gt;</filename>,
  <filename class="headerfile">&lt;compare&gt;</filename>,
  <filename class="headerfile">&lt;coroutine&gt;</filename>,
  <filename class="headerfile">&lt;numbers&gt;</filename>,
  <filename class="headerfile">&lt;span&gt;</filename>,
  and
  <filename class="headerfile">&lt;stop_token&gt;</filename>
  added.
</para>

</section>

<section xml:id="api.rel_111"><info><title><constant>11</constant></title></info>

<para>
  The <option>--enable-cheaders=c_std</option> configuration
  was deprecated.
</para>

<para>
  When compiling as C++20, the <function>operator&gt;&gt;</function> overloads
  for extracting strings into character buffers only work with arrays,
  not raw pointers.
</para>

<para>
  <code>std::string::reserve(n)</code> will no longer reduce
  the string's capacity.
  Calling <function>reserve()</function> with no arguments is equivalent
  to <function>shrink_to_fit()</function>, but is deprecated.
  <function>shrink_to_fit()</function> should be used instead.
</para>

</section>

<section xml:id="api.rel_121"><info><title><constant>12</constant></title></info>

<para>
The <function>std::random_shuffle</function> algorithms are deprecated
for C++14 and later. The C++11 <function>std::shuffle</function> algorithm
can be used instead.
</para>

</section>

</section>
