13template<
typename Self,
typename Category,
typename ValueType,
typename SSizeType>
16 constexpr auto self() -> Self& {
return static_cast<Self&
>(*this); }
17 constexpr auto self()
const -> Self
const& {
return static_cast<Self const&
>(*this); }
63 constexpr auto operator[](SSizeType n)
const ->
decltype(
auto)
86 constexpr friend auto operator+(Self
const& self, SSizeType n) -> Self
94 constexpr friend auto operator+(SSizeType n, Self
const& self) -> Self
102 constexpr friend auto operator-(Self
const& self, SSizeType n) -> Self
Definition operations.h:114
constexpr auto copy
Definition copy.h:30
di::meta::Decay< decltype(T)> Tag
Definition tag_invoke.h:28
auto declval() -> meta::AddRValueReference< T >
Definition declval.h:8
constexpr auto in_place_type
Definition in_place_type.h:12
friend auto tag_invoke(types::Tag< iterator_category >, InPlaceType< Self >) -> Category
Definition iterator_base.h:116
auto operator=(IteratorBase const &) -> IteratorBase &requires(concepts::SameAs< Category, InputIteratorTag >)=delete
constexpr auto operator-=(SSizeType n) -> Self &requires(concepts::DerivedFrom< Category, RandomAccessIteratorTag >)
Definition iterator_base.h:78
constexpr auto operator--(int) -> Self requires(concepts::DerivedFrom< Category, BidirectionalIteratorTag >)
Definition iterator_base.h:55
constexpr friend auto operator+(SSizeType n, Self const &self) -> Self requires(concepts::DerivedFrom< Category, RandomAccessIteratorTag >)
Definition iterator_base.h:94
IteratorBase(IteratorBase const &)=delete
auto operator=(IteratorBase const &) -> IteratorBase &=default
constexpr auto operator[](SSizeType n) const -> decltype(auto) requires(concepts::DerivedFrom< Category, RandomAccessIteratorTag >)
Definition iterator_base.h:63
constexpr auto operator--() -> Self &requires(concepts::DerivedFrom< Category, BidirectionalIteratorTag >)
Definition iterator_base.h:48
constexpr void operator++(int)
Definition iterator_base.h:38
friend auto tag_invoke(types::Tag< iterator_value >, InPlaceType< Self >) -> InPlaceType< ValueType >
Definition iterator_base.h:113
IteratorBase(IteratorBase const &)=default
constexpr friend auto operator-(Self const &self, SSizeType n) -> Self requires(concepts::DerivedFrom< Category, RandomAccessIteratorTag >)
Definition iterator_base.h:102
constexpr auto operator+=(SSizeType n) -> Self &requires(concepts::DerivedFrom< Category, RandomAccessIteratorTag >)
Definition iterator_base.h:71
friend auto tag_invoke(types::Tag< iterator_ssize_type >, InPlaceType< Self >) -> SSizeType
Definition iterator_base.h:110
constexpr auto operator++() -> Self &
Definition iterator_base.h:34
IteratorBase(IteratorBase &&)=default
auto operator=(IteratorBase &&) -> IteratorBase &=default
constexpr auto operator++(int) -> Self requires(concepts::DerivedFrom< Category, ForwardIteratorTag >)
Definition iterator_base.h:40
constexpr friend auto operator+(Self const &self, SSizeType n) -> Self requires(concepts::DerivedFrom< Category, RandomAccessIteratorTag >)
Definition iterator_base.h:86
Definition in_place_type.h:5