[libcxx-commits] [libcxx] [libc++][NFC] Centralize test for support of == and != in ranges (PR #78481)
Konstantin Varlamov via libcxx-commits
libcxx-commits at lists.llvm.org
Mon Mar 11 23:09:23 PDT 2024
================
@@ -63,37 +64,33 @@ struct Range : TupleBufferView {
using R = Range<Sent>;
using CrossComparableR = Range<CrossComparableSent>;
-// Test Constraint
-template <class I, class S>
-concept HasEqual = requires(const I i, const S s) { i == s; };
-
using std::ranges::elements_view;
using std::ranges::iterator_t;
using std::ranges::sentinel_t;
-static_assert(HasEqual<iterator_t<elements_view<R, 0>>, //
- sentinel_t<elements_view<R, 0>>>);
+static_assert(weakly_equality_comparable_with<iterator_t<elements_view<R, 0>>, //
+ sentinel_t<elements_view<R, 0>>>);
-static_assert(!HasEqual<iterator_t<const elements_view<R, 0>>, //
- sentinel_t<elements_view<R, 0>>>);
+static_assert(!weakly_equality_comparable_with<iterator_t<const elements_view<R, 0>>, //
+ sentinel_t<elements_view<R, 0>>>);
-static_assert(!HasEqual<iterator_t<elements_view<R, 0>>, //
- sentinel_t<const elements_view<R, 0>>>);
+static_assert(!weakly_equality_comparable_with<iterator_t<elements_view<R, 0>>, //
+ sentinel_t<const elements_view<R, 0>>>);
-static_assert(HasEqual<iterator_t<const elements_view<R, 0>>, //
- sentinel_t<const elements_view<R, 0>>>);
+static_assert(weakly_equality_comparable_with<iterator_t<const elements_view<R, 0>>, //
+ sentinel_t<const elements_view<R, 0>>>);
-static_assert(HasEqual<iterator_t<elements_view<R, 0>>, //
- sentinel_t<elements_view<R, 0>>>);
+static_assert(weakly_equality_comparable_with<iterator_t<elements_view<R, 0>>, //
----------------
var-const wrote:
Preexisting issue: unless I'm missing something, this repeats line 74 (71 after refactoring), `R` should probably be `CrossComparableR`.
https://github.com/llvm/llvm-project/pull/78481
More information about the libcxx-commits
mailing list