API Evolution and Deprecation History

The latest version of this document is always available at http://gcc.gnu.org/onlinedocs/libstdc++/17_intro/api.html.

To the libstdc++ homepage.


API Evolution, Deprecation, and History of User Visible Changes

A list of user-visible changes, by release version.

3.0

Extensions moved to include/ext.

Include files from the SGI/HP sources that pre-date the ISO standard are added. These files are placed into the include/backward directory and a deprecated warning is added that notifies on inclusion (-Wno-deprecated deactivates the warning.)

Deprecated include <backward/strstream> added.

Removal of include <builtinbuf.h>, <indstream.h>, <parsestream.h>, <PlotFile.h>, <SFile.h>, <stdiostream.h>, and <stream.h>.

3.1

Extensions from SGI/HP moved from namespace std to namespace __gnu_cxx. As part of this, the following new includes are added: <ext/algorithm>, <ext/functional>, <ext/iterator>, <ext/memory>, and <ext/numeric>.

Extensions to basic_filebuf introduced: __gnu_cxx::enc_filebuf, and __gnu_cxx::stdio_filebuf.

Extensions to tree data structures added in <ext/rb_tree>.

Removal of <ext/tree>, moved to <backward/tree.h>.

3.2

Symbol versioning introduced for shared library.

Removal of include <backward/strstream.h>.

3.3

Allocator changes. Change __malloc_alloc to malloc_allocator and __new_alloc to new_allocator.

Error handling in iostreams cleaned up, made consistent.

3.4

Large file support.

Extensions for generic characters and char_traits added in <ext/pod_char_traits.h>.

Support for wchar_t specializations of basic_filebuf enhanced to support UTF-8 and Unicode, depending on host. More hosts support basic wchar_t functionality.

Support for char_traits beyond builtin types.

Conformant allocator class and usage in containers. As part of this, the following extensions are added: <ext/bitmap_allocator.h>, <ext/debug_allocator.h>, <ext/mt_allocator.h>, <ext/malloc_allocator.h>,<ext/new_allocator.h>, <ext/pool_allocator.h>.

Debug mode first appears.

PCH support.

Macro guard for libstdc++ changed, from _GLIBCPP_ to _GLIBCXX_.

Extension <ext/stdio_sync_filebuf.h> added.

Extension <ext/demangle.h> added.

4.0

TR1 features first appear.

Extension allocator <ext/array_allocator.h> added.

Extension codecvt specializations moved to <ext/codecvt_specializations.h>.

Removal of <ext/demangle.h>.

4.1

Removal of <cassert> from all standard headers: now has to be explicitly included for std::assert calls.

Extensions for policy-based data structures first added. New includes, types, namespace pb_assoc.

Extensions for typelists added in <ext/typelist.h>.

Extension for policy-based basic_string first added: __gnu_cxx::__versa_string in <ext/vstring.h>.

4.2

Default visibility attributes applied to namespace std. Support for -fvisibility.

TR1 <random>, <complex>, and C compatibility headers added.

Extensions for concurrent programming consolidated into <ext/concurrence.h> and <ext/atomicity.h>, including change of namespace to __gnu_cxx in some cases. Added types include _Lock_policy, __concurrence_lock_error, __concurrence_unlock_error, __mutex, __scoped_lock.

Extensions for type traits consolidated into <ext/type_traits.h>. Additional traits are added (__conditional_type, __enable_if, others.)

Extensions for policy-based data structures revised. New includes, types, namespace moved to __pb_ds.

Extensions for debug mode modified: now nested in namespace std::__debug and extensions in namespace __gnu_cxx::__debug.

Extensions added: <ext/typelist.h> and <ext/throw_allocator.h>.

4.3

C++0X features first appear.

TR1 <regex> and <cmath>'s mathematical special function added.

Backward include edit.

Header dependency streamlining.

Debug mode for <unordered_map> and <unordered_set>.

Parallel mode first appears.

Variadic template implementations of items in <tuple> and <functional>.

Default what implementations give more elaborate exception strings for bad_cast, bad_typeid, bad_exception, and bad_alloc.

PCH binary files no longer installed. Instead, the source files are installed.

Namespace pb_ds moved to __gnu_pb_ds.