|
constexpr | View ()=default |
|
constexpr | View (concepts::ConvertibleToNonSlicing< Iter > auto iterator, Sent sentinel) |
|
constexpr | View (concepts::ConvertibleToNonSlicing< Iter > auto iterator, Sent sentinel, SizeType size) |
|
template<typename Cont>
requires (!concepts::DecaySameAs<Cont, View> && concepts::BorrowedContainer<Cont> && concepts::ConvertibleToNonSlicing<meta::ContainerIterator<Cont>, Iter> && concepts::ConvertibleTo<meta::ContainerSentinel<Cont>, Sent>) (!store_size || concepts::SizedContainer<Cont>) |
constexpr | View (Cont &&container) |
|
template<concepts::BorrowedContainer Cont>
requires (concepts::ConvertibleToNonSlicing<meta::ContainerIterator<Cont>, Iter> && concepts::ConvertibleTo<meta::ContainerSentinel<Cont>, Sent>) (is_sized) |
constexpr | View (Cont &&container, SizeType size) |
|
constexpr auto | begin () const -> Iter requires(concepts::Copyable< Iter >) |
|
constexpr auto | begin () -> Iter requires(!concepts::Copyable< Iter >) |
|
constexpr auto | end () const -> Sent |
|
constexpr auto | empty () const -> bool |
|
constexpr auto | size () const -> SizeType requires(is_sized) |
|
constexpr auto | advance (SSizeType n) -> View & |
|
constexpr auto | prev (SSizeType n=1) const -> View requires(concepts::BidirectionalIterator< Iter >) |
|
constexpr auto | next (SSizeType n=1) const &-> View requires(concepts::ForwardIterator< Iter >) |
|
constexpr auto | next (SSizeType n=1) &&-> View |
|
constexpr auto | empty () -> bool requires(concepts::SizedContainer< Self >||concepts::ForwardContainer< Self >) |
|
constexpr auto | empty () const -> bool requires(concepts::SizedContainer< Self const >||concepts::ForwardContainer< Self const >) |
|
constexpr | operator bool () |
|
constexpr | operator bool () const |
|
constexpr auto | cbegin () |
|
constexpr auto | cbegin () const |
|
constexpr auto | cend () |
|
constexpr auto | cend () const |
|
constexpr auto | data () |
|
constexpr auto | data () const |
|
constexpr auto | size () |
|
constexpr auto | size () const |
|
constexpr auto | front () |
|
constexpr auto | front () const |
|
constexpr auto | back () |
|
constexpr auto | back () const |
|
template<concepts::RandomAccessContainer Cont = Self> |
constexpr auto | operator[] (meta::ContainerSSizeType< Cont > n) -> decltype(auto) |
|
template<concepts::RandomAccessContainer Cont = Self const> |
constexpr auto | operator[] (meta::ContainerSSizeType< Cont > n) const -> decltype(auto) |
|
template<concepts::RandomAccessContainer Cont = Self> |
constexpr auto | at (meta::ContainerSSizeType< Cont > n) -> Optional< meta::ContainerReference< Cont > > |
|
template<concepts::RandomAccessContainer Cont = Self const> |
constexpr auto | at (meta::ContainerSSizeType< Cont > n) const -> Optional< meta::ContainerReference< Cont > > |
|
template<types::size_t index>
requires (requires(Self& self) { util::get<index>(self); }) |
constexpr auto | get () &-> decltype(auto) |
|
template<types::size_t index>
requires (requires(Self const& self) { util::get<index>(self); }) |
constexpr auto | get () const &-> decltype(auto) |
|
template<types::size_t index>
requires (requires(Self&& self) { util::get<index>(util::move(self)); }) |
constexpr auto | get () &&-> decltype(auto) |
|
template<types::size_t index>
requires (requires(Self const&& self) { util::get<index>(util::move(self)); }) |
constexpr auto | get () const &&-> decltype(auto) |
|
template<typename T>
requires (requires(Self& self) { util::get<T>(self); }) |
constexpr auto | get () &-> decltype(auto) |
|
template<typename T>
requires (requires(Self const& self) { util::get<T>(self); }) |
constexpr auto | get () const &-> decltype(auto) |
|
template<typename T>
requires (requires(Self&& self) { util::get<T>(util::move(self)); }) |
constexpr auto | get () &&-> decltype(auto) |
|
template<typename T>
requires (requires(Self const&& self) { util::get<T>(util::move(self)); }) |
constexpr auto | get () const &&-> decltype(auto) |
|
|
constexpr friend auto | tag_invoke (types::Tag< vocab::tuple_element >, types::InPlaceType< View >, Constexpr< 0ZU >) -> InPlaceType< Iter > |
|
constexpr friend auto | tag_invoke (types::Tag< vocab::tuple_element >, types::InPlaceType< View >, Constexpr< 1ZU >) -> InPlaceType< Sent > |
|
constexpr friend auto | tag_invoke (types::Tag< vocab::tuple_element >, types::InPlaceType< View const >, Constexpr< 0ZU >) -> InPlaceType< Iter const > |
|
constexpr friend auto | tag_invoke (types::Tag< vocab::tuple_element >, types::InPlaceType< View const >, Constexpr< 1ZU >) -> InPlaceType< Sent const > |
|
constexpr friend auto | tag_invoke (types::Tag< vocab::tuple_size >, types::InPlaceType< View >) -> types::size_t |
|
template<concepts::DecaySameAs< View > Self> |
constexpr friend auto | tag_invoke (types::Tag< util::get_in_place >, Constexpr< 0ZU >, Self &&self) -> meta::Like< Self, Iter > |
|
template<concepts::DecaySameAs< View > Self> |
constexpr friend auto | tag_invoke (types::Tag< util::get_in_place >, Constexpr< 1ZU >, Self &&self) -> meta::Like< Self, Sent > |
|
template<concepts::DecaySameAs< View > Self, typename T>
requires (!concepts::SameAs<Iter, Sent> && (concepts::SameAs<T, Iter> || concepts::SameAs<T, Sent>) ) |
constexpr friend auto | tag_invoke (types::Tag< util::get_in_place >, types::InPlaceType< T >, Self &&self) -> decltype(auto) |
|