From d0fd62d0ff4d1e0648e11b650b4f449772663990 Mon Sep 17 00:00:00 2001 From: Patrick Palka Date: Fri, 26 Aug 2022 18:59:36 -0400 Subject: 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. --- libstdc++-v3/include/std/ranges | 43 +---------------------------------------- 1 file changed, 1 insertion(+), 42 deletions(-) (limited to 'libstdc++-v3') diff --git a/libstdc++-v3/include/std/ranges b/libstdc++-v3/include/std/ranges index d4e326a..6e2e561 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 -- cgit v1.1