StaticArrayInterface< TYPE >::IteratorTemplate< COLLECTION_TYPE > Class Template Reference

#include <array.h>

Public Types

using CollectionType = COLLECTION_TYPE
 
using Type = typename InheritConst< TYPE, COLLECTION_TYPE >::type
 

Public Member Functions

 IteratorTemplate (CollectionType &a)
 
 IteratorTemplate (CollectionType &a, Int start)
 
 IteratorTemplate (const IteratorTemplate &src)=default
 
 IteratorTemplate ()
 
 MAXON_OPERATOR_COPY_ASSIGNMENT (IteratorTemplate)
 
 operator IteratorTemplate< const COLLECTION_TYPE > & ()
 
Typeoperator* () const
 
Typeoperator-> () const
 
Bool operator== (const IteratorTemplate &b) const
 
Bool operator< (const IteratorTemplate &b) const
 
 MAXON_OPERATOR_COMPARISON (IteratorTemplate)
 
IteratorTemplateoperator++ ()
 
IteratorTemplate operator++ (int)
 
IteratorTemplateoperator+= (Int i)
 
IteratorTemplateoperator-- ()
 
IteratorTemplate operator-- (int)
 
IteratorTemplateoperator-= (Int i)
 
IteratorTemplate operator+ (Int i) const
 
IteratorTemplate operator- (Int i) const
 
Int operator- (const IteratorTemplate &b) const
 
Int GetIndex () const
 
Int GetBlock (StridedBlock< Type > &block) const
 
Int GetBlock (Block< Type, false > &block) const
 
TypeFetchNonStridedBlock (Int count=1)
 

Private Member Functions

void ValidateBlock (Bool check)
 
Int GetStride () const
 

Private Attributes

CollectionType_array
 
Type_ptr
 
Int _index
 
Int _stride
 
Int _blockStartIndex
 
Int _blockEndIndex
 

Member Typedef Documentation

◆ CollectionType

using CollectionType = COLLECTION_TYPE

◆ Type

using Type = typename InheritConst<TYPE, COLLECTION_TYPE>::type

Constructor & Destructor Documentation

◆ IteratorTemplate() [1/4]

IteratorTemplate ( CollectionType a)
explicit

◆ IteratorTemplate() [2/4]

IteratorTemplate ( CollectionType a,
Int  start 
)
explicit

◆ IteratorTemplate() [3/4]

IteratorTemplate ( const IteratorTemplate< COLLECTION_TYPE > &  src)
default

◆ IteratorTemplate() [4/4]

Member Function Documentation

◆ MAXON_OPERATOR_COPY_ASSIGNMENT()

MAXON_OPERATOR_COPY_ASSIGNMENT ( IteratorTemplate< COLLECTION_TYPE >  )

◆ operator IteratorTemplate< const COLLECTION_TYPE > &()

operator IteratorTemplate< const COLLECTION_TYPE > & ( )

◆ operator*()

Type& operator* ( ) const

◆ operator->()

Type* operator-> ( ) const

◆ operator==()

Bool operator== ( const IteratorTemplate< COLLECTION_TYPE > &  b) const

◆ operator<()

Bool operator< ( const IteratorTemplate< COLLECTION_TYPE > &  b) const

◆ MAXON_OPERATOR_COMPARISON()

MAXON_OPERATOR_COMPARISON ( IteratorTemplate< COLLECTION_TYPE >  )

◆ operator++() [1/2]

IteratorTemplate& operator++ ( )

◆ operator++() [2/2]

IteratorTemplate operator++ ( int  )

◆ operator+=()

IteratorTemplate& operator+= ( Int  i)

◆ operator--() [1/2]

IteratorTemplate& operator-- ( )

◆ operator--() [2/2]

IteratorTemplate operator-- ( int  )

◆ operator-=()

IteratorTemplate& operator-= ( Int  i)

◆ operator+()

IteratorTemplate operator+ ( Int  i) const

◆ operator-() [1/2]

IteratorTemplate operator- ( Int  i) const

◆ operator-() [2/2]

Int operator- ( const IteratorTemplate< COLLECTION_TYPE > &  b) const

◆ GetIndex()

Int GetIndex ( ) const

◆ GetBlock() [1/2]

Int GetBlock ( StridedBlock< Type > &  block) const

◆ GetBlock() [2/2]

Int GetBlock ( Block< Type, false > &  block) const

◆ FetchNonStridedBlock()

Type* FetchNonStridedBlock ( Int  count = 1)

◆ ValidateBlock()

void ValidateBlock ( Bool  check)
private

◆ GetStride()

Int GetStride ( ) const
private

Member Data Documentation

◆ _array

CollectionType* _array
private

◆ _ptr

Type* _ptr
private

◆ _index

Int _index
private

◆ _stride

Int _stride
private

◆ _blockStartIndex

Int _blockStartIndex
private

◆ _blockEndIndex

Int _blockEndIndex
private