Base Framework
Public Types | Public Member Functions | Protected Attributes | List of all members
InterleavedIterator< TRAITS > Class Template Reference

Iterator of interleaved elements within a sequence. More...

#include <base/iterator/InterleavedIterator.h>

Inherits Iterator< TRAITS >.

Inherited by MatrixRowIterator< TRAITS >.

Public Types

typedef Iterator< TRAITS >::Value Value
 
typedef Iterator< TRAITS >::Reference Reference
 
typedef Iterator< TRAITS >::Pointer Pointer
 
typedef Iterator< TRAITS >::Distance Distance
 
typedef Iterator< TRAITS >::Category Category
 
- Public Types inherited from Iterator< TRAITS >
typedef TRAITS::Value Value
 
typedef TRAITS::Distance Distance
 
typedef TRAITS::Reference Reference
 
typedef TRAITS::Pointer Pointer
 
typedef TRAITS::Category Category
 

Public Member Functions

 InterleavedIterator (Pointer element, MemoryDiff step)
 
InterleavedIteratoroperator++ ()
 
InterleavedIterator operator++ (int)
 
InterleavedIteratoroperator-- ()
 
InterleavedIterator operator-- (int)
 
InterleavedIteratoroperator+= (Distance distance)
 
InterleavedIteratoroperator-= (Distance distance)
 
bool operator!= (const InterleavedIterator &compare) const
 
bool operator< (const InterleavedIterator &compare) const
 
Reference operator* () const
 
Pointer operator-> () const
 
Pointer getValue () const
 
Reference operator[] (MemoryDiff index) const
 

Protected Attributes

Pointer element
 
MemoryDiff step = 0
 

Detailed Description

template<class TRAITS>
class InterleavedIterator< TRAITS >

Iterator of interleaved elements within a sequence.

Iterator used to traverse interleaved elements within a sequence.

Constructor & Destructor Documentation

◆ InterleavedIterator()

template<class TRAITS >
InterleavedIterator< TRAITS >::InterleavedIterator ( Pointer  element,
MemoryDiff  step 
)
inline

Initializes iterator.

Parameters
elementThe initial value of the iterator.
stepThe number of elements to skip over per element.

Member Function Documentation

◆ getValue()

template<class TRAITS >
Pointer InterleavedIterator< TRAITS >::getValue ( ) const
inline

Returns the pointer value of the iterator.

◆ operator!=()

template<class TRAITS >
bool InterleavedIterator< TRAITS >::operator!= ( const InterleavedIterator< TRAITS > &  compare) const
inline

Returns true if the iterators are equal.

◆ operator*()

template<class TRAITS >
Reference InterleavedIterator< TRAITS >::operator* ( ) const
inline

Access the element.

◆ operator++() [1/2]

template<class TRAITS >
InterleavedIterator& InterleavedIterator< TRAITS >::operator++ ( )
inline

Prefix increment.

◆ operator++() [2/2]

template<class TRAITS >
InterleavedIterator InterleavedIterator< TRAITS >::operator++ ( int  )
inline

Postfix decrement.

◆ operator+=()

template<class TRAITS >
InterleavedIterator& InterleavedIterator< TRAITS >::operator+= ( Distance  distance)
inline

Move the specified distance forward.

◆ operator--() [1/2]

template<class TRAITS >
InterleavedIterator& InterleavedIterator< TRAITS >::operator-- ( )
inline

Prefix decrement.

◆ operator--() [2/2]

template<class TRAITS >
InterleavedIterator InterleavedIterator< TRAITS >::operator-- ( int  )
inline

Postfix decrement.

◆ operator-=()

template<class TRAITS >
InterleavedIterator& InterleavedIterator< TRAITS >::operator-= ( Distance  distance)
inline

Move the specified distance backwards.

◆ operator->()

template<class TRAITS >
Pointer InterleavedIterator< TRAITS >::operator-> ( ) const
inline

Access the element.

◆ operator<()

template<class TRAITS >
bool InterleavedIterator< TRAITS >::operator< ( const InterleavedIterator< TRAITS > &  compare) const
inline

Returns true if this iterator is less than the specified iterator.

◆ operator[]()

template<class TRAITS >
Reference InterleavedIterator< TRAITS >::operator[] ( MemoryDiff  index) const
inline

Returns the element at the specified index from this element.

Member Data Documentation

◆ element

template<class TRAITS >
Pointer InterleavedIterator< TRAITS >::element
protected

The position of the iterator.

◆ step

template<class TRAITS >
MemoryDiff InterleavedIterator< TRAITS >::step = 0
protected

The fixed distance between "consecutive" elements.