From mboxrd@z Thu Jan 1 00:00:00 1970
Return-Path:
Received: by sourceware.org (Postfix, from userid 2181)
id B8BEB3858CD1; Fri, 23 Jun 2023 13:00:17 +0000 (GMT)
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B8BEB3858CD1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org;
s=default; t=1687525217;
bh=jZkCFE2U0dtHjQwf8+fvRYTX9cMxXHTUf/o4Ks4qZAk=;
h=From:To:Subject:Date:From;
b=fSF0XTkEflvDPmd7gQqqn25OR0klJbU9EoTUl42wtcqWnsaGdCAut3CN/4O3LScg7
HdqIJzKZPCdU1cEeCIJK+v/PiVJidIHctVGDfai1wZ2hPkBC+xA4tW/4UD2Rnp3uk8
oIzpWt2swjk9B05TuPK/3KW3RotgApHrombGS9z8=
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="utf-8"
From: Jonathan Wakely
To: gcc-cvs@gcc.gnu.org, libstdc++-cvs@gcc.gnu.org
Subject: [gcc r11-10871] libstdc++: Document removal of implicit allocator
rebinding extensions
X-Act-Checkin: gcc
X-Git-Author: Jonathan Wakely
X-Git-Refname: refs/heads/releases/gcc-11
X-Git-Oldrev: 5fc6b3a03355e1f77a7c38c0fa7afb0822ad954f
X-Git-Newrev: c0bc9846d9e38bbeeef6723b3c44d5977e95b827
Message-Id: <20230623130017.B8BEB3858CD1@sourceware.org>
Date: Fri, 23 Jun 2023 13:00:17 +0000 (GMT)
List-Id:
https://gcc.gnu.org/g:c0bc9846d9e38bbeeef6723b3c44d5977e95b827
commit r11-10871-gc0bc9846d9e38bbeeef6723b3c44d5977e95b827
Author: Jonathan Wakely
Date: Mon May 15 21:41:56 2023 +0100
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:
---
libstdc++-v3/doc/html/manual/api.html | 9 +++++++++
libstdc++-v3/doc/xml/manual/evolution.xml | 13 +++++++++++++
2 files changed, 22 insertions(+)
diff --git a/libstdc++-v3/doc/html/manual/api.html b/libstdc++-v3/doc/html/manual/api.html
index 70889a583f9..617c457e155 100644
--- a/libstdc++-v3/doc/html/manual/api.html
+++ b/libstdc++-v3/doc/html/manual/api.html
@@ -368,6 +368,11 @@ 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.
+
+ 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>
@@ -423,6 +428,10 @@ now defaults to zero.
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 55b8903baff..6ae6b5aec19 100644
--- a/libstdc++-v3/doc/xml/manual/evolution.xml
+++ b/libstdc++-v3/doc/xml/manual/evolution.xml
@@ -911,6 +911,13 @@ now defaults to zero.
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
@@ -994,6 +1001,12 @@ now defaults to zero.
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