From: Jonathan Wakely
Date: Mon, 15 May 2023 20:41:56 +0000 (+0100)
Subject: libstdc++: Document removal of implicit allocator rebinding extensions
X-Git-Tag: vendors/ARM/release-12.3.rel1~6
X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=72ceed08d45137b0f1a9b4ea8ca533aa6489bc39;p=thirdparty%2Fgcc.git
libstdc++: Document removal of implicit allocator rebinding extensions
Traditionally libstdc++ allowed containers to be
instantiated with allocator's that have the wrong value type, implicitly
rebinding the allocator to the container's value type. Since C++20 that
has been explicitly ill-formed, so the extension is no longer supported
in strict modes (e.g. -std=c++17) and in C++20 and later.
libstdc++-v3/ChangeLog:
* doc/xml/manual/evolution.xml: Document removal of implicit
allocator rebinding extensions in strict mode and for C++20.
* doc/html/*: Regenerate.
(cherry picked from commit 8cbaf679a3c1875c5475bd1cb0fb86fb9d03b2d4)
---
diff --git a/libstdc++-v3/doc/html/manual/api.html b/libstdc++-v3/doc/html/manual/api.html
index 604380e01361..fd6420a9e2c9 100644
--- a/libstdc++-v3/doc/html/manual/api.html
+++ b/libstdc++-v3/doc/html/manual/api.html
@@ -370,6 +370,11 @@ Calling a std::bind result as volatile was deprecated
For the non-default --enable-symvers=gnu-versioned-namespace
configuration, the shared library SONAME has been changed to
libstdc++.so.8.
+
+ The extension allowing containers to be instantiated with an allocator
+ that doesn't match the container's value type is no longer allowed in
+ strict (-std=c++NN) modes, only in
+ -std=gnu++NN modes.
9
C++17 header
<memory_resource>
@@ -425,6 +430,10 @@ Calling a std::bind result as volatile was deprecated
and
<stop_token>
added.
+
+ The extension allowing containers to be instantiated with an allocator
+ that doesn't match the container's value type is no longer allowed in
+ C++20 mode, even in non-strict -std=gnu++20 mode.
11
The --enable-cheaders=c_std configuration
was deprecated.
diff --git a/libstdc++-v3/doc/xml/manual/evolution.xml b/libstdc++-v3/doc/xml/manual/evolution.xml
index 82936189179a..9259c43fb196 100644
--- a/libstdc++-v3/doc/xml/manual/evolution.xml
+++ b/libstdc++-v3/doc/xml/manual/evolution.xml
@@ -915,6 +915,13 @@ Calling a std::bind result as volatile was deprecated for C++17.
libstdc++.so.8.
+
+ The extension allowing containers to be instantiated with an allocator
+ that doesn't match the container's value type is no longer allowed in
+ strict () modes, only in
+ modes.
+
+
9
@@ -998,6 +1005,12 @@ Calling a std::bind result as volatile was deprecated for C++17.
added.
+
+ The extension allowing containers to be instantiated with an allocator
+ that doesn't match the container's value type is no longer allowed in
+ C++20 mode, even in non-strict mode.
+
+
11