public inbox for libstdc++-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc/devel/ranger] libstdc++: Simplify std::three_way_comparable_with (LWG 3360)
@ 2020-06-17 19:02 Aldy Hernandez
0 siblings, 0 replies; only message in thread
From: Aldy Hernandez @ 2020-06-17 19:02 UTC (permalink / raw)
To: gcc-cvs, libstdc++-cvs
https://gcc.gnu.org/g:256f67aa078de0e7bf53a0870c2cb87ab90cda09
commit 256f67aa078de0e7bf53a0870c2cb87ab90cda09
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Wed Feb 19 21:45:59 2020 +0000
libstdc++: Simplify std::three_way_comparable_with (LWG 3360)
This also removes a useless condition that was supposed to be removed by
the P1959R0 changes, but left in when that was implemented.
* libsupc++/compare (three_way_comparable): Remove always-false check
that should have been removed with weak_equality (P1959R0).
(three_way_comparable_with): Likewise. Reorder requirements (LWG 3360).
Diff:
---
libstdc++-v3/ChangeLog | 4 ++++
libstdc++-v3/libsupc++/compare | 10 ++++------
2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 1711a359256..622c2948eab 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,9 @@
2020-02-19 Jonathan Wakely <jwakely@redhat.com>
+ * libsupc++/compare (three_way_comparable): Remove always-false check
+ that should have been removed with weak_equality (P1959R0).
+ (three_way_comparable_with): Likewise. Reorder requirements (LWG 3360).
+
* include/std/concepts (__detail::__partially_ordered_with): Move here
from <compare>.
(totally_ordered, totally_ordered_with): Use __partially_ordered_with
diff --git a/libstdc++-v3/libsupc++/compare b/libstdc++-v3/libsupc++/compare
index a74ebc845bf..b88b691b9e1 100644
--- a/libstdc++-v3/libsupc++/compare
+++ b/libstdc++-v3/libsupc++/compare
@@ -417,8 +417,7 @@ namespace std
template<typename _Tp, typename _Cat = partial_ordering>
concept three_way_comparable
= __detail::__weakly_eq_cmp_with<_Tp, _Tp>
- && (!convertible_to<_Cat, partial_ordering>
- || __detail::__partially_ordered_with<_Tp, _Tp>)
+ && __detail::__partially_ordered_with<_Tp, _Tp>
&& requires(const remove_reference_t<_Tp>& __a,
const remove_reference_t<_Tp>& __b) {
{ __a <=> __b } -> __detail::__compares_as<_Cat>;
@@ -426,16 +425,15 @@ namespace std
template<typename _Tp, typename _Up, typename _Cat = partial_ordering>
concept three_way_comparable_with
- = __detail::__weakly_eq_cmp_with<_Tp, _Up>
- && (!convertible_to<_Cat, partial_ordering>
- || __detail::__partially_ordered_with<_Tp, _Up>)
- && three_way_comparable<_Tp, _Cat>
+ = three_way_comparable<_Tp, _Cat>
&& three_way_comparable<_Up, _Cat>
&& common_reference_with<const remove_reference_t<_Tp>&,
const remove_reference_t<_Up>&>
&& three_way_comparable<
common_reference_t<const remove_reference_t<_Tp>&,
const remove_reference_t<_Up>&>, _Cat>
+ && __detail::__weakly_eq_cmp_with<_Tp, _Up>
+ && __detail::__partially_ordered_with<_Tp, _Up>
&& requires(const remove_reference_t<_Tp>& __t,
const remove_reference_t<_Up>& __u) {
{ __t <=> __u } -> __detail::__compares_as<_Cat>;
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-06-17 19:02 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-17 19:02 [gcc/devel/ranger] libstdc++: Simplify std::three_way_comparable_with (LWG 3360) Aldy Hernandez
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).