/llvm-project/libcxx/modules/std/ |
H A D | algorithm.inc | 11 namespace ranges { 13 using std::ranges::in_found_result; 14 using std::ranges::in_fun_result; 15 using std::ranges::in_in_out_result; 16 using std::ranges::in_in_result; 17 using std::ranges::in_out_out_result; 18 using std::ranges::in_out_result; 20 using std::ranges::in_value_result; 22 using std::ranges::min_max_result; 23 // using std::ranges [all...] |
H A D | ranges.inc | 11 namespace ranges { 14 using std::ranges::__cpo::begin; 15 using std::ranges::__cpo::cbegin; 16 using std::ranges::__cpo::cend; 17 using std::ranges::__cpo::crbegin; 18 using std::ranges::__cpo::crend; 19 using std::ranges::__cpo::end; 20 using std::ranges::__cpo::rbegin; 21 using std::ranges::__cpo::rend; 23 using std::ranges [all...] |
/llvm-project/llvm/unittests/Support/ |
H A D | AddressRangeTest.cpp | 77 // Test the functions that maintain address ranges: in TEST() 80 AddressRanges Ranges; in TEST() local 81 Ranges.insert(AddressRange(0x1000, 0x2000)); in TEST() 82 Ranges.insert(AddressRange(0x2000, 0x3000)); in TEST() 83 Ranges.insert(AddressRange(0x4000, 0x5000)); in TEST() 85 EXPECT_FALSE(Ranges.contains(0)); in TEST() 86 EXPECT_FALSE(Ranges.contains(0x1000 - 1)); in TEST() 87 EXPECT_TRUE(Ranges.contains(0x1000)); in TEST() 88 EXPECT_TRUE(Ranges.contains(0x2000)); in TEST() 89 EXPECT_TRUE(Ranges.contains(0x4000)); in TEST() [all …]
|
/llvm-project/libcxx/test/std/ranges/range.adaptors/range.zip/ |
H A D | range.concept.compile.pass.cpp | 17 #include <ranges> 27 std::ranges::zip_view v{ContiguousCommonView{buffer1}, ContiguousCommonView{buffer2}}; in testConceptPair() 29 static_assert(std::ranges::random_access_range<View>); in testConceptPair() 30 static_assert(!std::ranges::contiguous_range<View>); in testConceptPair() 31 static_assert(std::ranges::common_range<View>); in testConceptPair() 32 static_assert(std::ranges::sized_range<View>); in testConceptPair() 36 std::ranges::zip_view v{ContiguousNonCommonView{buffer1}, ContiguousNonCommonView{buffer2}}; in testConceptPair() 38 static_assert(std::ranges::random_access_range<View>); in testConceptPair() 39 static_assert(!std::ranges::contiguous_range<View>); in testConceptPair() 40 static_assert(!std::ranges::common_range<View>); in testConceptPair() [all …]
|
H A D | types.h | 13 #include <ranges> 24 struct BufferView : std::ranges::view_base { 57 static_assert(std::ranges::common_range<Common<true>>); 58 static_assert(std::ranges::random_access_range<SimpleCommon>); 59 static_assert(std::ranges::sized_range<SimpleCommon>); 83 static_assert(std::ranges::common_range<SimpleCommonNonRandom>); 84 static_assert(!std::ranges::random_access_range<SimpleCommonNonRandom>); 85 static_assert(!std::ranges::sized_range<SimpleCommonNonRandom>); 107 static_assert(!std::ranges::common_range<SimpleNonCommon>); 108 static_assert(std::ranges::random_access_range<SimpleNonCommon>); [all …]
|
/llvm-project/libcxx/test/std/algorithms/ |
H A D | ranges_robust_against_nonbool.compile.pass.cpp | 19 #include <ranges> 26 using Range = std::ranges::subrange<Iterator>; 48 in_pred(std::ranges::any_of, pred1); in f() 49 in_pred(std::ranges::all_of, pred1); in f() 51 in_in_pred(std::ranges::ends_with, pred2); in f() 53 in_pred(std::ranges::none_of, pred1); in f() 54 in_pred(std::ranges::find_if, pred1); in f() 55 in_pred(std::ranges::find_if_not, pred1); in f() 57 in_pred(std::ranges::find_last_if, pred1); in f() 58 in_pred(std::ranges in f() [all...] |
H A D | ranges_robust_against_dangling.pass.cpp | 13 // Range algorithms should return `std::ranges::dangling` when given a dangling range. 21 #include <ranges> 44 template <class ExpectedT = std::ranges::dangling, class Func, std::ranges::range Input, class ...Args> 51 template <class ExpectedT = std::ranges::dangling, class Func, std::ranges::range Input, class ...Args> 58 template <class ExpectedT = std::ranges::dangling, class Func, std::ranges::range Input, class ...Args> 68 using std::ranges::dangling; in test_all() 70 using std::ranges in test_all() [all...] |
H A D | ranges_robust_against_proxy_iterators.pass.cpp | 24 #include <ranges> 31 template <class Func, std::ranges::range Input, class ...Args> 38 template <class Func, std::ranges::range Range1, std::ranges::range Range2, class ...Args> 45 template <class Func, std::ranges::range Input, class ...Args> 46 constexpr void test_mid(Func&& func, Input& in, std::ranges::iterator_t<Input> mid, Args&& ...args) { in test_mid() 75 test(std::ranges::any_of, in, unary_pred); in run_tests() 76 test(std::ranges::all_of, in, unary_pred); in run_tests() 78 test(std::ranges::contains, in, x); in run_tests() 79 test(std::ranges in run_tests() [all...] |
H A D | ranges_robust_against_omitting_invoke.pass.cpp | 21 #include <ranges> 41 template <class Func, std::ranges::range Input, class... Args> in test() 48 template <class Func, std::ranges::range Input, class... Args> in test() 55 template <class Func, std::ranges::range Input, class... Args> in test_mid() 56 constexpr void test_mid(Func&& func, Input& in, std::ranges::iterator_t<Input> mid, Args&&... args) { in test_mid() 77 test(std::ranges::any_of, in, &Foo::unary_pred, &Bar::val); in test_all() 78 test(std::ranges::all_of, in, &Foo::unary_pred, &Bar::val); in test_all() 80 test(std::ranges::contains, in, x, &Bar::val); in test_all() 81 test(std::ranges::ends_with, in, in2, &Foo::binary_pred, &Bar::val, &Bar::val); in test_all() 83 test(std::ranges in test_all() [all...] |
/llvm-project/libcxx/test/std/library/description/conventions/customization.point.object/ |
H A D | niebloid.compile.pass.cpp | 21 #include <ranges> 65 static_assert(test(std::ranges::adjacent_find, a)); 66 static_assert(test(std::ranges::all_of, a, odd)); 67 static_assert(test(std::ranges::any_of, a, odd)); 68 static_assert(test(std::ranges::binary_search, a, 42)); 69 static_assert(test(std::ranges::clamp, 42, 42, 42)); 71 static_assert(test(std::ranges::contains, a, 42)); 72 static_assert(test(std::ranges::contains_subrange, a, a)); 74 static_assert(test(std::ranges::copy, a, a)); 75 static_assert(test(std::ranges [all...] |
/llvm-project/libcxx/test/std/ranges/range.req/range.view/ |
H A D | enable_view.compile.pass.cpp | 11 // <ranges> 16 #include <ranges> 22 static_assert(!std::ranges::enable_view<Empty>); 23 static_assert(!std::ranges::enable_view<Empty&>); 24 static_assert(!std::ranges::enable_view<Empty&&>); 25 static_assert(!std::ranges::enable_view<const Empty>); 26 static_assert(!std::ranges::enable_view<const Empty&>); 27 static_assert(!std::ranges::enable_view<const Empty&&>); 30 struct PrivateViewBase : private std::ranges::view_base { }; 31 static_assert(!std::ranges::enable_view<PrivateViewBase>); [all …]
|
/llvm-project/libcxx/test/std/ranges/range.adaptors/range.lazy.split/ |
H A D | constraints.compile.pass.cpp | 16 // indirectly_comparable<iterator_t<V>, iterator_t<Pattern>, ranges::equal_to> && 21 #include <ranges> 30 static_assert( std::ranges::forward_range<ForwardRange>); 34 typename std::ranges::lazy_split_view<View, Pattern>; 42 static_assert( std::ranges::forward_range<View>); 43 static_assert( std::ranges::forward_range<Pattern>); 44 static_assert( std::ranges::view<View>); 45 static_assert( std::ranges::view<Pattern>); 47 std::ranges::iterator_t<View>, std::ranges::iterator_t<Pattern>, std::ranges::equal_to>); 57 static_assert( std::ranges::input_range<View>); [all …]
|
/llvm-project/libcxx/test/std/ranges/range.req/range.refinements/ |
H A D | viewable_range.compile.pass.cpp | 14 #include <ranges> 31 static_assert(!std::ranges::range<T1>); 33 static_assert(!std::ranges::viewable_range<T1>); 34 static_assert(!std::ranges::viewable_range<T1&>); 35 static_assert(!std::ranges::viewable_range<T1&&>); 36 static_assert(!std::ranges::viewable_range<T1 const>); 37 static_assert(!std::ranges::viewable_range<T1 const&>); 38 static_assert(!std::ranges::viewable_range<T1 const&&>); 41 struct T2 : test_range<cpp20_input_iterator>, std::ranges::view_base { 44 static_assert(std::ranges::range<T2>); [all …]
|
H A D | common_range.compile.pass.cpp | 14 #include <ranges> 22 static_assert(!std::ranges::common_range<Common<cpp17_input_iterator<int*>>>); // not a sentinel fo… 23 static_assert(!std::ranges::common_range<Common<cpp20_input_iterator<int*>>>); // not a sentinel fo… 24 static_assert( std::ranges::common_range<Common<forward_iterator<int*>>>); 25 static_assert( std::ranges::common_range<Common<bidirectional_iterator<int*>>>); 26 static_assert( std::ranges::common_range<Common<random_access_iterator<int*>>>); 27 static_assert( std::ranges::common_range<Common<contiguous_iterator<int*>>>); 28 static_assert( std::ranges::common_range<Common<int*>>); 30 static_assert(!std::ranges::common_range<NonCommon<cpp17_input_iterator<int*>>>); 31 static_assert(!std::ranges::common_range<NonCommon<cpp20_input_iterator<int*>>>); [all …]
|
H A D | contiguous_range.compile.pass.cpp | 14 #include <ranges> 19 namespace ranges = std::ranges; 23 constexpr bool result = ranges::contiguous_range<test_range<I> >; in check_range() 24 static_assert(ranges::contiguous_range<test_range<I> const> == result); in check_range() 25 static_assert(ranges::contiguous_range<test_non_const_common_range<I> > == result); in check_range() 26 static_assert(ranges::contiguous_range<test_non_const_range<I> > == result); in check_range() 27 static_assert(ranges::contiguous_range<test_common_range<I> > == result); in check_range() 28 static_assert(ranges::contiguous_range<test_common_range<I> const> == result); in check_range() 29 static_assert(!ranges::contiguous_range<test_non_const_common_range<I> const>); in check_range() 30 static_assert(!ranges::contiguous_range<test_non_const_range<I> const>); in check_range() [all …]
|
H A D | input_range.compile.pass.cpp | 14 #include <ranges> 19 static_assert(std::ranges::input_range<test_range<cpp17_input_iterator> >); 20 static_assert(std::ranges::input_range<test_range<cpp17_input_iterator> const>); 22 static_assert(std::ranges::input_range<test_range<cpp20_input_iterator> >); 23 static_assert(std::ranges::input_range<test_range<cpp20_input_iterator> const>); 25 static_assert(std::ranges::input_range<test_non_const_range<cpp17_input_iterator> >); 26 static_assert(std::ranges::input_range<test_non_const_range<cpp20_input_iterator> >); 28 static_assert(!std::ranges::input_range<test_non_const_range<cpp17_input_iterator> const>); 29 static_assert(!std::ranges::input_range<test_non_const_range<cpp20_input_iterator> const>); 31 static_assert(std::ranges::input_range<test_common_range<forward_iterator> >); [all …]
|
/llvm-project/libcxx/test/libcxx/algorithms/ |
H A D | ranges_robust_against_copying_comparators.pass.cpp | 13 // this test checks that the comparators in the ranges algorithms aren't copied/moved 94 (void)std::ranges::adjacent_find(first, last, Equal(&copies)); assert(copies == 0); in all_the_algorithms() 95 (void)std::ranges::adjacent_find(a, Equal(&copies)); assert(copies == 0); in all_the_algorithms() 96 (void)std::ranges::all_of(first, last, UnaryTrue(&copies)); assert(copies == 0); in all_the_algorithms() 97 (void)std::ranges::all_of(a, UnaryTrue(&copies)); assert(copies == 0); in all_the_algorithms() 98 (void)std::ranges::any_of(first, last, UnaryTrue(&copies)); assert(copies == 0); in all_the_algorithms() 99 (void)std::ranges::any_of(a, UnaryTrue(&copies)); assert(copies == 0); in all_the_algorithms() 100 (void)std::ranges::binary_search(first, last, value, Less(&copies)); assert(copies == 0); in all_the_algorithms() 101 (void)std::ranges::binary_search(a, value, Less(&copies)); assert(copies == 0); in all_the_algorithms() 102 (void)std::ranges in all_the_algorithms() [all...] |
H A D | ranges_robust_against_copying_projections.pass.cpp | 13 // this test checks that the projections in the ranges algorithms aren't copied/moved 76 (void)std::ranges::adjacent_find(first, last, Equal(), Proj(&copies)); assert(copies == 0); in all_the_algorithms() 77 (void)std::ranges::adjacent_find(a, Equal(), Proj(&copies)); assert(copies == 0); in all_the_algorithms() 78 (void)std::ranges::all_of(first, last, UnaryTrue(), Proj(&copies)); assert(copies == 0); in all_the_algorithms() 79 (void)std::ranges::all_of(a, UnaryTrue(), Proj(&copies)); assert(copies == 0); in all_the_algorithms() 80 (void)std::ranges::any_of(first, last, UnaryTrue(), Proj(&copies)); assert(copies == 0); in all_the_algorithms() 81 (void)std::ranges::any_of(a, UnaryTrue(), Proj(&copies)); assert(copies == 0); in all_the_algorithms() 82 (void)std::ranges::binary_search(first, last, value, Less(), Proj(&copies)); assert(copies == 0); in all_the_algorithms() 83 (void)std::ranges::binary_search(a, value, Less(), Proj(&copies)); assert(copies == 0); in all_the_algorithms() 84 (void)std::ranges in all_the_algorithms() [all...] |
/llvm-project/libcxx/test/std/algorithms/alg.nonmodifying/alg.fold/ |
H A D | requirements.compile.pass.cpp | 15 // constexpr see below ranges::fold_left_with_iter(I first, S last, T init, F f); 18 // constexpr see below ranges::fold_left_with_iter(R&& r, T init, F f); 22 // constexpr see below ranges::fold_left(I first, S last, T init, F f); 25 // constexpr see below ranges::fold_left(R&& r, T init, F f); 34 #include <ranges> 60 std::ranges::fold_left_with_iter(r.begin(), r.end(), std::unreachable_sentinel, 0, std::plus()); in requires_input_iterator() 62 static_assert(!requires(bad_range r) { std::ranges::fold_left_with_iter(r, 0, std::plus()); }); in requires_input_iterator() 65 std::ranges::fold_left(r.begin(), r.end(), std::unreachable_sentinel, 0, std::plus()); in requires_input_iterator() 68 static_assert(!requires(bad_range r) { std::ranges::fold_left(r, 0, std::plus()); }); in requires_input_iterator() 74 …static_assert(!requires(S first, S last) { std::ranges::fold_left_with_iter(first, last, 0, std::p… in requires_sentinel() [all …]
|
/llvm-project/libcxx/test/std/ranges/range.adaptors/range.join/ |
H A D | end.pass.cpp | 18 #include <ranges> 48 struct ConstNotRange : std::ranges::view_base { 61 std::ranges::join_view jv(outer); in test() 62 assert(jv.end() == std::ranges::next(jv.begin(), 16)); in test() 63 assert(std::as_const(jv).end() == std::ranges::next(std::as_const(jv).begin(), 16)); in test() 67 static_assert(std::ranges::common_range<decltype(jv)>); in test() 68 static_assert(std::ranges::common_range<const decltype(jv)>); in test() 76 std::ranges::join_view jv(outer); in test() 77 assert(jv.end() == std::ranges::next(jv.begin(), 12)); in test() 78 assert(std::as_const(jv).end() == std::ranges::next(std::as_const(jv).begin(), 12)); in test() [all …]
|
/llvm-project/libcxx/test/std/algorithms/algorithms.results/ |
H A D | in_in_out_result.pass.cpp | 24 static_assert(!std::is_constructible_v<std::ranges::in_in_out_result<A, A, A>, 25 std::ranges::in_in_out_result<int, int, int>>); 31 static_assert(std::is_constructible_v<std::ranges::in_in_out_result<B, B, B>, std::ranges::in_in_ou… 32 static_assert(std::is_constructible_v<std::ranges::in_in_out_result<B, B, B>, std::ranges::in_in_ou… 33 static_assert(std::is_constructible_v<std::ranges::in_in_out_result<B, B, B>, const std::ranges::in… 34 static_assert(std::is_constructible_v<std::ranges::in_in_out_result<B, B, B>, const std::ranges::in… 39 static_assert(!std::is_constructible_v<std::ranges::in_in_out_result<C, C, C>, std::ranges::in_in_o… 42 static_assert(std::is_convertible_v<std::ranges::in_in_out_result<int, int, int>&, std::ranges::in_… 43 static_assert(std::is_convertible_v<const std::ranges::in_in_out_result<int, int, int>&, std::range… 44 static_assert(std::is_convertible_v<std::ranges::in_in_out_result<int, int, int>&&, std::ranges::in… [all …]
|
H A D | in_out_out_result.pass.cpp | 24 static_assert(!std::is_constructible_v<std::ranges::in_out_out_result<A, A, A>, std::ranges::in_out… 30 static_assert(std::is_constructible_v<std::ranges::in_out_out_result<B, B, B>, std::ranges::in_out_… 31 static_assert(std::is_constructible_v<std::ranges::in_out_out_result<B, B, B>, std::ranges::in_out_… 32 static_assert(std::is_constructible_v<std::ranges::in_out_out_result<B, B, B>, const std::ranges::i… 33 static_assert(std::is_constructible_v<std::ranges::in_out_out_result<B, B, B>, const std::ranges::i… 38 static_assert(!std::is_constructible_v<std::ranges::in_out_out_result<C, C, C>, std::ranges::in_out… 41 static_assert(std::is_convertible_v<std::ranges::in_out_out_result<int, int, int>&, std::ranges::in… 42 static_assert(std::is_convertible_v<const std::ranges::in_out_out_result<int, int, int>&, std::rang… 43 static_assert(std::is_convertible_v<std::ranges::in_out_out_result<int, int, int>&&, std::ranges::i… 44 static_assert(std::is_convertible_v<const std::ranges::in_out_out_result<int, int, int>&&, std::ran… [all …]
|
/llvm-project/libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.distance/ |
H A D | iterator_sentinel.pass.cpp | 13 // constexpr iter_difference_t<I> ranges::distance(I first, S last); 16 // constexpr iter_difference_t<I> ranges::distance(I&& first, S last); // TODO: update when LWG3664 is resolved 31 assert(std::ranges::distance(first, last) == 0); in test_unsized() 32 assert(std::ranges::distance(It(a), last) == 0); in test_unsized() 33 assert(std::ranges::distance(first, Sent(It(a))) == 0); in test_unsized() 34 assert(std::ranges::distance(It(a), Sent(It(a))) == 0); in test_unsized() 35 ASSERT_SAME_TYPE(decltype(std::ranges::distance(It(a), Sent(It(a)))), std::iter_difference_t<It>); in test_unsized() 41 assert(std::ranges::distance(static_cast<ItQual>(first), static_cast<SentQual>(last)) == 3); in test_unsized() 72 assert(std::ranges::distance(static_cast<ItQual>(first), static_cast<SentQual>(last)) == -3); in test_sized() 96 assert(std::ranges in test_sized() [all...] |
/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/ |
H A D | to.pass.cpp | 17 #include <ranges> 30 std::ranges::to<Container>(std::forward<Range>(range), std::forward<Args>(args)...); 42 static_assert(std::ranges::input_range<InputRange>); 72 static_assert(std::ranges::input_range<CommonInputRange>); 73 static_assert(std::ranges::common_range<CommonInputRange>); 84 static_assert(std::ranges::input_range<CommonRange>); 85 static_assert(std::ranges::common_range<CommonRange>); 96 static_assert(std::ranges::input_range<NonCommonRange>); 97 static_assert(!std::ranges::common_range<NonCommonRange>); 99 typename std::iterator_traits<std::ranges [all...] |
/llvm-project/libcxx/test/std/algorithms/alg.sorting/alg.binary.search/binary.search/ |
H A D | ranges.binary_search.pass.cpp | 12 // indirect_strict_weak_order<const T*, projected<I, Proj>> Comp = ranges::less> 13 // constexpr bool ranges::binary_search(I first, S last, const T& value, Comp comp = {}, 17 // ranges::less> 18 // constexpr bool ranges::binary_search(R&& r, const T& value, Comp comp = {}, 25 #include <ranges> 33 concept HasLowerBoundIt = requires(It it, Sent sent) { std::ranges::binary_search(it, sent, 1); }; 42 concept HasLowerBoundR = requires(Range range) { std::ranges::binary_search(range, 1); }; 50 concept HasLowerBoundPred = requires(int* it, Pred pred) {std::ranges::binary_search(it, it, 1, pre… 52 static_assert(HasLowerBoundPred<std::ranges::less>); 61 std::same_as<bool> auto ret = std::ranges::binary_search(It(a), Sent(It(a + 6)), 3); in test_iterators() [all …]
|