From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2181) id 04C323857027; Thu, 1 Jun 2023 15:06:30 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 04C323857027 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1685631990; bh=pfelCntswtp+hPVwMV2gd3+HRBvHElTmSQjhNJZp4gE=; h=From:To:Subject:Date:From; b=cwRAN5WpOyQl89rF0NHUI2lBJTri8nMgkFZJYY6eUga6Paa92Iewzz5Bk9ExJUByu qJxGeRE3SfIt+2xMGHh3g8MOjvNyXk7EgQlW1KroPVQXHKk99N/AcB3YstZJA7Pl5Z szpPkoEX531CuAx4aXCCqKF1lx3OgIquL5rdqXtI= MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="utf-8" From: Jonathan Wakely To: gcc-cvs@gcc.gnu.org, libstdc++-cvs@gcc.gnu.org Subject: [gcc r14-1469] libstdc++: Document removal of implicit allocator rebinding extensions X-Act-Checkin: gcc X-Git-Author: Jonathan Wakely X-Git-Refname: refs/heads/master X-Git-Oldrev: dec7aaabe9651cb075ace60721b6e36864cc5140 X-Git-Newrev: 8cbaf679a3c1875c5475bd1cb0fb86fb9d03b2d4 Message-Id: <20230601150630.04C323857027@sourceware.org> Date: Thu, 1 Jun 2023 15:06:30 +0000 (GMT) List-Id: https://gcc.gnu.org/g:8cbaf679a3c1875c5475bd1cb0fb86fb9d03b2d4 commit r14-1469-g8cbaf679a3c1875c5475bd1cb0fb86fb9d03b2d4 Author: Jonathan Wakely Date: Mon May 15 21:41:56 2023 +0100 libstdc++: Document removal of implicit allocator rebinding extensions Traditionally libstdc++ allowed containers and strings 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. Diff: --- libstdc++-v3/doc/html/manual/api.html | 13 +++++++++++++ libstdc++-v3/doc/xml/manual/evolution.xml | 19 +++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/libstdc++-v3/doc/html/manual/api.html b/libstdc++-v3/doc/html/manual/api.html index 7d5f754fb38..27c0d090e5d 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. @@ -479,4 +488,8 @@ Tunables <variable>glibcxx.eh_pool.obj_count</

14

Deprecate the non-standard overload that allows std::setfill to be used with std::basic_istream. +

+ The extension allowing std::basic_string to be instantiated + with an allocator that doesn't match the string's character type is no + longer allowed in C++20 mode.

\ No newline at end of file diff --git a/libstdc++-v3/doc/xml/manual/evolution.xml b/libstdc++-v3/doc/xml/manual/evolution.xml index 4037a18d2df..db70f24f2f9 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. + +
<constant>9</constant> @@ -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. + +
<constant>11</constant> @@ -1096,6 +1109,12 @@ Deprecate the non-standard overload that allows std::setfill to be used with std::basic_istream. + + The extension allowing std::basic_string to be instantiated + with an allocator that doesn't match the string's character type is no + longer allowed in C++20 mode. + +