AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
axom::ArrayIteratorBase< ArrayType, ValueType > Class Template Reference

An iterator type for Array-like types. Each increment operation advances the iterator to the next element in the Array-like. More...

#include </home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/latest/src/axom/core/ArrayIteratorBase.hpp>

Inheritance diagram for axom::ArrayIteratorBase< ArrayType, ValueType >:

Public Types

using difference_type = IndexType
 
using value_type = typename std::remove_cv< ValueType >::type
 
using reference = ValueType &
 
using pointer = ValueType *
 
using iterator_category = std::random_access_iterator_tag
 
using ArrayPointerType = ArrayType *
 
Equality and relational operators
using iterator = IteratorBase< ArrayIteratorBase< ArrayType, ValueType >, IndexType >
 

Public Member Functions

 ArrayIteratorBase ()
 
AXOM_HOST_DEVICE ArrayIteratorBase (IndexType pos, ArrayPointerType arr)
 
AXOM_HOST_DEVICE ValueType & operator* () const
 Returns the current iterator value. More...
 
Iterator advance and distance operators
AXOM_HOST_DEVICE ArrayIteratorBase< ArrayType, ValueType > & operator++ ()
 Pre-increment operator. More...
 
ArrayIteratorBase< ArrayType, ValueType > operator++ (int)
 Post-increment operator. More...
 
ArrayIteratorBase< ArrayType, ValueType > & operator-- ()
 Pre-decrement operator. More...
 
ArrayIteratorBase< ArrayType, ValueType > operator-- (int)
 Post-decrement operator. More...
 
ArrayIteratorBase< ArrayType, ValueType > & operator+= (IndexType n)
 Addition-assignment operator. More...
 
ArrayIteratorBase< ArrayType, ValueType > & operator-= (IndexType n)
 Subtraction-assignment operator. More...
 

Protected Member Functions

AXOM_HOST_DEVICE void advance (IndexType n)
 

Protected Attributes

ArrayPointerType m_arrayPtr {nullptr}
 
IndexType m_pos
 

Detailed Description

template<typename ArrayType, typename ValueType>
class axom::ArrayIteratorBase< ArrayType, ValueType >

An iterator type for Array-like types. Each increment operation advances the iterator to the next element in the Array-like.

Template Parameters
ArrayTypeThe type of the array to iterate over
ValueTypeThe type of the array's elements

Member Typedef Documentation

◆ difference_type

template<typename ArrayType , typename ValueType >
using axom::ArrayIteratorBase< ArrayType, ValueType >::difference_type = IndexType

◆ value_type

template<typename ArrayType , typename ValueType >
using axom::ArrayIteratorBase< ArrayType, ValueType >::value_type = typename std::remove_cv<ValueType>::type

◆ reference

template<typename ArrayType , typename ValueType >
using axom::ArrayIteratorBase< ArrayType, ValueType >::reference = ValueType&

◆ pointer

template<typename ArrayType , typename ValueType >
using axom::ArrayIteratorBase< ArrayType, ValueType >::pointer = ValueType*

◆ iterator_category

template<typename ArrayType , typename ValueType >
using axom::ArrayIteratorBase< ArrayType, ValueType >::iterator_category = std::random_access_iterator_tag

◆ ArrayPointerType

template<typename ArrayType , typename ValueType >
using axom::ArrayIteratorBase< ArrayType, ValueType >::ArrayPointerType = ArrayType*

◆ iterator

using axom::IteratorBase< ArrayIteratorBase< ArrayType, ValueType > , IndexType >::iterator = IteratorBase<ArrayIteratorBase< ArrayType, ValueType > , IndexType >
inherited

Constructor & Destructor Documentation

◆ ArrayIteratorBase() [1/2]

template<typename ArrayType , typename ValueType >
axom::ArrayIteratorBase< ArrayType, ValueType >::ArrayIteratorBase ( )
inline

◆ ArrayIteratorBase() [2/2]

template<typename ArrayType , typename ValueType >
AXOM_HOST_DEVICE axom::ArrayIteratorBase< ArrayType, ValueType >::ArrayIteratorBase ( IndexType  pos,
ArrayPointerType  arr 
)
inline

Member Function Documentation

◆ operator*()

template<typename ArrayType , typename ValueType >
AXOM_HOST_DEVICE ValueType& axom::ArrayIteratorBase< ArrayType, ValueType >::operator* ( ) const
inline

◆ advance()

template<typename ArrayType , typename ValueType >
AXOM_HOST_DEVICE void axom::ArrayIteratorBase< ArrayType, ValueType >::advance ( IndexType  n)
inlineprotected

◆ operator++() [1/2]

AXOM_HOST_DEVICE ArrayIteratorBase< ArrayType, ValueType > & axom::IteratorBase< ArrayIteratorBase< ArrayType, ValueType > , IndexType >::operator++ ( )
inlineinherited

Pre-increment operator.

◆ operator++() [2/2]

ArrayIteratorBase< ArrayType, ValueType > axom::IteratorBase< ArrayIteratorBase< ArrayType, ValueType > , IndexType >::operator++ ( int  )
inlineinherited

Post-increment operator.

◆ operator--() [1/2]

ArrayIteratorBase< ArrayType, ValueType > & axom::IteratorBase< ArrayIteratorBase< ArrayType, ValueType > , IndexType >::operator-- ( )
inlineinherited

Pre-decrement operator.

◆ operator--() [2/2]

ArrayIteratorBase< ArrayType, ValueType > axom::IteratorBase< ArrayIteratorBase< ArrayType, ValueType > , IndexType >::operator-- ( int  )
inlineinherited

Post-decrement operator.

◆ operator+=()

ArrayIteratorBase< ArrayType, ValueType > & axom::IteratorBase< ArrayIteratorBase< ArrayType, ValueType > , IndexType >::operator+= ( IndexType  n)
inlineinherited

Addition-assignment operator.

◆ operator-=()

ArrayIteratorBase< ArrayType, ValueType > & axom::IteratorBase< ArrayIteratorBase< ArrayType, ValueType > , IndexType >::operator-= ( IndexType  n)
inlineinherited

Subtraction-assignment operator.

Member Data Documentation

◆ m_arrayPtr

template<typename ArrayType , typename ValueType >
ArrayPointerType axom::ArrayIteratorBase< ArrayType, ValueType >::m_arrayPtr {nullptr}
protected

◆ m_pos

IndexType axom::IteratorBase< ArrayIteratorBase< ArrayType, ValueType > , IndexType >::m_pos
protectedinherited

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