[Bug libstdc++/122946] [C++20 DR] Implement P2404R3, Move-only types for equality_comparable_with, totally_ordered_with, and three_way_comparable_with
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Dec 8 18:55:34 GMT 2025
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122946
--- Comment #2 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jonathan Wakely <redi@gcc.gnu.org>:
https://gcc.gnu.org/g:03562c1e023d01cacf099a40842e617d27148c74
commit r16-5969-g03562c1e023d01cacf099a40842e617d27148c74
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Thu Dec 4 14:45:53 2025 +0000
libstdc++: Implement P2404R3 relaxations to comparable_with concepts
[PR122946]
This implements the C++23 proposal P2404R3 "Move-only types for
equality_comparable_with, totally_ordered_with, and
three_way_comparable_with". As agreed with the maintainers of libc++ and
MSVC STL, we treat this as a DR for C++20. It allows reasonable code to
compile which wasn't originally allowed in C++20, and only affects some
obscure subsumption cases for valid C++20 code.
libstdc++-v3/ChangeLog:
PR libstdc++/122946
* include/bits/version.def (concepts): Set value to 202207.
* include/bits/version.h: Regenerate.
* include/std/concepts (__comparison_common_type_with_impl)
(__comparison_common_type_with): New helper concepts.
(equality_comparable_with): Use __comparison_common_type_with.
* libsupc++/compare (three_way_comparable_with): Likewise.
(__glibcxx_want_concepts): Define to get __cpp_lib_concepts
here.
* testsuite/std/concepts/concepts.compare/move_only.cc: New
test.
Reviewed-by: Tomasz KamiÅski <tkaminsk@redhat.com>
More information about the Gcc-bugs
mailing list