Loading...
Searching...
No Matches
ranges::subrange< I, S, K > Struct Template Reference
Views
Inheritance diagram for ranges::subrange< I, S, K >:

## 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