https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99957
--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jonathan Wakely <r...@gcc.gnu.org>: https://gcc.gnu.org/g:e1543e694dadf1ea70eb72325219bc0cdc914a35 commit r12-221-ge1543e694dadf1ea70eb72325219bc0cdc914a35 Author: Jonathan Wakely <jwak...@redhat.com> Date: Wed Apr 28 17:46:01 2021 +0100 libstdc++: Simplify std::pair constraints using concepts This re-implements the constraints on the std::pair constructors and assignment operators in C++20 mode, to use concepts. The non-standard constructors deprecated for PR 99957 are no longer supported in C++20 mode, which requires some minor testsuite changes. Otherwise all tests pass in C++20 mode. libstdc++-v3/ChangeLog: * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add new definitions for constructors and assignment operators using concepts for constraints. * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and later. * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust expected error messages to also match C++20 errors.