16template<
typename Iter>
18 :
public IteratorBase<ConstIteratorImpl<Iter>, meta::IteratorCategory<Iter>, meta::IteratorValue<Iter>,
19 meta::IteratorSSizeType<Iter>> {
31 template<concepts::ConvertibleTo<Iter> Jt>
34 template<concepts::ConvertibleTo<Iter> T>
37 constexpr auto base() const& -> Iter const& {
return m_base; }
38 constexpr auto base() && -> Iter {
return util::move(m_base); }
40 constexpr auto operator*() const ->
meta::IteratorConstReference<Iter> {
return *m_base; }
61 constexpr friend auto operator==(Self
const& a, Self
const& b) ->
bool
64 return a.base() == b.base();
67 template<
typename Sent>
69 constexpr friend auto operator==(Self
const& a, Sent
const& b) ->
bool {
73 constexpr friend auto operator<=>(Self
const& a, Self
const& b)
76 return a.
base() <=> b.base();
79 template<
typename Other>
82 constexpr friend auto operator<=>(Self
const& a, Other
const& b) {
83 return a.
base() <=> b;
86 constexpr friend auto operator-(Self
const& a, Self
const& b) -> SSizeType
89 return a.
base() - b.base();
92 template<
typename Sent>
94 constexpr auto operator-(Sent
const& b) -> SSizeType {
95 return this->
base() - b;
98 template<
typename Sent>
100 constexpr friend auto operator-(Sent
const& a, Self
const& b) -> SSizeType {
108template<
typename T, di::concepts::CommonWith<T> U>
113template<
typename T, di::concepts::CommonWith<T> U>
118template<
typename T, di::concepts::CommonWith<T> U>
Definition const_iterator_impl.h:19
constexpr friend auto operator-(Self const &a, Self const &b) -> SSizeType requires(concepts::RandomAccessIterator< Iter >)
Definition const_iterator_impl.h:86
constexpr auto base() const &-> Iter const &
Definition const_iterator_impl.h:37
constexpr void advance_n(SSizeType n)
Definition const_iterator_impl.h:54
constexpr ConstIteratorImpl(Iter iter)
Definition const_iterator_impl.h:29
constexpr void back_one()
Definition const_iterator_impl.h:48
constexpr friend auto operator<=>(Self const &a, Self const &b)
Definition const_iterator_impl.h:73
constexpr void advance_one()
Definition const_iterator_impl.h:45
ConstIteratorImpl()=default
constexpr auto operator->() const -> Value const *requires(concepts::ContiguousIterator< Iter >)
Definition const_iterator_impl.h:42
constexpr friend auto operator==(Self const &a, Self const &b) -> bool requires(concepts::SentinelFor< Iter, Iter >)
Definition const_iterator_impl.h:61
constexpr auto base() &&-> Iter
Definition const_iterator_impl.h:38
constexpr auto operator*() const -> meta::IteratorConstReference< Iter >
Definition const_iterator_impl.h:40
constexpr ConstIteratorImpl(ConstIteratorImpl< Jt > other)
Definition const_iterator_impl.h:32
constexpr ConstIteratorImpl(T &&other)
Definition const_iterator_impl.h:35
Definition bidirectional_iterator.h:8
Definition operations.h:27
Definition random_access_iterator.h:12
Definition sentinel_for.h:9
Definition sized_sentinel_for.h:9
Definition any_storable.h:9
constexpr auto move
Definition move.h:38
constexpr auto to_address
Definition to_address.h:22
Definition zstring_parser.h:9