Loading [MathJax]/jax/input/TeX/config.js
Iros
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages Concepts
Loading...
Searching...
No Matches
di::container::RingIterator< T > Class Template Reference

#include <di/container/ring/ring_iterator.h>

Inheritance diagram for di::container::RingIterator< T >:
[legend]

Public Member Functions

 RingIterator ()=default
 
constexpr RingIterator (T *current, T *head, T *tail, T *begin, T *end, bool at_end)
 
 RingIterator (RingIterator const &)=default
 
 RingIterator (RingIterator &&)=default
 
constexpr RingIterator (RingIterator< meta::RemoveConst< T > > const &other)
 
auto operator= (RingIterator const &) -> RingIterator &=default
 
auto operator= (RingIterator &&) -> RingIterator &=default
 
constexpr auto unconst_unsafe () const
 
constexpr auto operator* () const -> T &
 
constexpr auto operator-> () const -> T *
 
constexpr void advance_one ()
 
constexpr void back_one ()
 
constexpr void advance_n (isize n)
 
- Public Member Functions inherited from di::container::IteratorBase< RingIterator< T >, RandomAccessIteratorTag, T, isize >
 IteratorBase ()=default
 
 IteratorBase (IteratorBase const &)=default
 
 IteratorBase (IteratorBase &&)=default
 
 IteratorBase (IteratorBase const &)=delete
 
auto operator= (IteratorBase const &) -> IteratorBase &=default
 
auto operator= (IteratorBase &&) -> IteratorBase &=default
 
auto operator= (IteratorBase const &) -> IteratorBase &requires(concepts::SameAs< RandomAccessIteratorTag, InputIteratorTag >)=delete
 
constexpr auto operator++ () -> RingIterator< T > &
 
constexpr void operator++ (int)
 
constexpr auto operator++ (int) -> RingIterator< T > requires(concepts::DerivedFrom< RandomAccessIteratorTag, ForwardIteratorTag >)
 
constexpr auto operator-- () -> RingIterator< T > &requires(concepts::DerivedFrom< RandomAccessIteratorTag, BidirectionalIteratorTag >)
 
constexpr auto operator-- (int) -> RingIterator< T > requires(concepts::DerivedFrom< RandomAccessIteratorTag, BidirectionalIteratorTag >)
 
constexpr auto operator[] (isize n) const -> decltype(auto) requires(concepts::DerivedFrom< RandomAccessIteratorTag, RandomAccessIteratorTag >)
 
constexpr auto operator+= (isize n) -> RingIterator< T > &requires(concepts::DerivedFrom< RandomAccessIteratorTag, RandomAccessIteratorTag >)
 
constexpr auto operator-= (isize n) -> RingIterator< T > &requires(concepts::DerivedFrom< RandomAccessIteratorTag, RandomAccessIteratorTag >)
 

Friends

template<typename>
class RingIterator
 
constexpr friend auto operator== (RingIterator const &a, RingIterator const &b) -> bool
 
constexpr friend auto operator<=> (RingIterator const &a, RingIterator const &b)
 
constexpr friend auto operator- (RingIterator const &a, RingIterator const &b) -> isize
 

Constructor & Destructor Documentation

◆ RingIterator() [1/5]

template<typename T>
di::container::RingIterator< T >::RingIterator ( )
default

◆ RingIterator() [2/5]

template<typename T>
di::container::RingIterator< T >::RingIterator ( T * current,
T * head,
T * tail,
T * begin,
T * end,
bool at_end )
inlineexplicitconstexpr

◆ RingIterator() [3/5]

template<typename T>
di::container::RingIterator< T >::RingIterator ( RingIterator< T > const & )
default

◆ RingIterator() [4/5]

template<typename T>
di::container::RingIterator< T >::RingIterator ( RingIterator< T > && )
default

◆ RingIterator() [5/5]

template<typename T>
di::container::RingIterator< T >::RingIterator ( RingIterator< meta::RemoveConst< T > > const & other)
inlineconstexpr

Member Function Documentation

◆ advance_n()

template<typename T>
void di::container::RingIterator< T >::advance_n ( isize n)
inlineconstexpr

◆ advance_one()

template<typename T>
void di::container::RingIterator< T >::advance_one ( )
inlineconstexpr

◆ back_one()

template<typename T>
void di::container::RingIterator< T >::back_one ( )
inlineconstexpr

◆ operator*()

template<typename T>
auto di::container::RingIterator< T >::operator* ( ) const -> T&
inlineconstexpr

◆ operator->()

template<typename T>
auto di::container::RingIterator< T >::operator-> ( ) const -> T*
inlineconstexpr

◆ operator=() [1/2]

template<typename T>
auto di::container::RingIterator< T >::operator= ( RingIterator< T > && ) -> RingIterator &=default
default

◆ operator=() [2/2]

template<typename T>
auto di::container::RingIterator< T >::operator= ( RingIterator< T > const & ) -> RingIterator &=default
default

◆ unconst_unsafe()

template<typename T>
auto di::container::RingIterator< T >::unconst_unsafe ( ) const
inlineconstexpr

Friends And Related Symbol Documentation

◆ operator-

template<typename T>
friend auto operator- ( RingIterator< T > const & a,
RingIterator< T > const & b ) -> isize
friend

◆ operator<=>

template<typename T>
friend auto operator<=> ( RingIterator< T > const & a,
RingIterator< T > const & b )
friend

◆ operator==

template<typename T>
friend auto operator== ( RingIterator< T > const & a,
RingIterator< T > const & b ) -> bool
friend

◆ RingIterator

template<typename T>
template<typename>
friend class RingIterator
friend

The documentation for this class was generated from the following file: