A utility for constructing a view from a (derived) type that implements begin and end cursors. More...
#include <range/v3/view/facade.hpp>
Classes | |
struct | view_as_cursor |
Public Member Functions | |
template<typename D = Derived> requires same_as<D, Derived> | |
constexpr auto | begin () -> detail::facade_iterator_t< D > |
Let d be static_cast<Derived &>(*this) . Let b be std::as_const(d).begin_cursor() if that expression is well-formed; otherwise, let b be d.begin_cursor() . Let B be the type of b . More... | |
template<typename D = Derived> requires same_as<D, Derived> | |
constexpr auto | begin () const -> detail::facade_iterator_t< D const > |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
template<typename D = Derived> requires same_as<D, Derived> | |
constexpr auto | end () -> detail::facade_sentinel_t< D > |
Let d be static_cast<Derived &>(*this) . Let e be std::as_const(d).end_cursor() if that expression is well-formed; otherwise, let e be d.end_cursor() . Let E be the type of e . More... | |
template<typename D = Derived> requires same_as<D, Derived> | |
constexpr auto | end () const -> detail::facade_sentinel_t< D const > |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
Public Member Functions inherited from ranges::view_interface< Derived, Cardinality > | |
constexpr auto | empty () const noexcept -> bool |
Test whether a range can be empty: | |
template<bool True = true> requires True | |
&&!detail ::has_fixed_size_< Cardinality > &&forward_range< D< True > const > 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. | |
template<bool True = true> requires True | |
&&Cardinality< 0) &&(Cardinality !=infinite) &&(!forward_range< D< True > >) &&sized_range< D< True > > constexpr bool empty() noexcept(noexcept(bool(ranges::size(std::declval< D< True > & >())==0))) { return ranges::size(derived())==0;} template< bool True=true > &&Cardinality< 0) &&(Cardinality !=infinite) &&(!forward_range< D< True > const >) &&sized_range< D< True > const > constexpr bool empty() const noexcept(noexcept(bool(ranges::size(std::declval< D< True > const & >())==0))) { return ranges::size(derived())==0;} template< bool True=true > &&!detail ::has_fixed_size_< Cardinality > &&forward_range< D< 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. | |
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 & >()))) |
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 | |
&&detail::can_empty_< D< True > > constexpr | operator bool () noexcept(noexcept(ranges::empty(std::declval< D< True > & >()))) |
view_interface & | operator= (view_interface &&)=default |
view_interface & | operator= (view_interface const &)=default |
view_interface (view_interface &&)=default | |
view_interface (view_interface const &)=default | |
Protected Member Functions | |
constexpr view_as_cursor | begin_cursor () const |
constexpr default_sentinel_t | end_cursor () const |
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 Derived & | derived () noexcept |
Protected Attributes | |
friend | range_access |
Additional Inherited Members | |
Protected Types inherited from ranges::view_interface< Derived, Cardinality > | |
template<bool B> | |
using | D = meta::invoke< detail::dependent_< B >, Derived > |
A utility for constructing a view from a (derived) type that implements begin and end cursors.
Derived | A type that derives from view_facade and implements begin and end cursors. This type is permitted to be incomplete. |
Cardinality | The cardinality of this view: finite , infinite , or unknown . See ranges::cardinality . |
|
constexpr |
Let d
be static_cast<Derived &>(*this)
. Let b
be std::as_const(d).begin_cursor()
if that expression is well-formed; otherwise, let b
be d.begin_cursor()
. Let B
be the type of b
.
ranges::basic_iterator<B>(b)
|
constexpr |
Let d
be static_cast<Derived &>(*this)
. Let e
be std::as_const(d).end_cursor()
if that expression is well-formed; otherwise, let e
be d.end_cursor()
. Let E
be the type of e
.
ranges::basic_iterator<E>(e)
if E
is the same as B
computed above for begin()
; otherwise, return e
.