|
| 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)(requires detail |
|
| template (typename I2)(requires detail |
|
| template (typename I2)(requires detail |
|
| template (typename R)(requires(!same_as< detail |
|
| template (typename R)(requires(!same_as< detail |
|
| template (typename R)(requires(K |
|
constexpr S | subrange (R &&r, size_type n) |
|
| template (typename PairLike)(requires(!same_as< PairLike |
|
subrange AND constexpr detail::pair_like_convertible_from_< PairLike, I const &, S const & > | operator PairLike () const |
|
constexpr I | begin () const noexcept(std::is_nothrow_copy_constructible< I >::value) |
|
constexpr S | end () const noexcept(std::is_nothrow_copy_constructible< S >::value) |
|
constexpr bool | empty () const |
|
constexpr CPP_member auto | size () const -> CPP_ret(size_type)(requires(K==subrange_kind::sized)) |
|
constexpr RANGES_NODISCARD subrange | next (iter_difference_t< I > n=1) const |
|
CPP_member constexpr RANGES_NODISCARD auto | prev (iter_difference_t< I > n=1) const -> CPP_ret(subrange)(requires bidirectional_iterator< I >) |
|
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 |
|
constexpr CPP_member auto | empty () const noexcept -> CPP_ret(bool)(requires(detail::has_fixed_size_< Cardinality >)) |
| Test whether a range can be empty:
|
|