Friends | |
template<bool True = true> | |
auto | operator<< (std::ostream &sout, Derived const &rng) -> std::ostream &requires True &&input_range< D< True > const > |
Print a range to an ostream. | |
template<bool True = true> | |
auto | operator<< (std::ostream &sout, Derived &rng) -> std::ostream &requires True &&(!range< D< True > const >)&&input_range< D< True >> |
template<bool True = true> | |
auto | operator<< (std::ostream &sout, Derived &&rng) -> std::ostream &requires True &&(!range< D< True > const >)&&input_range< D< True >> |
Public Member Functions | |
template<bool True = true> | |
constexpr auto | at (range_difference_t< D< True >> n) -> range_reference_t< D< True >> requires True &&random_access_range< D< True >> &&sized_range< D< True >> |
Returns a reference to the element at specified location pos, with bounds checking. | |
template<bool True = true> | |
constexpr auto | at (range_difference_t< D< True >> n) const -> range_reference_t< D< True > const > requires True &&random_access_range< D< True > const > &&sized_range< D< True > const > |
template<bool True = true> | |
constexpr auto | back () -> range_reference_t< D< True >> requires True &&common_range< D< True >> &&bidirectional_range< D< True >> |
Access the last element in a range: | |
template<bool True = true> | |
constexpr auto | back () const -> range_reference_t< D< True > const > requires True &&common_range< D< True > const > &&bidirectional_range< D< True > const > |
constexpr auto | empty () const noexcept -> bool requires(detail::has_fixed_size_(Cardinality)) |
template<bool True = true> | |
constexpr auto | empty () noexcept(noexcept(bool(ranges::size(std::declval< D< True > & >())==0))) -> bool requires True &&(Cardinality< 0) &&(Cardinality !=infinite) &&(!forward_range< D< True >>)&&sized_range< D< True >> |
template<bool True = true> | |
constexpr auto | empty () const noexcept(noexcept(bool(ranges::size(std::declval< D< True > const & >())==0))) -> bool requires True &&(Cardinality< 0) &&(Cardinality !=infinite) &&(!forward_range< D< True > const >)&&sized_range< D< True > const > |
template<bool True = true> | |
constexpr auto | empty () noexcept(noexcept(bool(ranges::begin(std::declval< D< True > & >())==ranges::end(std::declval< D< True > & >())))) -> bool requires True &&(!detail::has_fixed_size_(Cardinality)) &&forward_range< D< True >> |
template<bool True = true> | |
constexpr auto | empty () const noexcept(noexcept(bool(ranges::begin(std::declval< D< True > const & >())==ranges::end(std::declval< D< True > const & >())))) -> bool requires True &&(!detail::has_fixed_size_(Cardinality)) &&forward_range< D< True > const > |
template<bool True = true, typename Slice = views::slice_fn> | |
requires True && | forward_range (input_range< D< True > & > &&sized_range< D< True > & >)) const expr auto operator[](detail |
template<bool True = true, typename Slice = views::slice_fn> | |
requires True && | forward_range (input_range< D< True > const & > &&sized_range< D< True > const & >)) const expr auto operator[](detail |
template<bool True = true, typename Slice = views::slice_fn> | |
requires True && | forward_range (input_range< D< True >> &&sized_range< D< True >>)) const expr auto operator[](detail |
template<bool True = true, typename Slice = views::slice_fn> | |
requires True && | forward_range (input_range< D< True > & > &&sized_range< D< True > & >)) const expr auto operator[](detail |
template<bool True = true, typename Slice = views::slice_fn> | |
requires True && | forward_range (input_range< D< True > const & > &&sized_range< D< True > const & >)) const expr auto operator[](detail |
template<bool True = true, typename Slice = views::slice_fn> | |
requires True && | forward_range (input_range< D< True >> &&sized_range< D< True >>)) const expr auto operator[](detail |
template<bool True = true> | |
constexpr auto | front () -> range_reference_t< D< True >> requires True &&forward_range< D< True >> |
Access the first element in a range: | |
template<bool True = true> | |
constexpr auto | front () const -> range_reference_t< D< True > const > requires True &&forward_range< D< True > const > |
template<bool True = true> | |
requires True &&detail::can_empty_< D< True > > constexpr | operator bool () noexcept(noexcept(ranges::empty(std::declval< D< True > & >()))) |
template<bool True = true> | |
requires True &&detail::can_empty_< D< True > const > constexpr | operator bool () const noexcept(noexcept(ranges::empty(std::declval< D< True > const & >()))) |
view_interface & | operator= (view_interface &&)=default |
view_interface & | operator= (view_interface const &)=default |
template<bool True = true> | |
constexpr auto | operator[] (range_difference_t< D< True >> n) -> range_reference_t< D< True >> requires True &&random_access_range< D< True >> |
Simple indexing: | |
template<bool True = true> | |
constexpr auto | operator[] (range_difference_t< D< True >> n) const -> range_reference_t< D< True > const > requires True &&random_access_range< D< True > const > |
template<bool True = true, typename Slice = views::slice_fn> | |
requires True &&input_range< D< True > & > constexpr auto | operator[] (detail::slice_bounds< range_difference_t< D< True >>> offs) & |
Python-ic slicing: | |
template<bool True = true, typename Slice = views::slice_fn> | |
requires True &&input_range< D< True > const & > constexpr auto | operator[] (detail::slice_bounds< range_difference_t< D< True >>> offs) const & |
template<bool True = true, typename Slice = views::slice_fn> | |
requires True &&input_range< D< True > > constexpr auto | operator[] (detail::slice_bounds< range_difference_t< D< True >>> offs) && |
template<bool True = true, typename Slice = views::slice_fn> | |
requires True &&input_range< D< True > & > &&sized_range< D< True > & > constexpr auto | operator[] (detail::slice_bounds< range_difference_t< D< True >>, detail::from_end_of_t< D< True >>> offs) & |
template<bool True = true, typename Slice = views::slice_fn> | |
requires True &&input_range< D< True > const & > &&sized_range< D< True > const & > constexpr auto | operator[] (detail::slice_bounds< range_difference_t< D< True >>, detail::from_end_of_t< D< True >>> offs) const & |
template<bool True = true, typename Slice = views::slice_fn> | |
requires True &&input_range< D< True > > &&sized_range< D< True > > constexpr auto | operator[] (detail::slice_bounds< range_difference_t< D< True >>, detail::from_end_of_t< D< True >>> offs) && |
template<bool True = true, typename Slice = views::slice_fn> | |
requires True &&input_range< D< True > & > constexpr auto | operator[] (detail::slice_bounds< range_difference_t< D< True >>, end_fn > offs) & |
template<bool True = true, typename Slice = views::slice_fn> | |
requires True &&input_range< D< True > const & > constexpr auto | operator[] (detail::slice_bounds< range_difference_t< D< True >>, end_fn > offs) const & |
template<bool True = true, typename Slice = views::slice_fn> | |
requires True &&input_range< D< True > > constexpr auto | operator[] (detail::slice_bounds< range_difference_t< D< True >>, end_fn > offs) && |
template<bool True = true> | |
constexpr auto | size () -> detail::iter_size_t< iterator_t< D< True >>> requires True &&(Cardinality< 0) &&sized_sentinel_for< sentinel_t< D< True >>, iterator_t< D< True >>> &&forward_range< D< True >> |
If sized_sentinel_for<sentinel_t<Derived>, iterator_t<Derived>> is satisfied, and if Derived is a forward_range , then return end - begin cast to an unsigned integer. | |
template<bool True = true> | |
constexpr auto | size () const -> detail::iter_size_t< iterator_t< D< True >>> requires True &&(Cardinality< 0) &&sized_sentinel_for< sentinel_t< D< True > const >, iterator_t< D< True > const >> &&forward_range< D< True > const > |
view_interface (view_interface &&)=default | |
view_interface (view_interface const &)=default | |
Static Public Member Functions | |
template<bool True = true, int = 42> | |
static constexpr auto | size () noexcept -> std::size_t requires True &&(Cardinality >=0) |
If the size of the range is known at compile-time and finite, return it. | |
Protected Types | |
template<bool B> | |
using | D = meta::invoke< detail::dependent_< B >, Derived > |
Protected Member Functions | |
constexpr Derived & | derived () noexcept |
constexpr Derived const & | derived () const noexcept |
|
friend |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
friend |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
constexpr auto ranges::view_interface< Derived, Cardinality >::at | ( | range_difference_t< D< True >> | n | ) | const -> range_reference_t<D<True> const> requires True && random_access_range<D<True> const> && sized_range<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.
constexpr auto ranges::view_interface< Derived, Cardinality >::back | ( | ) | const -> range_reference_t<D<True> const> requires True && common_range<D<True> const> && bidirectional_range<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.
|
protectednoexcept |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
noexcept |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
noexcept |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
noexcept |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
noexcept |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
requires True&& ranges::view_interface< Derived, Cardinality >::forward_range | ( | input_range< D< True > & > &&sized_range< 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.
requires True&& ranges::view_interface< Derived, Cardinality >::forward_range | ( | input_range< D< True > const & > &&sized_range< D< True > const & > | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
requires True&& ranges::view_interface< Derived, Cardinality >::forward_range | ( | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
requires True&& ranges::view_interface< Derived, Cardinality >::forward_range | ( | input_range< D< True > & > &&sized_range< 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.
requires True&& ranges::view_interface< Derived, Cardinality >::forward_range | ( | input_range< D< True > const & > &&sized_range< D< True > const & > | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
requires True&& ranges::view_interface< Derived, Cardinality >::forward_range | ( | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
constexpr auto ranges::view_interface< Derived, Cardinality >::front | ( | ) | const -> range_reference_t<D<True> const> requires True && forward_range<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.
|
explicitnoexcept |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
constexpr auto ranges::view_interface< Derived, Cardinality >::operator[] | ( | range_difference_t< D< True >> | n | ) | const -> range_reference_t<D<True> const> requires True && random_access_range<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.
requires True&& input_range<D<True> const &> constexpr auto ranges::view_interface< Derived, Cardinality >::operator[] | ( | detail::slice_bounds< range_difference_t< D< True >>> | offs | ) | const & |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
requires True&& input_range<D<True> > constexpr auto ranges::view_interface< Derived, Cardinality >::operator[] | ( | detail::slice_bounds< range_difference_t< D< True >>> | offs | ) | && |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
requires True&& input_range<D<True> &>&& sized_range<D<True> &> constexpr auto ranges::view_interface< Derived, Cardinality >::operator[] | ( | detail::slice_bounds< range_difference_t< D< True >>, detail::from_end_of_t< D< True >>> | offs | ) | & |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
requires True&& input_range<D<True> const &>&& sized_range<D<True> const &> constexpr auto ranges::view_interface< Derived, Cardinality >::operator[] | ( | detail::slice_bounds< range_difference_t< D< True >>, detail::from_end_of_t< D< True >>> | offs | ) | const & |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
requires True&& input_range<D<True> >&& sized_range<D<True> > constexpr auto ranges::view_interface< Derived, Cardinality >::operator[] | ( | detail::slice_bounds< range_difference_t< D< True >>, detail::from_end_of_t< D< True >>> | offs | ) | && |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
requires True&& input_range<D<True> &> constexpr auto ranges::view_interface< Derived, Cardinality >::operator[] | ( | detail::slice_bounds< range_difference_t< D< True >>, end_fn > | offs | ) | & |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
requires True&& input_range<D<True> const &> constexpr auto ranges::view_interface< Derived, Cardinality >::operator[] | ( | detail::slice_bounds< range_difference_t< D< True >>, end_fn > | offs | ) | const & |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
requires True&& input_range<D<True> > constexpr auto ranges::view_interface< Derived, Cardinality >::operator[] | ( | detail::slice_bounds< range_difference_t< D< True >>, end_fn > | offs | ) | && |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
constexpr auto ranges::view_interface< Derived, Cardinality >::size | ( | ) | const -> detail::iter_size_t<iterator_t<D<True>>> requires True && (Cardinality < 0) && sized_sentinel_for<sentinel_t<D<True> const>, iterator_t<D<True> const>> && forward_range<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.