[Bug c++/91073] [9 Regression] if constexpr no longer works directly with Concepts
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jan 29 14:08:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91073
--- Comment #13 from CVS 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:f214ffb336d582a66149068a2a96b7fcf395b5de
commit r10-6325-gf214ffb336d582a66149068a2a96b7fcf395b5de
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Wed Jan 29 13:56:49 2020 +0000
libstdc++: Simplify constraints on std::compare_three_way
The __3way_builtin_ptr_cmp concept can use three_way_comparable_with to
check whether <=> is valid. Doing that makes it obvious that the
disjunction on compare_three_way::operator() is redundant, because
the second constraint subsumes the first.
The workaround for PR c++/91073 can also be removed as that bug is fixed
now.
* libsupc++/compare (__detail::__3way_builtin_ptr_cmp): Use
three_way_comparable_with.
(__detail::__3way_cmp_with): Remove workaround for fixed bug.
(compare_three_way::operator()): Remove redundant constraint from
requires-clause.
(__detail::_Synth3way::operator()): Use three_way_comparable_with
instead of workaround.
* testsuite/18_support/comparisons/object/93479.cc: Prune extra
output due to simplified constraints on compare_three_way::operator().
More information about the Gcc-bugs
mailing list