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>
iterator_t< meta::const_if_c< Const, Rng > > begin () const
 
sentinel_t< Rng > end ()
 
template<bool Const = true>
sentinel_t< meta::const_if_c< Const, Rng > > end () const
 
constexpr auto size ()
 
constexpr auto size () const
 
 tail_view (Rng rng)
 
- Public Member Functions inherited from ranges::view_interface< Derived, Cardinality >
template<bool True = true>
constexpr range_reference_t< D< True > > at (range_difference_t< D< True >> n)
 Returns a reference to the element at specified location pos, with bounds checking. More...
 
template<bool True = true>
constexpr range_reference_t< D< True > const > at (range_difference_t< D< True >> n) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
template<bool True = true>
constexpr range_reference_t< D< True > > back ()
 Access the last element in a range: More...
 
template<bool True = true>
constexpr range_reference_t< D< True > const > back () const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
template<bool True = true>
constexpr std::add_pointer_t< range_reference_t< D< True > > > data ()
 Returns a pointer to the block of memory containing the elements of a contiguous range: More...
 
template<bool True = true>
constexpr std::add_pointer_t< range_reference_t< D< True > const > > data () const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
constexpr auto empty () const noexcept -> bool
 Test whether a range can be empty:
 
template<bool True = true>
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. More...
 
template<bool True = true>
constexpr bool empty () const noexcept(noexcept(bool(ranges::size(std::declval< D< True > const & >())==0)))
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
template<bool True = 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. More...
 
template<bool True = true>
constexpr bool empty () noexcept(noexcept(bool(ranges::size(std::declval< D< True > & >())==0)))
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
template<bool True = true>
constexpr range_reference_t< D< True > > front ()
 Access the first element in a range: More...
 
template<bool True = true>
constexpr range_reference_t< D< True > const > front () const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
template<bool True = true>
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. More...
 
template<bool True = true>
constexpr 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>
constexpr auto operator[] (detail::slice_bounds< detail::from_end_of_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. More...
 
template<bool True = true, typename Slice = views::slice_fn>
constexpr auto operator[] (detail::slice_bounds< detail::from_end_of_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. More...
 
template<bool True = true, typename Slice = views::slice_fn>
constexpr auto operator[] (detail::slice_bounds< detail::from_end_of_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. More...
 
template<bool True = true, typename Slice = views::slice_fn>
constexpr auto operator[] (detail::slice_bounds< detail::from_end_of_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. More...
 
template<bool True = true, typename Slice = views::slice_fn>
constexpr auto operator[] (detail::slice_bounds< detail::from_end_of_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. More...
 
template<bool True = true, typename Slice = views::slice_fn>
constexpr auto operator[] (detail::slice_bounds< detail::from_end_of_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. More...
 
template<bool True = true, typename Slice = views::slice_fn>
constexpr 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. More...
 
template<bool True = true, typename Slice = views::slice_fn>
constexpr 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. More...
 
template<bool True = true, typename Slice = views::slice_fn>
constexpr 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. More...
 
template<bool True = true, typename Slice = views::slice_fn>
constexpr 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. More...
 
template<bool True = true, typename Slice = views::slice_fn>
constexpr 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. More...
 
template<bool True = true, typename Slice = views::slice_fn>
constexpr 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. More...
 
template<bool True = true, typename Slice = views::slice_fn>
constexpr auto operator[] (detail::slice_bounds< range_difference_t< D< True >>> offs) &
 Python-ic slicing: More...
 
template<bool True = true, typename Slice = views::slice_fn>
constexpr 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. More...
 
template<bool True = true, typename Slice = views::slice_fn>
constexpr 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. More...
 
template<bool True = true>
constexpr range_reference_t< D< True > > operator[] (range_difference_t< D< True >> n)
 Simple indexing: More...
 
template<bool True = true>
constexpr range_reference_t< D< True > const > operator[] (range_difference_t< D< True >> n) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
template<bool True = true>
constexpr detail::iter_size_t< iterator_t< D< True > > > size ()
 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. More...
 
template<bool True = true>
constexpr detail::iter_size_t< iterator_t< D< True > > > size () const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
 view_interface (view_interface &&)=default
 
 view_interface (view_interface const &)=default
 

Additional Inherited Members

- Static Public Member Functions inherited from ranges::view_interface< Derived, Cardinality >
template<bool True = true, int = 42>
static constexpr std::size_t size () noexcept
 If the size of the range is known at compile-time and finite, return it. More...
 
- 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 Derived 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 Derivedderived () noexcept
 

Member Function Documentation

◆ begin()

template<typename Rng >
template<bool Const = true>
iterator_t<meta::const_if_c<Const, Rng> > ranges::tail_view< Rng >::begin ( ) const
Precondition
requires Const && range<meta::const_if_c<Const, Rng>>

◆ end()

template<typename Rng >
template<bool Const = true>
sentinel_t<meta::const_if_c<Const, Rng> > ranges::tail_view< Rng >::end ( ) const
Precondition
requires Const && range<meta::const_if_c<Const, Rng>>

◆ size()

template<typename Rng >
constexpr auto ranges::tail_view< Rng >::size ( )
constexpr
Precondition
requires (bool(sized_range<Rng>))

References ranges::end.