Horizon
Public Types | Public Member Functions | Public Attributes | List of all members
ranges::subrange< I, S, K > Struct Template Reference
Inheritance diagram for ranges::subrange< I, S, K >:
ranges::view_interface< subrange< I, S, K >, same_as< S, unreachable_sentinel_t > ? infinite :K==subrange_kind::sized ? finite :unknown > ranges::basic_view< Cardinality > ranges::view_base

Public Types

using size_type = detail::iter_size_t< I >
 
using iterator = I
 
using sentinel = S
 

Public Member Functions

 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 subrangeadvance (iter_difference_t< I > 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 >
 view_interface (view_interface &&)=default
 
 view_interface (view_interface const &)=default
 
view_interfaceoperator= (view_interface &&)=default
 
view_interfaceoperator= (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:
 

Public Attributes

 I
 

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 > & derived () noexcept
 
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.
 

The documentation for this struct was generated from the following file: