| /llvm-project-15.0.7/libcxx/test/std/ranges/range.utility/range.subrange/ |
| H A D | ctor.range_size.pass.cpp | 43 Subrange subrange(range, 0); in test() local 44 assert(subrange.size() == 0); in test() 50 Subrange subrange(range, 1); in test() local 51 assert(subrange.size() == 1); in test() 55 Subrange subrange(range, 2); in test() local 56 assert(subrange[0] == 1); in test() 57 assert(subrange[1] == 2); in test() 62 Subrange subrange(range, 8); in test() local 63 assert(subrange[0] == 1); in test() 64 assert(subrange[1] == 2); in test() [all …]
|
| H A D | ctad.compile.pass.cpp | 24 static_assert(std::same_as<decltype(std::ranges::subrange(fi, fi)), 25 std::ranges::subrange<FI, FI, std::ranges::subrange_kind::unsized>>); 26 static_assert(std::same_as<decltype(std::ranges::subrange(ptr, ptr, 0)), 27 std::ranges::subrange<int*, int*, std::ranges::subrange_kind::sized>>); 28 static_assert(std::same_as<decltype(std::ranges::subrange(ptr, nullptr, 0)), 45 static_assert(std::same_as<decltype(std::ranges::subrange(ForwardRange())), 46 std::ranges::subrange<FI, FI, std::ranges::subrange_kind::unsized>>); 47 static_assert(std::same_as<decltype(std::ranges::subrange(SizedRange())), 48 std::ranges::subrange<int*, int*, std::ranges::subrange_kind::sized>>); 49 static_assert(std::same_as<decltype(std::ranges::subrange(SizedRange(), 8)), [all …]
|
| H A D | ctor.default.pass.cpp | 43 …static_assert(!std::is_default_constructible_v<std::ranges::subrange<NoDefaultIterator, Sentinel, … in test() 44 …static_assert(!std::is_default_constructible_v<std::ranges::subrange<NoDefaultIterator, Sentinel, … in test() 49 std::ranges::subrange<Iter, Iter, std::ranges::subrange_kind::sized> subrange; in test() local 50 assert(subrange.begin() == Iter()); in test() 51 assert(subrange.end() == Iter()); in test() 55 std::ranges::subrange<Iter, Iter, std::ranges::subrange_kind::unsized> subrange; in test() local 56 assert(subrange.begin() == Iter()); in test() 57 assert(subrange.end() == Iter()); in test()
|
| H A D | primitives.pass.cpp | 24 std::ranges::subrange<MoveOnlyForwardIter, int*> a(MoveOnlyForwardIter(buff), buff + 5, 5); in test() 31 std::ranges::subrange<ForwardIter> b(ForwardIter(nullptr), ForwardIter(nullptr)); in test() 36 std::ranges::subrange<ForwardIter> c{ForwardIter(buff), ForwardIter(buff)}; in test() 41 std::ranges::subrange<ForwardIter> d(ForwardIter(buff), ForwardIter(buff + 1)); in test() 48 std::ranges::subrange<SizedSentinelForwardIter> e(beg, end, 5); in test()
|
| H A D | lwg3470.pass.cpp | 27 std::ranges::subrange<const int* const*> c = b; in test() 32 std::same_as<std::ranges::subrange<int**>> auto d = std::ranges::subrange(b); in test() 36 std::ranges::subrange<const int* const*> e = d; in test()
|
| H A D | get.pass.cpp | 25 static_assert( HasGet<0, std::ranges::subrange<int*>>); 26 static_assert( HasGet<1, std::ranges::subrange<int*>>); 27 static_assert(!HasGet<2, std::ranges::subrange<int*>>); 28 static_assert(!HasGet<3, std::ranges::subrange<int*>>); 35 using R = std::ranges::subrange<It, Sent, std::ranges::subrange_kind::unsized>; in test() 54 using R = std::ranges::subrange<It, Sent, std::ranges::subrange_kind::sized>; in test() 74 using R = std::ranges::subrange<It, Sent>; in test()
|
| H A D | advance.pass.cpp | 22 std::ranges::subrange<int*> a(globalBuff, globalBuff + 8, 8); in test() 33 …std::ranges::subrange<InputIter, sentinel_wrapper<InputIter>> b(InputIter(globalBuff), sentinel_wr… in test() 37 std::ranges::subrange<BidirIter> c(BidirIter(globalBuff + 4), BidirIter(globalBuff + 8)); in test() 43 std::ranges::subrange<BidirIter> d(BidirIter(globalBuff + 4), BidirIter(globalBuff + 8)); in test()
|
| /llvm-project-15.0.7/libcxx/include/__ranges/ |
| H A D | subrange.h | 77 class _LIBCPP_TEMPLATE_VIS subrange 78 : public view_interface<subrange<_Iter, _Sent, _Kind>> 113 template<__different_from<subrange> _Range> 118 constexpr subrange(_Range&& __range) in subrange() function 123 template<__different_from<subrange> _Range> 128 constexpr subrange(_Range&& __range) in subrange() function 130 : subrange(__range, ranges::size(__range)) in subrange() 142 template<__different_from<subrange> _Pair> 217 subrange(_Iter, _Sent) -> subrange<_Iter, _Sent>; 221 -> subrange<_Iter, _Sent, subrange_kind::sized>; [all …]
|
| H A D | counted.h | 49 noexcept(noexcept(subrange(__it, __it + __count))) 50 -> decltype( subrange(__it, __it + __count)) 51 { return subrange(__it, __it + __count); } 56 noexcept(noexcept(subrange(counted_iterator(std::move(__it), __count), default_sentinel))) 57 -> decltype( subrange(counted_iterator(std::move(__it), __count), default_sentinel)) 58 { return subrange(counted_iterator(std::move(__it), __count), default_sentinel); }
|
| /llvm-project-15.0.7/clang/test/PCH/ |
| H A D | cxx2a-constraints-crash.cpp | 13 struct subrange { struct 15 subrange(R) requires(Kind == 0); 18 subrange(R) requires(Kind != 0); 22 subrange(R) -> subrange<42>; 26 subrange s(c); in main()
|
| /llvm-project-15.0.7/libcxx/test/std/ranges/range.adaptors/range.reverse/ |
| H A D | adaptor.pass.cpp | 53 using Subrange = std::ranges::subrange<It, It, std::ranges::subrange_kind::sized>; in test() 56 …using ReverseSubrange = std::ranges::subrange<ReverseIt, ReverseIt, std::ranges::subrange_kind::si… in test() 61 std::same_as<Subrange> auto result = std::views::reverse(subrange); in test() 69 std::same_as<Subrange> auto result = std::views::reverse(std::move(subrange)); in test() 77 std::same_as<Subrange> auto result = std::views::reverse(subrange); in test() 87 using Subrange = std::ranges::subrange<It, It, std::ranges::subrange_kind::unsized>; in test() 94 … ReverseSubrange subrange(ReverseIt(std::ranges::end(view)), ReverseIt(std::ranges::begin(view))); in test() local 95 std::same_as<Subrange> auto result = std::views::reverse(subrange); in test() 102 … ReverseSubrange subrange(ReverseIt(std::ranges::end(view)), ReverseIt(std::ranges::begin(view))); in test() local 103 std::same_as<Subrange> auto result = std::views::reverse(std::move(subrange)); in test() [all …]
|
| /llvm-project-15.0.7/libcxx/test/std/algorithms/alg.nonmodifying/alg.search/ |
| H A D | ranges.search.pass.cpp | 81 auto range1 = std::ranges::subrange(Iter1(a), Sent1(Iter1(a + 6))); in test_iterators() 82 auto range2 = std::ranges::subrange(Iter2(p), Sent2(Iter2(p + 2))); in test_iterators() 100 auto range1 = std::ranges::subrange(Iter1(a), Sent1(Iter1(a + 6))); in test_iterators() 101 auto range2 = std::ranges::subrange(Iter2(p), Sent2(Iter2(p + 3))); in test_iterators() 119 auto range1 = std::ranges::subrange(Iter1(a), Sent1(Iter1(a + 5))); in test_iterators() 120 auto range2 = std::ranges::subrange(Iter2(p), Sent2(Iter2(p + 2))); in test_iterators() 138 auto range1 = std::ranges::subrange(Iter1(a), Sent1(Iter1(a + 5))); in test_iterators() 139 auto range2 = std::ranges::subrange(Iter2(p), Sent2(Iter2(p + 1))); in test_iterators() 157 auto range1 = std::ranges::subrange(Iter1(a), Sent1(Iter1(a + 4))); in test_iterators() 196 auto range2 = std::ranges::subrange(Iter2(p), Sent2(Iter2(p))); in test_iterators() [all …]
|
| H A D | ranges.search_n.pass.cpp | 70 auto range = std::ranges::subrange(Iter(a), Sent(Iter(a + 6))); in test_iterators() 86 auto range = std::ranges::subrange(Iter(a), Sent(Iter(a + 6))); in test_iterators() 102 auto range = std::ranges::subrange(Iter(a), Sent(Iter(a + 5))); in test_iterators() 118 auto range = std::ranges::subrange(Iter(a), Sent(Iter(a + 5))); in test_iterators() 134 auto range = std::ranges::subrange(Iter(a), Sent(Iter(a + 4))); in test_iterators() 150 auto range = std::ranges::subrange(Iter(a), Sent(Iter(a + 3))); in test_iterators() 166 auto range = std::ranges::subrange(Iter(a), Sent(Iter(a + 3))); in test_iterators() 182 auto range = std::ranges::subrange(Iter(a), Sent(Iter(a))); in test_iterators() 198 auto range = std::ranges::subrange(Iter(a), Sent(Iter(a + 9))); in test_iterators() 217 auto range = std::ranges::subrange(Iter(a), Sent(Iter(a + 6))); in test_iterators() [all …]
|
| /llvm-project-15.0.7/libcxx/test/std/algorithms/alg.nonmodifying/alg.find.end/ |
| H A D | ranges.find_end.pass.cpp | 80 auto range1 = std::ranges::subrange(Iter1(a), Sent1(Iter1(a + 6))); in test_iterators() 81 auto range2 = std::ranges::subrange(Iter2(p), Sent2(Iter2(p + 2))); in test_iterators() 99 auto range1 = std::ranges::subrange(Iter1(a), Sent1(Iter1(a + 6))); in test_iterators() 100 auto range2 = std::ranges::subrange(Iter2(p), Sent2(Iter2(p + 3))); in test_iterators() 118 auto range1 = std::ranges::subrange(Iter1(a), Sent1(Iter1(a + 5))); in test_iterators() 119 auto range2 = std::ranges::subrange(Iter2(p), Sent2(Iter2(p + 2))); in test_iterators() 137 auto range1 = std::ranges::subrange(Iter1(a), Sent1(Iter1(a + 5))); in test_iterators() 138 auto range2 = std::ranges::subrange(Iter2(p), Sent2(Iter2(p + 1))); in test_iterators() 156 auto range1 = std::ranges::subrange(Iter1(a), Sent1(Iter1(a + 4))); in test_iterators() 195 auto range2 = std::ranges::subrange(Iter2(p), Sent2(Iter2(p))); in test_iterators() [all …]
|
| /llvm-project-15.0.7/libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/ |
| H A D | ranges.equal.pass.cpp | 85 auto range1 = std::ranges::subrange(Iter1(a), Sent1(Iter1(a + 4))); in test_iterators() 86 auto range2 = std::ranges::subrange(Iter2(b), Sent2(Iter2(b + 4))); in test_iterators() 103 auto range1 = std::ranges::subrange(Iter1(a), Sent1(Iter1(a + 4))); in test_iterators() 104 auto range2 = std::ranges::subrange(Iter2(b), Sent2(Iter2(b + 4))); in test_iterators() 121 auto range1 = std::ranges::subrange(Iter1(a), Sent1(Iter1(a + 4))); in test_iterators() 122 auto range2 = std::ranges::subrange(Iter2(b), Sent2(Iter2(b + 4))); in test_iterators() 142 auto range1 = std::ranges::subrange(Iter1(a), Sent1(Iter1(a + 5))); in test_iterators() 197 auto range1 = std::ranges::subrange(Iter1(a), Sent1(Iter1(a))); in test_iterators() 198 auto range2 = std::ranges::subrange(Iter2(b), Sent2(Iter2(b))); in test_iterators() 214 auto range1 = std::ranges::subrange(Iter1(a), Sent1(Iter1(a))); in test_iterators() [all …]
|
| /llvm-project-15.0.7/libcxx/test/std/algorithms/alg.sorting/alg.binary.search/equal.range/ |
| H A D | ranges_equal_range.pass.cpp | 77 constexpr void testEqualRangeImpl(std::array<int, N>& in, int value, std::ranges::subrange<int*> ex… in testEqualRangeImpl() 82 std::same_as<std::ranges::subrange<InIter, InIter>> decltype(auto) result = in testEqualRangeImpl() 91 std::ranges::subrange r{InIter{in.data()}, Sent{InIter{in.data() + in.size()}}}; in testEqualRangeImpl() 105 std::ranges::subrange<int*> expected{in.data() + 4, in.data() + 4}; in testImpl() 113 std::ranges::subrange<int*> expected{in.data(), in.data()}; in testImpl() 121 std::ranges::subrange<int*> expected{in.data() + in.size(), in.data() + in.size()}; in testImpl() 129 std::ranges::subrange<int*> expected{in.data() + 2, in.data() + 3}; in testImpl() 137 std::ranges::subrange<int*> expected{in.data() + 3, in.data() + 6}; in testImpl() 145 std::ranges::subrange<int*> expected{in.data(), in.data() + in.size()}; in testImpl() 153 std::ranges::subrange<int*> expected{in.data(), in.data()}; in testImpl() [all …]
|
| /llvm-project-15.0.7/libcxx/test/std/ranges/range.adaptors/range.take/ |
| H A D | adaptor.pass.cpp | 148 auto subrange = std::ranges::subrange(buf, buf + N); in test() local 149 using Result = std::ranges::subrange<int*>; in test() 150 std::same_as<Result> decltype(auto) result = subrange | std::views::take(3); in test() 157 auto subrange = std::ranges::subrange(v.begin(), v.end()); in test() local 159 using Result = std::ranges::take_view<std::ranges::subrange<forward_iterator<int*>, in test() 161 std::same_as<Result> decltype(auto) result = subrange | std::views::take(3); in test() 167 std::ranges::subrange<int*, sized_sentinel<int*>, std::ranges::subrange_kind::sized> subrange; in test() local 169 using Result = std::ranges::subrange<int*, int*, std::ranges::subrange_kind::sized>; in test() 170 [[maybe_unused]] std::same_as<Result> decltype(auto) result = subrange | std::views::take(3); in test() 187 test_small_range(std::ranges::subrange(buf, buf + N)); in test()
|
| /llvm-project-15.0.7/libcxx/test/std/ranges/range.adaptors/range.drop/ |
| H A D | adaptor.pass.cpp | 184 auto subrange = std::ranges::subrange(buf, buf + N); in test() local 185 LIBCPP_STATIC_ASSERT(!decltype(subrange)::_StoreSize); in test() 187 using Result = std::ranges::subrange<int*>; in test() 188 std::same_as<Result> decltype(auto) result = subrange | std::views::drop(3); in test() 198 …auto subrange = Subrange(view.begin(), view.end(), std::ranges::distance(view.begin(), view.end())… in test() local 199 LIBCPP_STATIC_ASSERT(decltype(subrange)::_StoreSize); in test() 201 std::same_as<Subrange> decltype(auto) result = subrange | std::views::drop(3); in test() 208 auto subrange = std::ranges::subrange(v.begin(), v.end()); in test() local 210 using Result = std::ranges::drop_view<std::ranges::subrange<forward_iterator<int*>, in test() 212 std::same_as<Result> decltype(auto) result = subrange | std::views::drop(3); in test() [all …]
|
| /llvm-project-15.0.7/libcxx/test/std/algorithms/alg.sorting/alg.binary.search/binary.search/ |
| H A D | ranges.binary_search.pass.cpp | 67 auto range = std::ranges::subrange(It(a), Sent(It(a + 6))); in test_iterators() 76 auto range = std::ranges::subrange(It(a), Sent(It(a + 6))); in test_iterators() 83 auto range = std::ranges::subrange(It(a), Sent(It(a + 6))); in test_iterators() 90 auto range = std::ranges::subrange(It(a), Sent(It(a + 5))); in test_iterators() 97 auto range = std::ranges::subrange(It(a), Sent(It(a + 4))); in test_iterators() 104 auto range = std::ranges::subrange(It(a), Sent(It(a + 4))); in test_iterators() 111 auto range = std::ranges::subrange(It(a), Sent(It(a + 1))); in test_iterators() 118 auto range = std::ranges::subrange(It(a), Sent(It(a + 6))); in test_iterators() 125 auto range = std::ranges::subrange(It(a), Sent(It(a + 5))); in test_iterators() 132 auto range = std::ranges::subrange(It(a), Sent(It(a + 5))); in test_iterators()
|
| /llvm-project-15.0.7/libcxx/test/std/algorithms/alg.sorting/alg.sort/partial.sort.copy/ |
| H A D | ranges_partial_sort_copy.pass.cpp | 149 assert(std::ranges::equal(std::ranges::subrange(out.begin(), out.begin() + result_size), in test_one() 150 std::ranges::subrange(sorted.begin(), sorted.begin() + result_size))); in test_one() 157 auto in_range = std::ranges::subrange(Iter(begin), Sent(Iter(end))); in test_one() 158 auto out_range = std::ranges::subrange(OutIter(out_begin), OutSent(OutIter(out_end))); in test_one() 165 assert(std::ranges::equal(std::ranges::subrange(out.begin(), out.begin() + result_size), in test_one() 166 std::ranges::subrange(sorted.begin(), sorted.begin() + result_size))); in test_one() 249 assert(std::ranges::equal(std::ranges::subrange(out.begin(), result.out), std::array{5, 4})); in test() 256 assert(std::ranges::equal(std::ranges::subrange(out.begin(), result.out), std::array{5, 4})); in test() 280 assert(std::ranges::equal(std::ranges::subrange(out.begin(), result.out), std::array{1, 2})); in test() 283 assert(std::ranges::equal(std::ranges::subrange(out.begin(), result.out), std::array{3, 2})); in test() [all …]
|
| /llvm-project-15.0.7/libcxx/test/std/algorithms/alg.sorting/alg.binary.search/upper.bound/ |
| H A D | ranges.upper_bound.pass.cpp | 66 auto range = std::ranges::subrange(It(a), It(a + 6)); in test_iterators() 80 auto range = std::ranges::subrange(It(a), It(a + 6)); in test_iterators() 94 auto range = std::ranges::subrange(It(a), It(a + 6)); in test_iterators() 108 auto range = std::ranges::subrange(It(a), It(a + 5)); in test_iterators() 122 auto range = std::ranges::subrange(It(a), It(a + 4)); in test_iterators() 136 auto range = std::ranges::subrange(It(a), It(a + 4)); in test_iterators() 150 auto range = std::ranges::subrange(It(a), It(a + 1)); in test_iterators() 164 auto range = std::ranges::subrange(It(a), It(a + 6)); in test_iterators() 178 auto range = std::ranges::subrange(It(a), It(a + 5)); in test_iterators() 192 auto range = std::ranges::subrange(It(a), It(a + 6)); in test_iterators()
|
| /llvm-project-15.0.7/libcxx/test/std/algorithms/alg.sorting/alg.binary.search/lower.bound/ |
| H A D | ranges.lower_bound.pass.cpp | 67 auto range = std::ranges::subrange(It(a), It(a + 6)); in test_iterators() 81 auto range = std::ranges::subrange(It(a), It(a + 6)); in test_iterators() 95 auto range = std::ranges::subrange(It(a), It(a + 6)); in test_iterators() 109 auto range = std::ranges::subrange(It(a), It(a + 5)); in test_iterators() 123 auto range = std::ranges::subrange(It(a), It(a + 4)); in test_iterators() 137 auto range = std::ranges::subrange(It(a), It(a + 4)); in test_iterators() 151 auto range = std::ranges::subrange(It(a), It(a + 1)); in test_iterators() 165 auto range = std::ranges::subrange(It(a), It(a + 6)); in test_iterators() 179 auto range = std::ranges::subrange(It(a), It(a + 5)); in test_iterators() 193 auto range = std::ranges::subrange(It(a), It(a + 6)); in test_iterators()
|
| /llvm-project-15.0.7/libcxx/test/std/ranges/range.adaptors/range.counted/ |
| H A D | counted.pass.cpp | 118 ASSERT_SAME_TYPE(decltype(c1), std::ranges::subrange<random_access_iterator<int*>>); in test() 119 ASSERT_SAME_TYPE(decltype(c2), std::ranges::subrange<random_access_iterator<int*>>); in test() 120 ASSERT_SAME_TYPE(decltype(c3), std::ranges::subrange<random_access_iterator<int*>>); in test() 121 ASSERT_SAME_TYPE(decltype(c4), std::ranges::subrange<random_access_iterator<int*>>); in test() 122 ASSERT_SAME_TYPE(decltype(c5), std::ranges::subrange<random_access_iterator<const int*>>); in test() 123 ASSERT_SAME_TYPE(decltype(c6), std::ranges::subrange<random_access_iterator<const int*>>); in test() 124 ASSERT_SAME_TYPE(decltype(c7), std::ranges::subrange<random_access_iterator<const int*>>); in test() 125 ASSERT_SAME_TYPE(decltype(c8), std::ranges::subrange<random_access_iterator<const int*>>); in test() 150 …using Expected = std::ranges::subrange<std::counted_iterator<decltype(it)>, std::default_sentinel_… in test() 180 …using Expected = std::ranges::subrange<std::counted_iterator<decltype(it)>, std::default_sentinel_… in test() [all …]
|
| /llvm-project-15.0.7/libcxx/test/std/algorithms/alg.sorting/alg.partitions/ |
| H A D | ranges.is_partitioned.pass.cpp | 85 auto range = std::ranges::subrange(Iter(a), Sent(Iter(a + 5))); in test_iterators() 99 auto range = std::ranges::subrange(Iter(a), Sent(Iter(a + 4))); in test_iterators() 113 auto range = std::ranges::subrange(Iter(a), Sent(Iter(a + 4))); in test_iterators() 127 auto range = std::ranges::subrange(Iter(a), Sent(Iter(a + 4))); in test_iterators() 141 auto range = std::ranges::subrange(Iter(a), Sent(Iter(a))); in test_iterators() 155 auto range = std::ranges::subrange(Iter(a), Sent(Iter(a + 1))); in test_iterators() 169 auto range = std::ranges::subrange(Iter(a), Sent(Iter(a + 3))); in test_iterators() 183 auto range = std::ranges::subrange(Iter(a), Sent(Iter(a + 3))); in test_iterators()
|
| /llvm-project-15.0.7/libcxx/test/std/algorithms/alg.sorting/alg.sort/is.sorted/ |
| H A D | ranges.is_sorted.pass.cpp | 63 auto range = std::ranges::subrange(Iter(a), Sent(Iter(a + 5))); in test_iterators() 77 auto range = std::ranges::subrange(Iter(a), Sent(Iter(a + 5))); in test_iterators() 91 auto range = std::ranges::subrange(Iter(a), Sent(Iter(a + 5))); in test_iterators() 105 auto range = std::ranges::subrange(Iter(a), Sent(Iter(a + 4))); in test_iterators() 119 auto range = std::ranges::subrange(Iter(a), Sent(Iter(a))); in test_iterators() 133 auto range = std::ranges::subrange(Iter(a), Sent(Iter(a + 1))); in test_iterators()
|