[RFC] Deprecate non-standard constructors in std::pair

Jonathan Wakely jwakely@redhat.com
Wed Apr 28 17:19:07 GMT 2021

On 28/04/21 17:57 +0100, Jonathan Wakely wrote:
>On 07/04/21 18:18 +0100, Jonathan Wakely wrote:
>>On 07/04/21 17:59 +0100, Jonathan Wakely wrote:
>>>On 07/04/21 13:46 +0100, Jonathan Wakely wrote:
>>>>On 07/04/21 15:41 +0300, Ville Voutilainen via Libstdc++ wrote:
>>>>>On Wed, 7 Apr 2021 at 15:31, Jonathan Wakely via Libstdc++
>>>>><libstdc++@gcc.gnu.org> wrote:
>>>>>>I propose that we deprecate the constructors for C++11/14/17/20 in
>>>>>>stage 1, and do not support them at all in C++23 mode once P1951 is
>>>>>>supported. I have a patch which I'll send in stage 1 (it also uses
>>>>>>C++20 concepts to simplify std::pair and fix PR 97930).
>>>>>>After a period of deprecation we could remove them, and support P1951
>>>>>>for -std=gnu++11/14/17/20 too so that {} continues to work.
>>>>>The proposal sounds good to me.
>>>>Thanks. I've created https://gcc.gnu.org/PR99957 so I don't forget.
>>>Here's a patch to implement it, for stage 1.
>>And here's a patch to simplify the std::pair constraints using
>>concepts, also for consideration in stage 1.
>I've pushed this to trunk too, after testing on powerpc64le-linux.

And this adds a testcase to verify that the simplified version using
concepts actually fixes PR 97930, as claimed above.

Tested x86_64- linux, pushed to trunk.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch.txt
Type: text/x-patch
Size: 1066 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/libstdc++/attachments/20210428/8448b3e4/attachment.bin>

More information about the Libstdc++ mailing list