Template Class IndirectIterator

Class Documentation

template<std::random_access_iterator I>
class IndirectIterator

the iterator I on pointers read through them, *it being **base, with the category of I (at most random access); the items are constant

Public Types

using iterator_category = std::random_access_iterator_tag
using value_type = std::remove_cvref_t<decltype(**std::declval<I>())>
using difference_type = std::iter_difference_t<I>
using reference = const value_type&
using pointer = const value_type*

Public Functions

IndirectIterator(void) = default
inline explicit IndirectIterator(I i)
inline reference operator*(void) const
inline pointer operator->(void) const
inline reference operator[](difference_type k) const
inline IndirectIterator &operator++(void)
inline IndirectIterator &operator--(void)
inline IndirectIterator operator++(int)
inline IndirectIterator operator--(int)
inline IndirectIterator &operator+=(difference_type k)
inline IndirectIterator &operator-=(difference_type k)
bool operator==(const IndirectIterator &o) const = default
auto operator<=>(const IndirectIterator &o) const = default
inline I base(void) const

the iterator on the pointers

Friends

inline friend IndirectIterator operator+(IndirectIterator a, difference_type k)
inline friend IndirectIterator operator+(difference_type k, IndirectIterator a)
inline friend IndirectIterator operator-(IndirectIterator a, difference_type k)
inline friend difference_type operator-(const IndirectIterator &a, const IndirectIterator &b)