Iterator< T > Class Template Reference

CPP API: mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T > Class Template Reference
mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T > Class Template Reference
Collaboration diagram for mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >:

Public Types

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

Public Member Functions

 Iterator (iter_type begin_, size_t di_, size_t dr_, Seq< size_t > const &seq_, difference_type offset=0)
 
reference operator* ()
 
value_type const & operator* () const
 
Iterator operator+ (const int &rhs) const
 
Iteratoroperator++ ()
 
Iterator operator++ (int)
 
Iteratoroperator+= (const int &rhs)
 
Iterator operator- (const int &rhs) const
 
Iteratoroperator-- ()
 
Iterator operator-- (int)
 
Iteratoroperator-= (const int &rhs)
 
pointer operator-> ()
 
Iteratoroperator= (const Iterator &rhs)
 
Iteratoroperator= (size_t rhs)
 
reference operator[] (const difference_type &rhs)
 
value_type const & operator[] (const difference_type &rhs) const
 

Private Member Functions

Slice::difference_type outer_offset (difference_type const &inner) const
 

Private Attributes

iter_type data_begin
 
size_t di
 
size_t dr
 
difference_type inner_offset
 
Seq< size_t > seq
 

Friends

bool operator!= (const Iterator &a, const Iterator &b)
 
bool operator< (const Iterator &a, const Iterator &b)
 
bool operator<= (const Iterator &a, const Iterator &b)
 
bool operator== (const Iterator &a, const Iterator &b)
 
bool operator> (const Iterator &a, const Iterator &b)
 
bool operator>= (const Iterator &a, const Iterator &b)
 

Member Typedef Documentation

◆ difference_type

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
using mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::difference_type = std::ptrdiff_t

◆ iterator_category

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
using mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::iterator_category = std::random_access_iterator_tag

◆ pointer

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
using mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::pointer = value_type*

◆ reference

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
using mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::reference = value_type&

◆ value_type

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
using mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::value_type = T

Constructor & Destructor Documentation

◆ Iterator()

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::Iterator ( iter_type  begin_,
size_t  di_,
size_t  dr_,
Seq< size_t > const &  seq_,
difference_type  offset = 0 
)
inline

Member Function Documentation

◆ operator*() [1/2]

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
reference mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::operator* ( )
inline

◆ operator*() [2/2]

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
value_type const& mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::operator* ( ) const
inline

◆ operator+()

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
Iterator mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::operator+ ( const int &  rhs) const
inline

◆ operator++() [1/2]

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
Iterator& mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::operator++ ( )
inline

◆ operator++() [2/2]

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
Iterator mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::operator++ ( int  )
inline

◆ operator+=()

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
Iterator& mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::operator+= ( const int &  rhs)
inline

◆ operator-()

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
Iterator mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::operator- ( const int &  rhs) const
inline

◆ operator--() [1/2]

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
Iterator& mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::operator-- ( )
inline

◆ operator--() [2/2]

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
Iterator mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::operator-- ( int  )
inline

◆ operator-=()

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
Iterator& mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::operator-= ( const int &  rhs)
inline

◆ operator->()

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
pointer mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::operator-> ( )
inline

◆ operator=() [1/2]

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
Iterator& mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::operator= ( const Iterator< T > &  rhs)
inline

◆ operator=() [2/2]

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
Iterator& mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::operator= ( size_t  rhs)
inline

◆ operator[]() [1/2]

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
reference mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::operator[] ( const difference_type rhs)
inline

◆ operator[]() [2/2]

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
value_type const& mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::operator[] ( const difference_type rhs) const
inline

◆ outer_offset()

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
Slice::difference_type mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::outer_offset ( difference_type const &  inner) const
inlineprivate

Friends And Related Function Documentation

◆ operator!=

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
bool operator!= ( const Iterator< T > &  a,
const Iterator< T > &  b 
)
friend

◆ operator<

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
bool operator< ( const Iterator< T > &  a,
const Iterator< T > &  b 
)
friend

◆ operator<=

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
bool operator<= ( const Iterator< T > &  a,
const Iterator< T > &  b 
)
friend

◆ operator==

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
bool operator== ( const Iterator< T > &  a,
const Iterator< T > &  b 
)
friend

◆ operator>

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
bool operator> ( const Iterator< T > &  a,
const Iterator< T > &  b 
)
friend

◆ operator>=

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
bool operator>= ( const Iterator< T > &  a,
const Iterator< T > &  b 
)
friend

Member Data Documentation

◆ data_begin

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
iter_type mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::data_begin
private

◆ di

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
size_t mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::di
private

◆ dr

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
size_t mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::dr
private

◆ inner_offset

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
difference_type mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::inner_offset
private

◆ seq

template<class Typ , class... Tags>
template<typename Tag , typename iter_type >
template<typename T >
Seq<size_t> mio::CustomIndexArray< Typ, Tags >::Slice< Tag, iter_type >::Iterator< T >::seq
private