From 241ed965509ac931e9ae5f331d0294c1ee4ccd89 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 19 Feb 2020 21:31:06 +0000 Subject: [PATCH] libstdc++: Simplify std::totally_ordered_with (LWG 3329) * include/std/concepts (totally_ordered_with): Remove redundant requirement (LWG 3329). --- libstdc++-v3/ChangeLog | 3 +++ libstdc++-v3/include/std/concepts | 3 +-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 6e22536680f..3941bcbe7ba 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,8 @@ 2020-02-19 Jonathan Wakely + * include/std/concepts (totally_ordered_with): Remove redundant + requirement (LWG 3329). + * include/std/ranges (__detail::__convertible_to_non_slicing): New helper concept. (__detail::__pair_like_convertible_to): Remove. diff --git a/libstdc++-v3/include/std/concepts b/libstdc++-v3/include/std/concepts index f3db40b798f..be125c636a1 100644 --- a/libstdc++-v3/include/std/concepts +++ b/libstdc++-v3/include/std/concepts @@ -311,10 +311,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template concept totally_ordered_with = totally_ordered<_Tp> && totally_ordered<_Up> - && common_reference_with<__detail::__cref<_Tp>, __detail::__cref<_Up>> + && equality_comparable_with<_Tp, _Up> && totally_ordered, __detail::__cref<_Up>>> - && equality_comparable_with<_Tp, _Up> && requires(__detail::__cref<_Tp> __t, __detail::__cref<_Up> __u) { { __t < __u } -> __detail::__boolean_testable; { __t > __u } -> __detail::__boolean_testable; -- 2.30.2