Lines Matching full:ranges

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::iterator_t<NonCommonRange>>::iterator_category,
103 static_assert(!std::ranges::view<ContainerT>);
110 // Check the exact constraints for each one of the cases inside `ranges::to`.
156 static_assert(std::ranges::sized_range<MaybeSizedRange<true>>);
157 static_assert(!std::ranges::sized_range<MaybeSizedRange<false>>);
188 LIBCPP_STATIC_ASSERT(std::ranges::__reservable_container<Reservable<>>);
193 auto result = std::ranges::to<CtrDirectOrFallback>(InputRange());
198 auto result = std::ranges::to<CtrDirectOrFallback>(InputRange(), 1);
203 auto result = std::ranges::to<CtrDirectOrFallback>(InputRange(), 1.0);
208 auto result = std::ranges::to<CtrDirectOrFallback>(InputRange(), Empty());
215 auto result = std::ranges::to<CtrFromRangeTOrFallback>(InputRange());
220 auto result = std::ranges::to<CtrFromRangeTOrFallback>(InputRange(), 1);
225 auto result = std::ranges::to<CtrFromRangeTOrFallback>(InputRange(), 1.0);
230 auto result = std::ranges::to<CtrFromRangeTOrFallback>(InputRange(), Empty());
237 auto result = std::ranges::to<CtrBeginEndPairOrFallback>(CommonRange());
242 auto result = std::ranges::to<CtrBeginEndPairOrFallback>(CommonRange(), 1);
247 auto result = std::ranges::to<CtrBeginEndPairOrFallback>(CommonRange(), 1.0);
252 auto result = std::ranges::to<CtrBeginEndPairOrFallback>(NonCommonRange());
257 auto result = std::ranges::to<CtrBeginEndPairOrFallback>(CommonInputRange());
262 auto result = std::ranges::to<CtrBeginEndPairOrFallback>(CommonRange(), Empty());
274 auto result = std::ranges::to<C>(MaybeSizedRange<true>());
280 auto result = std::ranges::to<C>(MaybeSizedRange<false>());
286 auto result = std::ranges::to<C>(MaybeSizedRange<true>());
292 auto result = std::ranges::to<C>(MaybeSizedRange<true>());
298 auto result = std::ranges::to<C>(MaybeSizedRange<true>());
305 auto result = std::ranges::to<C>(MaybeSizedRange<true>());
319 std::same_as<C> decltype(auto) result = std::ranges::to<C>(in);
322 assert(std::ranges::equal(result, in));
323 assert((in | std::ranges::to<C>()) == result);
324 auto closure = std::ranges::to<C>();
330 std::same_as<C> decltype(auto) result = std::ranges::to<C>(in, arg1, arg2);
333 assert(std::ranges::equal(result, in));
336 assert((in | std::ranges::to<C>(arg1, arg2)) == result);
337 auto closure = std::ranges::to<C>(arg1, arg2);
345 std::same_as<C> decltype(auto) result = std::ranges::to<C>(in);
348 assert(std::ranges::equal(result, in));
349 assert((in | std::ranges::to<C>()) == result);
350 auto closure = std::ranges::to<C>();
356 std::same_as<C> decltype(auto) result = std::ranges::to<C>(in, arg1, arg2);
359 assert(std::ranges::equal(result, in));
362 assert((in | std::ranges::to<C>(arg1, arg2)) == result);
363 auto closure = std::ranges::to<C>(arg1, arg2);
371 std::same_as<C> decltype(auto) result = std::ranges::to<C>(in);
374 assert(std::ranges::equal(result, in));
375 assert((in | std::ranges::to<C>()) == result);
376 auto closure = std::ranges::to<C>();
382 std::same_as<C> decltype(auto) result = std::ranges::to<C>(in, arg1, arg2);
385 assert(std::ranges::equal(result, in));
388 assert((in | std::ranges::to<C>(arg1, arg2)) == result);
389 auto closure = std::ranges::to<C>(arg1, arg2);
398 [[maybe_unused]] std::same_as<C> decltype(auto) result = std::ranges::to<C>(in);
402 assert(std::ranges::equal(result, in));
410 assert((in | std::ranges::to<C>()) == result);
411 [[maybe_unused]] auto closure = std::ranges::to<C>();
416 [[maybe_unused]] std::same_as<C> decltype(auto) result = std::ranges::to<C>(in, arg1, arg2);
420 assert(std::ranges::equal(result, in));
430 assert((in | std::ranges::to<C>(arg1, arg2)) == result);
431 [[maybe_unused]] auto closure = std::ranges::to<C>(arg1, arg2);
451 constexpr NotARange(std::ranges::input_range auto&&)
455 constexpr NotARange(std::from_range_t, std::ranges::input_range auto&&)
471 static_assert(!std::ranges::range<NotARange<CtrChoice::DirectCtr>>);
474 // Test LWG 3785 ("`ranges::to` is over-constrained on the destination type being a range") -- make sure it's possible
480 [[maybe_unused]] std::same_as<C> decltype(auto) result = std::ranges::to<C>(in);
485 [[maybe_unused]] std::same_as<C> decltype(auto) result = std::ranges::to<C>(in);
490 [[maybe_unused]] std::same_as<C> decltype(auto) result = std::ranges::to<C>(in);
495 [[maybe_unused]] std::same_as<C> decltype(auto) result = std::ranges::to<C>(in);
523 std::same_as<C4> decltype(auto) result = std::ranges::to<C4>(in);
545 assert((in | std::ranges::to<C4>()) == result);
547 // LWG3984: ranges::to's recursion branch may be ill-formed
549 static_assert(!std::ranges::viewable_range<decltype((in_owning_view))>);
550 assert(std::ranges::to<C4>(in_owning_view) == result);