|
| CPP_assert (input_or_output_iterator< I >) |
|
| CPP_assert (sentinel_for< S, I >) |
|
| CPP_assert (K==subrange_kind::sized||!sized_sentinel_for< S, I >) |
|
| CPP_assert (K !=subrange_kind::sized||!same_as< S, unreachable_sentinel_t >) |
|
| template (typename I2)(AND(!detail |
|
| template (typename I2)(AND(detail |
|
| template (typename I2)(AND sized_sentinel_for< S |
|
I constexpr | subrange (I2 &&i, S s, size_type n) |
|
| template (typename R)(AND detail |
|
| template (typename R)(AND detail |
|
| template (typename R)(AND detail |
|
| template (typename PairLike)(AND detail |
|
constexpr S | end () const noexcept(std::is_nothrow_copy_constructible< S >::value) |
|
constexpr bool | empty () const |
|
CPP_member constexpr auto | size () const -> CPP_ret(size_type)() |
|
RANGES_NODISCARD constexpr subrange | next (iter_difference_t< I > n=1) const |
|
CPP_member RANGES_NODISCARD constexpr auto | prev (iter_difference_t< I > n=1) const -> CPP_ret(subrange)() |
|
constexpr subrange & | advance (iter_difference_t< I > n) |
|
| view_interface (view_interface &&)=default |
|
| view_interface (view_interface const &)=default |
|
view_interface & | operator= (view_interface &&)=default |
|
view_interface & | operator= (view_interface const &)=default |
|
CPP_member constexpr auto | empty () const noexcept -> CPP_ret(bool)() |
| Test whether a range can be empty:
|
|