Public Types | |
using | iterator = I |
using | sentinel = S |
using | size_type = detail::iter_size_t< I > |
Public Member Functions | |
constexpr subrange & | advance (iter_difference_t< I > n) |
constexpr I | begin () const noexcept(std::is_nothrow_copy_constructible< I >::value) |
constexpr bool | empty () const |
constexpr S | end () const noexcept(std::is_nothrow_copy_constructible< S >::value) |
constexpr subrange | next (iter_difference_t< I > n=1) const |
template<typename PairLike > requires (!same_as<PairLike, subrange>) && detail::pair_like_convertible_from_<PairLike, I const &, S const &> | |
constexpr | operator PairLike () const |
constexpr auto | prev (iter_difference_t< I > n=1) const -> subrange |
constexpr auto | size () const -> size_type |
template<typename I2 > requires detail::convertible_to_not_slicing_<I2, I> && (!detail::store_size_<K, S, I>()) | |
constexpr | subrange (I2 &&i, S s) |
template<typename I2 > requires detail::convertible_to_not_slicing_<I2, I> && (detail::store_size_<K, S, I>()) | |
constexpr | subrange (I2 &&i, S s, size_type n) |
template<typename I2 > requires detail::convertible_to_not_slicing_<I2, I> && sized_sentinel_for<S, I> | |
constexpr | subrange (I2 &&i, S s, size_type n) |
template<typename R > requires (!same_as<detail::decay_t<R>, subrange>) && detail::range_convertible_to_<R, I, S> && (!detail::store_size_<K, S, I>()) | |
constexpr | subrange (R &&r) |
template<typename R > requires (!same_as<detail::decay_t<R>, subrange>) && detail::range_convertible_to_<R, I, S> && (detail::store_size_<K, S, I>()) && sized_range<R> | |
constexpr | subrange (R &&r) |
template<typename R > requires (K == subrange_kind::sized) && detail::range_convertible_to_<R, I, S> | |
constexpr | subrange (R &&r, size_type n) |
Public Member Functions inherited from ranges::view_interface< subrange< I, S, K >, same_as< S, unreachable_sentinel_t > ? infinite :K==subrange_kind::sized ? finite :unknown > | |
constexpr auto | empty () const noexcept -> bool |
Test whether a range can be empty: | |
&&!detail ::has_fixed_size_< Cardinality > &&forward_range< D< True > const > constexpr bool | empty () const noexcept(noexcept(bool(ranges::begin(std::declval< D< True > const & >())==ranges::end(std::declval< D< True > const & >())))) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
&&Cardinality< 0) &&(Cardinality !=infinite) &&(!forward_range< D< True > >) &&sized_range< D< True > > constexpr bool empty() noexcept(noexcept(bool(ranges::size(std::declval< D< True > & >())==0))) { return ranges::size(derived())==0;} template< bool True=true > &&Cardinality< 0) &&(Cardinality !=infinite) &&(!forward_range< D< True > const >) &&sized_range< D< True > const > constexpr bool empty() const noexcept(noexcept(bool(ranges::size(std::declval< D< True > const & >())==0))) { return ranges::size(derived())==0;} template< bool True=true > &&!detail ::has_fixed_size_< Cardinality > &&forward_range< D< True > > constexpr bool | empty () noexcept(noexcept(bool(ranges::begin(std::declval< D< True > & >())==ranges::end(std::declval< D< True > & >())))) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
&&detail::can_empty_< D< True > const > constexpr | operator bool () const noexcept(noexcept(ranges::empty(std::declval< D< True > const & >()))) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
&&detail::can_empty_< D< True > > constexpr | operator bool () noexcept(noexcept(ranges::empty(std::declval< D< True > & >()))) |
view_interface & | operator= (view_interface &&)=default |
view_interface & | operator= (view_interface const &)=default |
view_interface (view_interface &&)=default | |
view_interface (view_interface const &)=default | |
Additional Inherited Members | |
Protected Types inherited from ranges::view_interface< subrange< I, S, K >, same_as< S, unreachable_sentinel_t > ? infinite :K==subrange_kind::sized ? finite :unknown > | |
using | D = meta::invoke< detail::dependent_< B >, subrange< I, S, K > > |
Protected Member Functions inherited from ranges::view_interface< subrange< I, S, K >, same_as< S, unreachable_sentinel_t > ? infinite :K==subrange_kind::sized ? finite :unknown > | |
constexpr subrange< I, S, K > const & | derived () const noexcept |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
constexpr subrange< I, S, K > & | derived () noexcept |