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

Public Member Functions

template<bool True = true>
CPP_TEMPLATE_AUX_0 c (requires True &&(!detail::has_fixed_size_< Cardinality >) &&forward_range< D< True > const >) ccconstexpr 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.
 
template<bool True = true>
CPP_TEMPLATE_AUX_0 c (requires True &&(!detail::has_fixed_size_< Cardinality >) &&forward_range< D< True >>) ccconstexpr 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.
 
template<bool True = true>
CPP_TEMPLATE_AUX_0 c (requires True &&(Cardinality< 0) &&(Cardinality !=infinite) &&(!forward_range< D< True > const >) &&sized_range< D< True > const >) ccconstexpr 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.
 
template<bool True = true>
CPP_TEMPLATE_AUX_0 c (requires True &&(Cardinality< 0) &&(Cardinality !=infinite) &&(!forward_range< D< True >>) &&sized_range< D< True >>) ccconstexpr 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.
 
template<bool True = true>
CPP_TEMPLATE_AUX_0 c (requires True &&(Cardinality< 0) &&sized_sentinel_for< sentinel_t< D< True > const >, iterator_t< D< True > const >> &&forward_range< D< True > const >) ccconstexpr 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>
CPP_TEMPLATE_AUX_0 c (requires True &&common_range< D< True > const > &&bidirectional_range< D< True > const >) ccconstexpr 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.
 
template<bool True = true>
CPP_TEMPLATE_AUX_0 c (requires True &&common_range< D< True >> &&bidirectional_range< D< True >>) ccconstexpr range_reference_t< D< True >> back()
 Access the last element in a range:
 
template<bool True = true>
CPP_TEMPLATE_AUX_0 c (requires True &&contiguous_iterator< iterator_t< D< True > const >>) ccconstexpr std
 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>
CPP_TEMPLATE_AUX_0 c (requires True &&contiguous_iterator< iterator_t< D< True >>>) ccconstexpr std
 Returns a pointer to the block of memory containing the elements of a contiguous range:
 
template<bool True = true>
CPP_TEMPLATE_AUX_0 c (requires True &&forward_range< D< True > const >) ccconstexpr 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.
 
template<bool True = true>
CPP_TEMPLATE_AUX_0 c (requires True &&forward_range< D< True >>) ccconstexpr range_reference_t< D< True >> front()
 Access the first element in a range:
 
template<bool True = true, typename Slice = views::slice_fn>
CPP_TEMPLATE_AUX_0 c (requires True &&input_range< D< True > & > &&sized_range< D< True > & >) ccconstexpr 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>
CPP_TEMPLATE_AUX_0 c (requires True &&input_range< D< True > & >) ccconstexpr auto operator[](detail
 Python-ic slicing:
 
template<bool True = true, typename Slice = views::slice_fn>
CPP_TEMPLATE_AUX_0 c (requires True &&input_range< D< True > & >) ccconstexpr 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>
CPP_TEMPLATE_AUX_0 c (requires True &&input_range< D< True > const & > &&sized_range< D< True > const & >) ccconstexpr 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>
CPP_TEMPLATE_AUX_0 c (requires True &&input_range< D< True > const & >) ccconstexpr 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>
CPP_TEMPLATE_AUX_0 c (requires True &&input_range< D< True > const & >) ccconstexpr 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>
CPP_TEMPLATE_AUX_0 c (requires True &&input_range< D< True >> &&sized_range< D< True >>) ccconstexpr 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>
CPP_TEMPLATE_AUX_0 c (requires True &&input_range< D< True >>) ccconstexpr 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>
CPP_TEMPLATE_AUX_0 c (requires True &&input_range< D< True >>) ccconstexpr 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>
CPP_TEMPLATE_AUX_0 c (requires True &&random_access_range< D< True > const > &&sized_range< D< True > const >) ccconstexpr 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.
 
template<bool True = true>
CPP_TEMPLATE_AUX_0 c (requires True &&random_access_range< D< True > const >) ccconstexpr 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.
 
template<bool True = true>
CPP_TEMPLATE_AUX_0 c (requires True &&random_access_range< D< True >> &&sized_range< D< True >>) ccconstexpr 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.
 
template<bool True = true>
CPP_TEMPLATE_AUX_0 c (requires True &&random_access_range< D< True >>) ccconstexpr range_reference_t< D< True >> operator[](range_difference_t< D< True >> n)
 Simple indexing:
 
template<bool True = true, int = 42>
 CPP_TEMPLATE_AUX_0 (requires True &&(Cardinality >=0)) static const expr std
 If the size of the range is known at compile-time and finite, return it.
 
template<bool True = true, typename Slice = views::slice_fn>
 CPP_TEMPLATE_AUX_0 (requires True &&(forward_range< D< True > & >||(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>
 CPP_TEMPLATE_AUX_0 (requires True &&(forward_range< D< True > & >||(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>
 CPP_TEMPLATE_AUX_0 (requires True &&(forward_range< D< True > const & >||(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>
 CPP_TEMPLATE_AUX_0 (requires True &&(forward_range< D< True > const & >||(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>
 CPP_TEMPLATE_AUX_0 (requires True &&(forward_range< D< True >>||(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>
 CPP_TEMPLATE_AUX_0 (requires True &&(forward_range< D< True >>||(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>
 CPP_TEMPLATE_AUX_0 (requires True &&detail::can_empty_< D< True > const >) const expr explicit 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>
 CPP_TEMPLATE_AUX_0 (requires True &&detail::can_empty_< D< True >>) const expr explicit operator bool() noexcept(noexcept(ranges::empty(std::declval< D< True > & >())))
 
constexpr auto empty () const noexcept -> bool requires(detail::has_fixed_size_< Cardinality >)
 Test whether a range can be empty:
 
view_interfaceoperator= (view_interface &&)=default
 
view_interfaceoperator= (view_interface const &)=default
 
 view_interface (view_interface &&)=default
 
 view_interface (view_interface const &)=default
 

Protected Types

template<bool B>
using D = meta::invoke< detail::dependent_< B >, Derived >
 

Protected Member Functions

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
 

Friends

template<bool True = true>
auto operator<< (std::ostream &sout, Derived &&rng) -> std::ostream &requires True &&(!range< D< True > const >) &&input_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>
auto operator<< (std::ostream &sout, Derived &rng) -> std::ostream &requires True &&(!range< D< True > const >) &&input_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>
auto operator<< (std::ostream &sout, Derived const &rng) -> std::ostream &requires True &&input_range< D< True > const >
 Print a range to an ostream.