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); }
60 constexpr auto operator[](SSizeType n)
const ->
decltype(
auto)
79 :
constexpr friend auto operator+(Self
const& self, SSizeType n) -> Self
87 constexpr friend auto operator+(SSizeType n, Self
const& self) -> Self
95 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:109
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:73
constexpr auto operator--(int) -> Self requires(concepts::DerivedFrom< Category, BidirectionalIteratorTag >)
Definition iterator_base.h:52
constexpr friend auto operator+(SSizeType n, Self const &self) -> Self requires(concepts::DerivedFrom< Category, RandomAccessIteratorTag >)
Definition iterator_base.h:87
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:60
constexpr auto operator--() -> Self &requires(concepts::DerivedFrom< Category, BidirectionalIteratorTag >)
Definition iterator_base.h:47
constexpr void operator++(int)
Definition iterator_base.h:37
friend auto tag_invoke(types::Tag< iterator_value >, InPlaceType< Self >) -> InPlaceType< ValueType >
Definition iterator_base.h:106
IteratorBase(IteratorBase const &)=default
constexpr friend auto operator-(Self const &self, SSizeType n) -> Self requires(concepts::DerivedFrom< Category, RandomAccessIteratorTag >)
Definition iterator_base.h:95
constexpr auto operator+=(SSizeType n) -> Self &requires(concepts::DerivedFrom< Category, RandomAccessIteratorTag >)
Definition iterator_base.h:68
friend auto tag_invoke(types::Tag< iterator_ssize_type >, InPlaceType< Self >) -> SSizeType
Definition iterator_base.h:103
constexpr auto operator++() -> Self &
Definition iterator_base.h:33
IteratorBase(IteratorBase &&)=default
auto operator=(IteratorBase &&) -> IteratorBase &=default
constexpr auto operator++(int) -> Self requires(concepts::DerivedFrom< Category, ForwardIteratorTag >)
Definition iterator_base.h:39
constexpr friend auto operator+(Self const &self, SSizeType n) -> Self requires(concepts::DerivedFrom< Category, RandomAccessIteratorTag >)
Definition iterator_base.h:79
Definition in_place_type.h:5