From 0e0beddd7fb4c0d2157c7f0c7d3f39e9533bb323 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 13 Oct 2020 17:40:43 +0100 Subject: [PATCH] libstdc++: Update C++20 status documentation libstdc++-v3/ChangeLog: * doc/xml/manual/evolution.xml: Document some API changes and deprecations. * doc/xml/manual/intro.xml: Document LWG 2499. * doc/xml/manual/status_cxx2020.xml: Update status. * doc/html/*: Regenerate. --- libstdc++-v3/doc/html/index.html | 2 +- libstdc++-v3/doc/html/manual/api.html | 24 +++++++++++++ libstdc++-v3/doc/html/manual/appendix.html | 2 +- .../doc/html/manual/appendix_porting.html | 2 +- libstdc++-v3/doc/html/manual/bugs.html | 5 +++ libstdc++-v3/doc/html/manual/index.html | 2 +- libstdc++-v3/doc/html/manual/status.html | 6 ++-- libstdc++-v3/doc/xml/manual/evolution.xml | 36 +++++++++++++++++++ libstdc++-v3/doc/xml/manual/intro.xml | 8 +++++ .../doc/xml/manual/status_cxx2020.xml | 4 +-- 10 files changed, 81 insertions(+), 10 deletions(-) diff --git a/libstdc++-v3/doc/html/index.html b/libstdc++-v3/doc/html/index.html index 02e91b1fb3e..d336859f1df 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.2
7.3
8
9
10
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
10
11
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 394c38c3ec5..1849e115936 100644 --- a/libstdc++-v3/doc/html/manual/api.html +++ b/libstdc++-v3/doc/html/manual/api.html @@ -405,4 +405,28 @@ now defaults to zero. for C++20 mode. The removed functionality has been provided by std::allocator_traits since C++11 and that should be used instead. +

+ Experimental C++2a support improved, with new headers + <concepts>, + <ranges>, + <compare>, + <coroutine>, + <numbers>, + <span>, + and + <stop_token> + added. +

11

+ The --enable-cheaders=c_std configuration + was deprecated. +

+ When compiling as C++20, the operator>> overloads + for extracting strings into character buffers only work with arrays, + not raw pointers. +

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

\ 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 4e67b78fedb..37dee28ff25 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.2
7.3
8
9
10
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
10
11
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 cdd75720550..3a3334f13cf 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.2
7.3
8
9
10
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
10
11
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/bugs.html b/libstdc++-v3/doc/html/manual/bugs.html index db300482039..7e0837322e5 100644 --- a/libstdc++-v3/doc/html/manual/bugs.html +++ b/libstdc++-v3/doc/html/manual/bugs.html @@ -514,6 +514,11 @@

Avoid using dynamic_cast when it would be ill-formed. +

2499: + operator>>(basic_istream&, CharT*) makes it hard to avoid buffer overflows + +

Replace operator>>(basic_istream&, CharT*) + and other overloads writing through pointers.

2537: Constructors for priority_queue taking allocators should call make_heap diff --git a/libstdc++-v3/doc/html/manual/index.html b/libstdc++-v3/doc/html/manual/index.html index dba3406ed4f..ef7eaee45f5 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.2
7.3
8
9
10
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
10
11
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/status.html b/libstdc++-v3/doc/html/manual/status.html index b6df978aeab..d3f2eda159b 100644 --- a/libstdc++-v3/doc/html/manual/status.html +++ b/libstdc++-v3/doc/html/manual/status.html @@ -1417,7 +1417,7 @@ or any notes about the implementation.   fpos Requirements P0759R1 - —   Add shift to <algorithm> + —   Add shift to <algorithm> P0769R2 10.1 __cpp_lib_shift >= 201806L Standard Library Specification in a Concepts and Contracts World @@ -1441,10 +1441,10 @@ or any notes about the implementation. 9.3 __cpp_lib_bind_front >= 201907L reference_wrapper for incomplete types P0357R3 - 9.1   Fixing operator>>(basic_istream&, CharT*) (LWG 2499) + 9.1   Fixing operator>>(basic_istream&, CharT*) (LWG 2499) P0487R1 -   variant and optional should propagate copy/move triviality + 11.1   variant and optional should propagate copy/move triviality P0602R4 8.3   A sane variant converting constructor diff --git a/libstdc++-v3/doc/xml/manual/evolution.xml b/libstdc++-v3/doc/xml/manual/evolution.xml index 625202b9a06..38f11b0300d 100644 --- a/libstdc++-v3/doc/xml/manual/evolution.xml +++ b/libstdc++-v3/doc/xml/manual/evolution.xml @@ -972,6 +972,42 @@ now defaults to zero. be used instead. + + Experimental C++2a support improved, with new headers + <concepts>, + <ranges>, + <compare>, + <coroutine>, + <numbers>, + <span>, + and + <stop_token> + added. + + + + +
<constant>11</constant> + + + The configuration + was deprecated. + + + + When compiling as C++20, the operator>> overloads + for extracting strings into character buffers only work with arrays, + not raw pointers. + + + + std::string::reserve(n) will no longer reduce + the string's capacity. + Calling reserve() with no arguments is equivalent + to shrink_to_fit(), but is deprecated. + shrink_to_fit() should be used instead. + +
diff --git a/libstdc++-v3/doc/xml/manual/intro.xml b/libstdc++-v3/doc/xml/manual/intro.xml index 76e55980324..3e7843f58c1 100644 --- a/libstdc++-v3/doc/xml/manual/intro.xml +++ b/libstdc++-v3/doc/xml/manual/intro.xml @@ -1140,6 +1140,14 @@ requirements of the license of GCC. ill-formed. + 2499: + operator>>(basic_istream&, CharT*) makes it hard to avoid buffer overflows + + + Replace operator>>(basic_istream&, CharT*) + and other overloads writing through pointers. + + 2537: Constructors for priority_queue taking allocators should call make_heap diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2020.xml b/libstdc++-v3/doc/xml/manual/status_cxx2020.xml index b9ad03c720f..e633365ab40 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx2020.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx2020.xml @@ -1086,7 +1086,6 @@ or any notes about the implementation. - Add shift to <algorithm> @@ -1168,13 +1167,12 @@ or any notes about the implementation. - Fixing operator>>(basic_istream&, CharT*) (LWG 2499) P0487R1 - + 11.1 -- 2.30.2