Range-v3
Range algorithms, views, and actions for the Standard Library
ranges::tail_view< Rng > Struct Template Reference
+ Inheritance diagram for ranges::tail_view< Rng >:

Public Member Functions

Rng base () const
 
iterator_t< Rng > begin ()
 
template<bool Const = true>
auto begin () const -> iterator_t< meta::const_if_c< Const, Rng >> requires Const &&range< meta::const_if_c< Const, Rng >>
 
sentinel_t< Rng > end ()
 
template<bool Const = true>
auto end () const -> sentinel_t< meta::const_if_c< Const, Rng >> requires Const &&range< meta::const_if_c< Const, Rng >>
 
constexpr auto size () const requires(bool(sized_range< Rng const >))
 
constexpr auto size () requires(bool(sized_range< Rng >))
 
 tail_view (Rng rng)
 
- Public Member Functions inherited from ranges::view_interface< Derived, Cardinality >
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 >
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
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 >
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
constexpr auto empty () const noexcept -> bool requires(detail::has_fixed_size_(Cardinality))
 
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 >
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
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 >
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
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 >>
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
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 >>
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
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
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
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
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
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
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
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
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
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
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
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
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
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 >
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<bool True = true>
requires True &&constexpr detail::can_empty_< D< True > const > 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.
 
template<bool True = true>
requires True &&constexpr detail::can_empty_< D< True > > operator bool () noexcept(noexcept(ranges::empty(std::declval< D< True > & >())))
 
view_interfaceoperator= (view_interface &&)=default
 
view_interfaceoperator= (view_interface const &)=default
 
template<bool True = true, typename Slice = views::slice_fn>
requires True &&input_range< D< True > & > &&constexpr sized_range< D< True > & > auto 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.
 
template<bool True = true, typename Slice = views::slice_fn>
requires True &&input_range< D< True > > &&constexpr sized_range< D< True > > auto 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.
 
template<bool True = true, typename Slice = views::slice_fn>
requires True &&input_range< D< True > const & > &&constexpr sized_range< D< True > const & > auto 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.
 
template<bool True = true, typename Slice = views::slice_fn>
requires True &&constexpr input_range< D< True > & > auto 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.
 
template<bool True = true, typename Slice = views::slice_fn>
requires True &&constexpr input_range< D< True > > auto 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.
 
template<bool True = true, typename Slice = views::slice_fn>
requires True &&constexpr input_range< D< True > const & > auto 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.
 
template<bool True = true, typename Slice = views::slice_fn>
requires True &&constexpr input_range< D< True > & > 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 &&constexpr input_range< D< True > > auto 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.
 
template<bool True = true, typename Slice = views::slice_fn>
requires True &&constexpr input_range< D< True > const & > auto 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.
 
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 >
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
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 >
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
 view_interface (view_interface &&)=default
 
 view_interface (view_interface const &)=default
 

Additional Inherited Members

- Protected Types inherited from ranges::view_interface< Derived, Cardinality >
template<bool B>
using D = meta::invoke< detail::dependent_< B >, Derived >
 
- Protected Member Functions inherited from ranges::view_interface< Derived, Cardinality >
constexpr const Derivedderived () 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 Derivedderived () noexcept