Template Class CircularIterator

Class Documentation

template<class T, bool Const = true>
class CircularIterator

the random-access iterator on the items of a circular vector of the given capacity whose first item is at the place head

Public Types

using iterator_category = std::random_access_iterator_tag
using value_type = T
using difference_type = std::ptrdiff_t
using reference = Item&
using pointer = Item*

Public Functions

CircularIterator(void) = default
inline CircularIterator(Item *A, std::size_t head, std::size_t capacity, difference_type i)
template<bool K>
inline CircularIterator(const CircularIterator<T, K> &o)

the constant iterator from the mutable one

inline reference operator*(void) const
inline pointer operator->(void) const
inline reference operator[](difference_type k) const
inline CircularIterator &operator++(void)
inline CircularIterator &operator--(void)
inline CircularIterator operator++(int)
inline CircularIterator operator--(int)
inline CircularIterator &operator+=(difference_type k)
inline CircularIterator &operator-=(difference_type k)
inline bool operator==(const CircularIterator &o) const
inline std::strong_ordering operator<=>(const CircularIterator &o) const
inline Item *base(void) const
inline std::size_t head(void) const
inline std::size_t capacity(void) const
inline difference_type index(void) const

Friends

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