7#include <dr/detail/ranges.hpp>
13 std::forward_iterator<I> &&
requires(I &iter) { dr::ranges::rank(iter); };
17 rng::forward_range<R> &&
requires(R &r) { dr::ranges::rank(r); };
21 rng::forward_range<R> &&
requires(R &r) { dr::ranges::segments(r); };
25 std::random_access_iterator<I> &&
requires(I &iter) {
26 dr::ranges::rank(iter);
27 { dr::ranges::local(iter) } -> std::contiguous_iterator;
32 dr::ranges::segments(iter);
38 { dr::ranges::local(r) } -> rng::contiguous_range;
45 { dr::ranges::segments(r) } -> rng::random_access_range;
48 rng::range_value_t<decltype(dr::ranges::segments(std::declval<R>()))>>;
50template <
typename Iter>
53 requires(Iter &iter) {
54 { dr::ranges::segments(iter) } -> rng::random_access_range;
57 std::declval<Iter>()))>>;
Definition: concepts.hpp:51
Definition: concepts.hpp:42
Definition: concepts.hpp:31
Definition: concepts.hpp:20
Definition: concepts.hpp:24
Definition: concepts.hpp:36
Definition: concepts.hpp:12
Definition: concepts.hpp:16