From cad3fc8c59c1fc94defff1d211f683bef2bc1f05 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 19 Mar 2019 09:38:41 +0000 Subject: [PATCH] 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 --- libstdc++-v3/ChangeLog | 9 + libstdc++-v3/doc/html/index.html | 2 +- libstdc++-v3/doc/html/manual/api.html | 150 ++++++++----- libstdc++-v3/doc/html/manual/appendix.html | 2 +- .../doc/html/manual/appendix_porting.html | 2 +- libstdc++-v3/doc/html/manual/index.html | 2 +- libstdc++-v3/doc/html/manual/memory.html | 6 +- .../doc/html/manual/using_macros.html | 2 +- libstdc++-v3/doc/xml/manual/allocator.xml | 9 +- libstdc++-v3/doc/xml/manual/evolution.xml | 207 +++++++++++------- libstdc++-v3/doc/xml/manual/using.xml | 2 +- 11 files changed, 242 insertions(+), 151 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 59f857db3fe..59f6cf65720 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,12 @@ +2019-03-19 Jonathan Wakely + + * 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 PR libstdc++/89461 diff --git a/libstdc++-v3/doc/html/index.html b/libstdc++-v3/doc/html/index.html index 576e96373b7..7a8c652cabe 100644 --- a/libstdc++-v3/doc/html/index.html +++ b/libstdc++-v3/doc/html/index.html @@ -142,7 +142,7 @@ Existing tests
C++11 Requirements Test Sequence Descriptions -
ABI Policy and Guidelines
The C++ Interface
Versioning
Goals
History
Prerequisites
Configuring
Checking Active
Allowed Changes
Prohibited Changes
Implementation
Testing
Single ABI Testing
Multiple ABI Testing
Outstanding Issues
API Evolution and Deprecation History
3.0
3.1
3.2
3.3
3.4
4.0
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
5
5.3
6
7
7.3
8
Backwards Compatibility
First
No ios_base
No cout in <ostream.h>, no cin in <istream.h>
Second
Namespace std:: not supported
Illegal iterator usage
isspace from <cctype> is a macro +
ABI Policy and Guidelines
The C++ Interface
Versioning
Goals
History
Prerequisites
Configuring
Checking Active
Allowed Changes
Prohibited Changes
Implementation
Testing
Single ABI Testing
Multiple ABI Testing
Outstanding Issues
API Evolution and Deprecation History
3.0
3.1
3.2
3.3
3.4
4.0
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
5
5.3
6
7
7.2
7.3
8
9
Backwards Compatibility
First
No ios_base
No cout in <ostream.h>, no cin in <istream.h>
Second
Namespace std:: not supported
Illegal iterator usage
isspace from <cctype> is a macro
No vector::at, deque::at, string::at
No std::char_traits<char>::eof
No string::clear
Removal of ostream::form and istream::scan extensions diff --git a/libstdc++-v3/doc/html/manual/api.html b/libstdc++-v3/doc/html/manual/api.html index e2d3c62d29f..363569c9c5a 100644 --- a/libstdc++-v3/doc/html/manual/api.html +++ b/libstdc++-v3/doc/html/manual/api.html @@ -12,21 +12,21 @@ 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. +

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. +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. +Extensions to tree data structures added in <ext/rb_tree>.

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

3.2

-

Symbol versioning introduced for shared library.

Removal of include backward/strstream.h.

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

For GCC releases from 2.95 through the 3.1 series, defining +

Symbol versioning introduced for shared library.

Removal of include <backward/strstream.h>.

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

For GCC releases from 2.95 through the 3.1 series, defining __USE_MALLOC on the gcc command line would change the default allocation strategy to instead use malloc and free. For the 3.2 and 3.3 release series the same @@ -39,7 +39,7 @@ Removal of ext/tree, moved to

3.4

Large file support. -

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

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.

@@ -47,7 +47,7 @@ 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. +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>.

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 have been removed. __alloc to select an underlying allocator that satisfied memory allocation requests. The selection of this underlying allocator was not user-configurable. -

Table B.6. Extension Allocators

Allocator (3.4)Header (3.4)Allocator (3.[0-3])Header (3.[0-3])
__gnu_cxx::new_allocator<T>ext/new_allocator.hstd::__new_allocmemory
__gnu_cxx::malloc_allocator<T>ext/malloc_allocator.hstd::__malloc_alloc_template<int>memory
__gnu_cxx::debug_allocator<T>ext/debug_allocator.hstd::debug_alloc<T>memory
__gnu_cxx::__pool_alloc<T>ext/pool_allocator.hstd::__default_alloc_template<bool,int>memory
__gnu_cxx::__mt_alloc<T>ext/mt_allocator.h
__gnu_cxx::bitmap_allocator<T>ext/bitmap_allocator.h

Releases after gcc-3.4 have continued to add to the collection +

Table B.6. Extension Allocators

Allocator (3.4)Header (3.4)Allocator (3.[0-3])Header (3.[0-3])
__gnu_cxx::new_allocator<T><ext/new_allocator.h>std::__new_alloc<memory>
__gnu_cxx::malloc_allocator<T><ext/malloc_allocator.h>std::__malloc_alloc_template<int><memory>
__gnu_cxx::debug_allocator<T><ext/debug_allocator.h>std::debug_alloc<T><memory>
__gnu_cxx::__pool_alloc<T><ext/pool_allocator.h>std::__default_alloc_template<bool,int><memory>
__gnu_cxx::__mt_alloc<T><ext/mt_allocator.h>
__gnu_cxx::bitmap_allocator<T><ext/bitmap_allocator.h>

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

Table B.7. Extension Allocators Continued

AllocatorIncludeVersion
__gnu_cxx::array_allocator<T>ext/array_allocator.h4.0.0
__gnu_cxx::throw_allocator<T>ext/throw_allocator.h4.2.0

+

Table B.7. Extension Allocators Continued

AllocatorIncludeVersion
__gnu_cxx::array_allocator<T><ext/array_allocator.h>4.0.0
__gnu_cxx::throw_allocator<T><ext/throw_allocator.h>4.2.0

Debug mode first appears.

Precompiled header support PCH support.

Macro guard for changed, from _GLIBCPP_ to _GLIBCXX_.

-Extension ext/stdio_sync_filebuf.h added. +Extension <ext/stdio_sync_filebuf.h> added.

-Extension ext/demangle.h added. +Extension <ext/demangle.h> added.

4.0

TR1 features first appear.

-Extension allocator ext/array_allocator.h added. +Extension allocator <ext/array_allocator.h> added.

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

-Removal of ext/demangle.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. +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. +

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

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 +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. +__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. +

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

Backward include edit.

  • Removed

    -algobase.h algo.h alloc.h bvector.h complex.h -defalloc.h deque.h fstream.h function.h hash_map.h hash_set.h -hashtable.h heap.h iomanip.h iostream.h istream.h iterator.h -list.h map.h multimap.h multiset.h new.h ostream.h pair.h queue.h rope.h set.h slist.h stack.h streambuf.h stream.h tempbuf.h -tree.h vector.h +<algobase.h> <algo.h> <alloc.h> <bvector.h> <complex.h> +<defalloc.h> <deque.h> <fstream.h> <function.h> <hash_map.h> <hash_set.h> +<hashtable.h> <heap.h> <iomanip.h> <iostream.h> <istream.h> <iterator.h> +<list.h> <map.h> <multimap.h> <multiset.h> <new.h> <ostream.h> <pair.h> <queue.h> <rope.h> <set.h> <slist.h> <stack.h> <streambuf.h> <stream.h> <tempbuf.h> +<tree.h> <vector.h>

  • Added

    - hash_map and hash_set + <hash_map> and <hash_set>

  • Added in C++11

    - auto_ptr.h and binders.h + <auto_ptr.h> and <binders.h>

Header dependency streamlining. -

  • algorithm no longer includes climits, cstring, or iosfwd

  • bitset no longer includes istream or ostream, adds iosfwd

  • functional no longer includes cstddef

  • iomanip no longer includes istream, istream, or functional, adds ioswd

  • numeric no longer includes iterator

  • string no longer includes algorithm or memory

  • valarray no longer includes numeric or cstdlib

  • tr1/hashtable no longer includes memory or functional

  • tr1/memory no longer includes algorithm

  • tr1/random no longer includes algorithm or fstream

-Debug mode for unordered_map and unordered_set. +

  • <algorithm> no longer includes <climits>, <cstring>, or <iosfwd>

  • <bitset> no longer includes <istream> or <ostream>, adds <iosfwd>

  • <functional> no longer includes <cstddef>

  • <iomanip> no longer includes <istream>, <istream>, or <functional>, adds <ioswd>

  • <numeric> no longer includes <iterator>

  • <string> no longer includes <algorithm> or <memory>

  • <valarray> no longer includes <numeric> or <cstdlib>

  • <tr1/hashtable> no longer includes <memory> or <functional>

  • <tr1/memory> no longer includes <algorithm>

  • <tr1/random> no longer includes <algorithm> or <fstream>

+Debug mode for <unordered_map> and <unordered_set>.

Parallel mode first appears. -

Variadic template implementations of items in tuple and - functional. +

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 @@ -160,20 +160,20 @@ C++0X features.

  • Added.

    - atomic, - chrono, - condition_variable, - forward_list, - initializer_list, - mutex, - ratio, - thread + <atomic>, + <chrono>, + <condition_variable>, + <forward_list>, + <initializer_list>, + <mutex>, + <ratio>, + <thread>

  • Updated and improved.

    - algorithm, - system_error, - type_traits + <algorithm>, + <system_error>, + <type_traits>

  • Use of the GNU extension namespace association converted to inline namespaces.

  • @@ -204,8 +204,8 @@ and catch to __catch. Audit of internal mutex usage, conversion to functions returning static local mutex.

    Extensions -added: ext/pointer.h -and ext/extptr_allocator.h. Support +added: <ext/pointer.h> +and <ext/extptr_allocator.h>. Support for non-standard pointer types has been added to vector and forward_list. @@ -215,15 +215,15 @@ C++0X features.

    • Added.

      - functional, - future, - random + <functional>, + <future>, + <random>

    • Updated and improved.

      - atomic, - system_error, - type_traits + <atomic>, + <system_error>, + <type_traits>

    • Add support for explicit operators and standard layout types.

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

    The default behavior for comparing typeinfo names changed, so -in typeinfo, __GXX_MERGED_TYPEINFO_NAMES +in <typeinfo>, __GXX_MERGED_TYPEINFO_NAMES now defaults to zero. -

    Extensions modified: ext/throw_allocator.h. +

    Extensions modified: <ext/throw_allocator.h>.

4.6

Use constexpr and nullptr where appropriate throughout the library.

The library was updated to avoid including - stddef.h in order + <stddef.h> in order to reduce namespace pollution.

Reference-count annotations to assist data race detectors.

@@ -255,7 +255,7 @@ now defaults to zero. standard.

A new clocale model for newlib is available.

The library was updated to avoid including - unistd.h in order + <unistd.h> in order to reduce namespace pollution.

Debug Mode was improved for unordered containers.

4.8

New random number engines and distributions. @@ -314,7 +314,11 @@ now defaults to zero. has_trivial_default_constructor, has_trivial_copy_constructor and has_trivial_copy_assign removed. -

Profile Mode was deprecated.

7.3

+

Profile Mode was deprecated.

7.2

+ Library Fundamentals TS header + <experimental/source_location> + added. +

7.3

Including new C++14 or C++17 headers without a suitable -std no longer causes compilation to fail via #error. 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 std::ios_base::failure.

+ Improved experimental C++17 support. Headers + <charconv> and + <filesystem>. Experimental implementation of the C++17 Filesystem library added. +

+ Experimental C++2a support + (to_address and endian).

AddressSanitizer annotations added to std::vector 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 --enable-symvers=gnu-versioned-namespace configuration, the shared library SONAME has been changed to libstdc++.so.8. +

9

+ C++17 header + <memory_resource> + added. +

+ Experimental C++2a support improved, with new headers + <bit> and + <version> added. + Support for new character type char8_t added + to char_traits, basic_string, + numeric_limits, + and relevant locale facets and type traits. +

+ Experimental implementation of the Networking TS library added, + with new headers + <experimental/buffer>, + <experimental/executor>, + <experimental/internet>, + <experimental/io_context>, + <experimental/net>, + <experimental/netfwd>, + <experimental/socket>, + and + <experimental/timer>.

\ No newline at end of file diff --git a/libstdc++-v3/doc/html/manual/appendix.html b/libstdc++-v3/doc/html/manual/appendix.html index 75402c5041a..2c7889f42b8 100644 --- a/libstdc++-v3/doc/html/manual/appendix.html +++ b/libstdc++-v3/doc/html/manual/appendix.html @@ -16,7 +16,7 @@ Existing tests
C++11 Requirements Test Sequence Descriptions -
ABI Policy and Guidelines
The C++ Interface
Versioning
Goals
History
Prerequisites
Configuring
Checking Active
Allowed Changes
Prohibited Changes
Implementation
Testing
Single ABI Testing
Multiple ABI Testing
Outstanding Issues
API Evolution and Deprecation History
3.0
3.1
3.2
3.3
3.4
4.0
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
5
5.3
6
7
7.3
8
Backwards Compatibility
First
No ios_base
No cout in <ostream.h>, no cin in <istream.h>
Second
Namespace std:: not supported
Illegal iterator usage
isspace from <cctype> is a macro +
ABI Policy and Guidelines
The C++ Interface
Versioning
Goals
History
Prerequisites
Configuring
Checking Active
Allowed Changes
Prohibited Changes
Implementation
Testing
Single ABI Testing
Multiple ABI Testing
Outstanding Issues
API Evolution and Deprecation History
3.0
3.1
3.2
3.3
3.4
4.0
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
5
5.3
6
7
7.2
7.3
8
9
Backwards Compatibility
First
No ios_base
No cout in <ostream.h>, no cin in <istream.h>
Second
Namespace std:: not supported
Illegal iterator usage
isspace from <cctype> is a macro
No vector::at, deque::at, string::at
No std::char_traits<char>::eof
No string::clear
Removal of ostream::form and istream::scan extensions diff --git a/libstdc++-v3/doc/html/manual/appendix_porting.html b/libstdc++-v3/doc/html/manual/appendix_porting.html index 15209b3a339..5fbba90f8ec 100644 --- a/libstdc++-v3/doc/html/manual/appendix_porting.html +++ b/libstdc++-v3/doc/html/manual/appendix_porting.html @@ -14,7 +14,7 @@ Existing tests
C++11 Requirements Test Sequence Descriptions -
ABI Policy and Guidelines
The C++ Interface
Versioning
Goals
History
Prerequisites
Configuring
Checking Active
Allowed Changes
Prohibited Changes
Implementation
Testing
Single ABI Testing
Multiple ABI Testing
Outstanding Issues
API Evolution and Deprecation History
3.0
3.1
3.2
3.3
3.4
4.0
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
5
5.3
6
7
7.3
8
Backwards Compatibility
First
No ios_base
No cout in <ostream.h>, no cin in <istream.h>
Second
Namespace std:: not supported
Illegal iterator usage
isspace from <cctype> is a macro +
ABI Policy and Guidelines
The C++ Interface
Versioning
Goals
History
Prerequisites
Configuring
Checking Active
Allowed Changes
Prohibited Changes
Implementation
Testing
Single ABI Testing
Multiple ABI Testing
Outstanding Issues
API Evolution and Deprecation History
3.0
3.1
3.2
3.3
3.4
4.0
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
5
5.3
6
7
7.2
7.3
8
9
Backwards Compatibility
First
No ios_base
No cout in <ostream.h>, no cin in <istream.h>
Second
Namespace std:: not supported
Illegal iterator usage
isspace from <cctype> is a macro
No vector::at, deque::at, string::at
No std::char_traits<char>::eof
No string::clear
Removal of ostream::form and istream::scan extensions diff --git a/libstdc++-v3/doc/html/manual/index.html b/libstdc++-v3/doc/html/manual/index.html index 0761c55bfac..aeaa9088a1d 100644 --- a/libstdc++-v3/doc/html/manual/index.html +++ b/libstdc++-v3/doc/html/manual/index.html @@ -123,7 +123,7 @@ Existing tests
C++11 Requirements Test Sequence Descriptions -
ABI Policy and Guidelines
The C++ Interface
Versioning
Goals
History
Prerequisites
Configuring
Checking Active
Allowed Changes
Prohibited Changes
Implementation
Testing
Single ABI Testing
Multiple ABI Testing
Outstanding Issues
API Evolution and Deprecation History
3.0
3.1
3.2
3.3
3.4
4.0
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
5
5.3
6
7
7.3
8
Backwards Compatibility
First
No ios_base
No cout in <ostream.h>, no cin in <istream.h>
Second
Namespace std:: not supported
Illegal iterator usage
isspace from <cctype> is a macro +
ABI Policy and Guidelines
The C++ Interface
Versioning
Goals
History
Prerequisites
Configuring
Checking Active
Allowed Changes
Prohibited Changes
Implementation
Testing
Single ABI Testing
Multiple ABI Testing
Outstanding Issues
API Evolution and Deprecation History
3.0
3.1
3.2
3.3
3.4
4.0
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
5
5.3
6
7
7.2
7.3
8
9
Backwards Compatibility
First
No ios_base
No cout in <ostream.h>, no cin in <istream.h>
Second
Namespace std:: not supported
Illegal iterator usage
isspace from <cctype> is a macro
No vector::at, deque::at, string::at
No std::char_traits<char>::eof
No string::clear
Removal of ostream::form and istream::scan extensions diff --git a/libstdc++-v3/doc/html/manual/memory.html b/libstdc++-v3/doc/html/manual/memory.html index 7b160db60fe..11d13a9dd91 100644 --- a/libstdc++-v3/doc/html/manual/memory.html +++ b/libstdc++-v3/doc/html/manual/memory.html @@ -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. + Table B.6, “Extension Allocators” tracks the changes.

More details on each of these extension allocators follows.

  1. @@ -300,7 +300,7 @@

    A high-performance fixed-size allocator with exponentially-increasing allocations. It has its own - chapter + chapter in the documentation.

  2. bitmap_allocator diff --git a/libstdc++-v3/doc/html/manual/using_macros.html b/libstdc++-v3/doc/html/manual/using_macros.html index dad6564a97d..f4282c9034b 100644 --- a/libstdc++-v3/doc/html/manual/using_macros.html +++ b/libstdc++-v3/doc/html/manual/using_macros.html @@ -116,7 +116,7 @@ enabled for std::vector<T, std::allocator<T>> and only when std::allocator is derived from - new_allocator + new_allocator or malloc_allocator. 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, diff --git a/libstdc++-v3/doc/xml/manual/allocator.xml b/libstdc++-v3/doc/xml/manual/allocator.xml index 93d5c4a30f4..8d49b919ff6 100644 --- a/libstdc++-v3/doc/xml/manual/allocator.xml +++ b/libstdc++-v3/doc/xml/manual/allocator.xml @@ -138,7 +138,6 @@

    Interface Design - The only allocator interface that @@ -162,7 +161,6 @@
    Selecting Default Allocation Policy - It's difficult to pick an allocation strategy that will provide @@ -228,7 +226,6 @@
    Disabling Memory Caching - In use, allocator 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. + tracks the changes. @@ -468,7 +465,7 @@ A high-performance fixed-size allocator with exponentially-increasing allocations. It has its own - chapter + chapter in the documentation. diff --git a/libstdc++-v3/doc/xml/manual/evolution.xml b/libstdc++-v3/doc/xml/manual/evolution.xml index 3288e2f6cf2..e24418fefc0 100644 --- a/libstdc++-v3/doc/xml/manual/evolution.xml +++ b/libstdc++-v3/doc/xml/manual/evolution.xml @@ -13,7 +13,6 @@ - A list of user-visible changes, in chronological order @@ -33,9 +32,9 @@ is added that notifies on inclusion (-Wno-deprecated deactivates the warning.) -Deprecated include backward/strstream added. +Deprecated include <backward/strstream> added. -Removal of include builtinbuf.h, indstream.h, parsestream.h, PlotFile.h, SFile.h, stdiostream.h, and stream.h. +Removal of include <builtinbuf.h>, <indstream.h>, <parsestream.h>, <PlotFile.h>, <SFile.h>, <stdiostream.h>, and <stream.h>. @@ -51,7 +50,7 @@ deactivates the warning.) 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. +added: <ext/algorithm>, <ext/functional>, <ext/iterator>, <ext/memory>, and <ext/numeric>. @@ -59,11 +58,11 @@ Extensions to basic_filebuf introduced: __gnu_cxx::enc_filebu -Extensions to tree data structures added in ext/rb_tree. +Extensions to tree data structures added in <ext/rb_tree>. -Removal of ext/tree, moved to backward/tree.h. +Removal of <ext/tree>, moved to <backward/tree.h>.
    @@ -74,7 +73,7 @@ Removal of ext/tree, moved to Symbol versioning introduced for shared library. -Removal of include backward/strstream.h. +Removal of include <backward/strstream.h>. Allocator changes. Change __malloc_alloc to malloc_allocator and __new_alloc to new_allocator. @@ -109,7 +108,7 @@ Removal of ext/tree, moved to - Extensions for generic characters and char_traits added in ext/pod_char_traits.h. + Extensions for generic characters and char_traits added in <ext/pod_char_traits.h>. @@ -123,7 +122,7 @@ 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. +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>. @@ -186,37 +185,37 @@ _Alloc_traits have been removed. __gnu_cxx::new_allocator<T> - ext/new_allocator.h + <ext/new_allocator.h> std::__new_alloc - memory + <memory> __gnu_cxx::malloc_allocator<T> - ext/malloc_allocator.h + <ext/malloc_allocator.h> std::__malloc_alloc_template<int> - memory + <memory> __gnu_cxx::debug_allocator<T> - ext/debug_allocator.h + <ext/debug_allocator.h> std::debug_alloc<T> - memory + <memory> __gnu_cxx::__pool_alloc<T> - ext/pool_allocator.h + <ext/pool_allocator.h> std::__default_alloc_template<bool,int> - memory + <memory> __gnu_cxx::__mt_alloc<T> - ext/mt_allocator.h + <ext/mt_allocator.h> __gnu_cxx::bitmap_allocator<T> - ext/bitmap_allocator.h + <ext/bitmap_allocator.h> @@ -249,12 +248,12 @@ _Alloc_traits have been removed. __gnu_cxx::array_allocator<T> - ext/array_allocator.h + <ext/array_allocator.h> 4.0.0 __gnu_cxx::throw_allocator<T> - ext/throw_allocator.h + <ext/throw_allocator.h> 4.2.0 @@ -275,11 +274,11 @@ Macro guard for changed, from _GLIBCPP_ to _GLIBCXX_ -Extension ext/stdio_sync_filebuf.h added. +Extension <ext/stdio_sync_filebuf.h> added. -Extension ext/demangle.h added. +Extension <ext/demangle.h> added. @@ -294,15 +293,15 @@ TR1 features first appear. -Extension allocator ext/array_allocator.h added. +Extension allocator <ext/array_allocator.h> added. -Extension codecvt specializations moved to ext/codecvt_specializations.h. +Extension codecvt specializations moved to <ext/codecvt_specializations.h>. -Removal of ext/demangle.h. +Removal of <ext/demangle.h>. @@ -315,7 +314,7 @@ Removal of ext/demangle.h. -Removal of cassert from all standard headers: now has to be explicitly included for std::assert calls. +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, @@ -324,10 +323,10 @@ types, namespace pb_assoc. - Extensions for typelists added in ext/typelist.h. + Extensions for typelists added in <ext/typelist.h>. - Extension for policy-based basic_string first added: __gnu_cxx::__versa_string in ext/vstring.h. + Extension for policy-based basic_string first added: __gnu_cxx::__versa_string in <ext/vstring.h>. @@ -341,16 +340,16 @@ types, namespace pb_assoc. Default visibility attributes applied to namespace std. Support for -fvisibility. -TR1 random, complex, and C compatibility headers added. +TR1 <random>, <complex>, and C compatibility headers added. Extensions for concurrent programming consolidated -into ext/concurrence.h and ext/atomicity.h, +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 +into <ext/type_traits.h>. Additional traits are added (__conditional_type, __enable_if, others.) @@ -362,8 +361,8 @@ types, namespace moved to __pb_ds. std::__debug and extensions in namespace __gnu_cxx::__debug. - Extensions added: ext/typelist.h -and ext/throw_allocator.h. + Extensions added: <ext/typelist.h> +and <ext/throw_allocator.h>. @@ -378,7 +377,7 @@ and ext/throw_allocator.h. C++0X features first appear. -TR1 regex and cmath's mathematical special function added. +TR1 <regex> and <cmath>'s mathematical special function added. @@ -388,23 +387,23 @@ Backward include edit. Removed -algobase.h algo.h alloc.h bvector.h complex.h -defalloc.h deque.h fstream.h function.h hash_map.h hash_set.h -hashtable.h heap.h iomanip.h iostream.h istream.h iterator.h -list.h map.h multimap.h multiset.h new.h ostream.h pair.h queue.h rope.h set.h slist.h stack.h streambuf.h stream.h tempbuf.h -tree.h vector.h +<algobase.h> <algo.h> <alloc.h> <bvector.h> <complex.h> +<defalloc.h> <deque.h> <fstream.h> <function.h> <hash_map.h> <hash_set.h> +<hashtable.h> <heap.h> <iomanip.h> <iostream.h> <istream.h> <iterator.h> +<list.h> <map.h> <multimap.h> <multiset.h> <new.h> <ostream.h> <pair.h> <queue.h> <rope.h> <set.h> <slist.h> <stack.h> <streambuf.h> <stream.h> <tempbuf.h> +<tree.h> <vector.h> Added - hash_map and hash_set + <hash_map> and <hash_set> Added in C++11 - auto_ptr.h and binders.h + <auto_ptr.h> and <binders.h> @@ -415,29 +414,29 @@ Header dependency streamlining. - algorithm no longer includes climits, cstring, or iosfwd - bitset no longer includes istream or ostream, adds iosfwd - functional no longer includes cstddef - iomanip no longer includes istream, istream, or functional, adds ioswd - numeric no longer includes iterator - string no longer includes algorithm or memory + <algorithm> no longer includes <climits>, <cstring>, or <iosfwd> + <bitset> no longer includes <istream> or <ostream>, adds <iosfwd> + <functional> no longer includes <cstddef> + <iomanip> no longer includes <istream>, <istream>, or <functional>, adds <ioswd> + <numeric> no longer includes <iterator> + <string> no longer includes <algorithm> or <memory> - valarray no longer includes numeric or cstdlib - tr1/hashtable no longer includes memory or functional - tr1/memory no longer includes algorithm - tr1/random no longer includes algorithm or fstream + <valarray> no longer includes <numeric> or <cstdlib> + <tr1/hashtable> no longer includes <memory> or <functional> + <tr1/memory> no longer includes <algorithm> + <tr1/random> no longer includes <algorithm> or <fstream> -Debug mode for unordered_map and unordered_set. +Debug mode for <unordered_map> and <unordered_set>. Parallel mode first appears. -Variadic template implementations of items in tuple and - functional. +Variadic template implementations of items in <tuple> and + <functional>. Default what implementations give more elaborate @@ -472,14 +471,14 @@ C++0X features. Added. - atomic, - chrono, - condition_variable, - forward_list, - initializer_list, - mutex, - ratio, - thread + <atomic>, + <chrono>, + <condition_variable>, + <forward_list>, + <initializer_list>, + <mutex>, + <ratio>, + <thread> @@ -488,9 +487,9 @@ C++0X features. Updated and improved. - algorithm, - system_error, - type_traits + <algorithm>, + <system_error>, + <type_traits> @@ -558,8 +557,8 @@ local mutex. Extensions -added: ext/pointer.h -and ext/extptr_allocator.h. Support +added: <ext/pointer.h> +and <ext/extptr_allocator.h>. Support for non-standard pointer types has been added to vector and forward_list. @@ -581,9 +580,9 @@ C++0X features. Added. - functional, - future, - random + <functional>, + <future>, + <random> @@ -592,9 +591,9 @@ C++0X features. Updated and improved. - atomic, - system_error, - type_traits + <atomic>, + <system_error>, + <type_traits> @@ -623,11 +622,11 @@ Audit for application of function attributes nothrow, const, pure, and noreturn. The default behavior for comparing typeinfo names changed, so -in typeinfo, __GXX_MERGED_TYPEINFO_NAMES +in <typeinfo>, __GXX_MERGED_TYPEINFO_NAMES now defaults to zero. - Extensions modified: ext/throw_allocator.h. + Extensions modified: <ext/throw_allocator.h>. @@ -639,7 +638,7 @@ now defaults to zero. The library was updated to avoid including - stddef.h in order + <stddef.h> in order to reduce namespace pollution. @@ -669,7 +668,7 @@ now defaults to zero. The library was updated to avoid including - unistd.h in order + <unistd.h> in order to reduce namespace pollution. @@ -819,6 +818,16 @@ now defaults to zero. Profile Mode was deprecated. +
    <constant>7.2</constant> + + + Library Fundamentals TS header + <experimental/source_location> + added. + + +
    +
    <constant>7.3</constant> @@ -839,9 +848,17 @@ now defaults to zero. + Improved experimental C++17 support. Headers + <charconv> and + <filesystem>. Experimental implementation of the C++17 Filesystem library added. + + Experimental C++2a support + (to_address and endian). + + AddressSanitizer annotations added to std::vector to detect out-of-range accesses to the unused capacity of a vector. @@ -895,4 +912,38 @@ now defaults to zero.
    +
    <constant>9</constant> + + + C++17 header + <memory_resource> + added. + + + + Experimental C++2a support improved, with new headers + <bit> and + <version> added. + Support for new character type char8_t added + to char_traits, basic_string, + numeric_limits, + and relevant locale facets and type traits. + + + + Experimental implementation of the Networking TS library added, + with new headers + <experimental/buffer>, + <experimental/executor>, + <experimental/internet>, + <experimental/io_context>, + <experimental/net>, + <experimental/netfwd>, + <experimental/socket>, + and + <experimental/timer>. + + +
    + diff --git a/libstdc++-v3/doc/xml/manual/using.xml b/libstdc++-v3/doc/xml/manual/using.xml index 7647e9b8dad..9e8fe0715a3 100644 --- a/libstdc++-v3/doc/xml/manual/using.xml +++ b/libstdc++-v3/doc/xml/manual/using.xml @@ -1192,7 +1192,7 @@ g++ -Winvalid-pch -I. -include stdc++.h -H -g -O2 hello.cc -o test.exe enabled for std::vector<T, std::allocator<T>> and only when std::allocator is derived from - new_allocator + new_allocator or malloc_allocator. 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,