|
template<typename Rng >
requires (!same_as<detail::decay_t<Rng>, any_view>) && input_range<Rng> && detail::any_compatible_range<Rng, Ref> |
| any_view (Rng &&rng) |
|
auto | size () -> std::size_t |
|
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...
|
|
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.
|
|
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...
|
|
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.
|
|
constexpr auto | empty () const noexcept -> bool |
| Test whether a range can be empty:
|
|
&&!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.
|
|
&&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.
|
|
&&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.
|
|
&&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 |
|
|
using | D = meta::invoke< detail::dependent_< B >, any_view< Ref, Cat, void > > |
|
constexpr view_as_cursor | begin_cursor () const |
|
constexpr default_sentinel_t | end_cursor () const |
|
constexpr any_view< Ref, Cat, void > 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 any_view< Ref, Cat, void > & | derived () noexcept |
|
friend | range_access |
|