From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1888) id 3108038376A6; Fri, 26 Aug 2022 23:00:59 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3108038376A6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1661554859; bh=+QxdbDY8tFOhAXcPejwXonEXGNOrur92P7cnD2Utmbc=; h=From:To:Subject:Date:From; b=RpdqfzKMHcdrZRjVomIUH9yw9h6LyjCZHx+fe9cmMph+5Ods5FJMECC4zrXO8tiFo HlY3g9JtvHm/9V5J+DLkMErvV0SB8vylNA6VpTWoRcz4i8TPvrHbdaRv2tr7NV+utl hE298YmeGoFQn9AtHc+n0kMqHtQfp0cokC0NLVh8= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Patrick Palka To: gcc-cvs@gcc.gnu.org, libstdc++-cvs@gcc.gnu.org Subject: [gcc r13-2232] libstdc++: Implement LWG 3692/3702 changes to zip_/zip_transform_view X-Act-Checkin: gcc X-Git-Author: Patrick Palka X-Git-Refname: refs/heads/master X-Git-Oldrev: 1a93a84b9e01d0dd5156be8d686e8666a6fc45a8 X-Git-Newrev: d0fd62d0ff4d1e0648e11b650b4f449772663990 Message-Id: <20220826230059.3108038376A6@sourceware.org> Date: Fri, 26 Aug 2022 23:00:59 +0000 (GMT) List-Id: https://gcc.gnu.org/g:d0fd62d0ff4d1e0648e11b650b4f449772663990 commit r13-2232-gd0fd62d0ff4d1e0648e11b650b4f449772663990 Author: Patrick Palka Date: Fri Aug 26 18:59:36 2022 -0400 libstdc++: Implement LWG 3692/3702 changes to zip_/zip_transform_view libstdc++-v3/ChangeLog: * include/std/ranges (zip_view::_Iterator::operator<): Remove as per LWG 3692. (zip_view::_Iterator::operator>): Likewise. (zip_view::_Iterator::operator<=): Likewise. (zip_view::_Iterator::operator>=): Likewise. (zip_view::_Iterator::operator<=>): Remove three_way_comparable constraint as per LWG 3692. (zip_transform_view::_Iterator): Ditto as per LWG 3702. Diff: --- libstdc++-v3/include/std/ranges | 43 +---------------------------------------- 1 file changed, 1 insertion(+), 42 deletions(-) diff --git a/libstdc++-v3/include/std/ranges b/libstdc++-v3/include/std/ranges index d4e326ad9c6..6e2e561ed12 100644 --- a/libstdc++-v3/include/std/ranges +++ b/libstdc++-v3/include/std/ranges @@ -4616,30 +4616,9 @@ namespace views::__adaptor }(make_index_sequence{}); } - friend constexpr bool - operator<(const _Iterator& __x, const _Iterator& __y) - requires __detail::__all_random_access<_Const, _Vs...> - { return __x._M_current < __y._M_current; } - - friend constexpr bool - operator>(const _Iterator& __x, const _Iterator& __y) - requires __detail::__all_random_access<_Const, _Vs...> - { return __y < __x; } - - friend constexpr bool - operator<=(const _Iterator& __x, const _Iterator& __y) - requires __detail::__all_random_access<_Const, _Vs...> - { return !(__y < __x); } - - friend constexpr bool - operator>=(const _Iterator& __x, const _Iterator& __y) - requires __detail::__all_random_access<_Const, _Vs...> - { return !(__x < __y); } - friend constexpr auto operator<=>(const _Iterator& __x, const _Iterator& __y) requires __detail::__all_random_access<_Const, _Vs...> - && (three_way_comparable>> && ...) { return __x._M_current <=> __y._M_current; } friend constexpr _Iterator @@ -5006,29 +4985,9 @@ namespace views::__adaptor requires equality_comparable<__ziperator<_Const>> { return __x._M_inner == __y._M_inner; } - friend constexpr bool - operator<(const _Iterator& __x, const _Iterator& __y) - requires random_access_range<_Base<_Const>> - { return __x._M_inner < __y._M_inner; } - - friend constexpr bool - operator>(const _Iterator& __x, const _Iterator& __y) - requires random_access_range<_Base<_Const>> - { return __x._M_inner > __y._M_inner; } - - friend constexpr bool - operator<=(const _Iterator& __x, const _Iterator& __y) - requires random_access_range<_Base<_Const>> - { return __x._M_inner <= __y._M_inner; } - - friend constexpr bool - operator>=(const _Iterator& __x, const _Iterator& __y) - requires random_access_range<_Base<_Const>> - { return __x._M_inner >= __y._M_inner; } - friend constexpr auto operator<=>(const _Iterator& __x, const _Iterator& __y) - requires random_access_range<_Base<_Const>> && three_way_comparable<__ziperator<_Const>> + requires random_access_range<_Base<_Const>> { return __x._M_inner <=> __y._M_inner; } friend constexpr _Iterator