Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::ArrayIterator< Iterator_ > Class Template Reference

Iterator over Arccore array classes. More...

#include </__w/arcaneframework.github.io/arcaneframework.github.io/framework/arccore/src/base/arccore/base/ArrayIterator.h>

Collaboration diagram for Arcane::ArrayIterator< Iterator_ >:

Public Types

typedef std::random_access_iterator_tag iterator_category
typedef TraitsType_::value_type value_type
typedef TraitsType_::difference_type difference_type
typedef TraitsType_::reference reference
typedef TraitsType_::pointer pointer

Public Member Functions

constexpr __host__ __device__ ArrayIterator (const Iterator_ &i) ARCCORE_NOEXCEPT
template<typename X, typename = Iterator_enable_if_t<std::is_same<X, value_type*>::value>>
constexpr __host__ __device__ ArrayIterator (const ArrayIterator< X > &iter) ARCCORE_NOEXCEPT
constexpr __host__ __device__ reference operator* () const ARCCORE_NOEXCEPT
constexpr __host__ __device__ pointer operator-> () const ARCCORE_NOEXCEPT
constexpr __host__ __device__ ArrayIterator & operator++ () ARCCORE_NOEXCEPT
constexpr __host__ __device__ ArrayIterator operator++ (int) ARCCORE_NOEXCEPT
constexpr __host__ __device__ ArrayIterator & operator-- () ARCCORE_NOEXCEPT
constexpr __host__ __device__ ArrayIterator operator-- (int) ARCCORE_NOEXCEPT
constexpr __host__ __device__ reference operator[] (difference_type n) const ARCCORE_NOEXCEPT
constexpr __host__ __device__ ArrayIterator & operator+= (difference_type n) ARCCORE_NOEXCEPT
constexpr __host__ __device__ ArrayIterator operator+ (difference_type n) const ARCCORE_NOEXCEPT
constexpr __host__ __device__ ArrayIterator & operator-= (difference_type n) ARCCORE_NOEXCEPT
constexpr __host__ __device__ ArrayIterator operator- (difference_type n) const ARCCORE_NOEXCEPT
constexpr __host__ __device__ const Iterator_ & base () const ARCCORE_NOEXCEPT

Protected Types

using TraitsType_ = std::iterator_traits<Iterator_>

Protected Attributes

Iterator_ m_ptr

Private Types

template<bool B, class XX = void>
using Iterator_enable_if_t = typename std::enable_if<B, XX>::type

Detailed Description

template<typename Iterator_>
class Arcane::ArrayIterator< Iterator_ >

Iterator over Arccore array classes.

This iterator is used for Array, ArrayView, and ConstArrayView classes.

It is of type std::random_access_iterator_tag.

Definition at line 38 of file arccore/src/base/arccore/base/ArrayIterator.h.

Member Typedef Documentation

◆ difference_type

template<typename Iterator_>
typedef TraitsType_::difference_type Arcane::ArrayIterator< Iterator_ >::difference_type

◆ iterator_category

template<typename Iterator_>
typedef std::random_access_iterator_tag Arcane::ArrayIterator< Iterator_ >::iterator_category

◆ Iterator_enable_if_t

template<typename Iterator_>
template<bool B, class XX = void>
using Arcane::ArrayIterator< Iterator_ >::Iterator_enable_if_t = typename std::enable_if<B, XX>::type
private

◆ pointer

template<typename Iterator_>
typedef TraitsType_::pointer Arcane::ArrayIterator< Iterator_ >::pointer

◆ reference

template<typename Iterator_>
typedef TraitsType_::reference Arcane::ArrayIterator< Iterator_ >::reference

◆ TraitsType_

template<typename Iterator_>
using Arcane::ArrayIterator< Iterator_ >::TraitsType_ = std::iterator_traits<Iterator_>
protected

◆ value_type

template<typename Iterator_>
typedef TraitsType_::value_type Arcane::ArrayIterator< Iterator_ >::value_type

Constructor & Destructor Documentation

◆ ArrayIterator() [1/3]

template<typename Iterator_>
__host__ __device__ Arcane::ArrayIterator< Iterator_ >::ArrayIterator ( )
inlineconstexpr

◆ ArrayIterator() [2/3]

template<typename Iterator_>
__host__ __device__ Arcane::ArrayIterator< Iterator_ >::ArrayIterator ( const Iterator_ & i)
inlineexplicitconstexpr

◆ ArrayIterator() [3/3]

template<typename Iterator_>
template<typename X, typename = Iterator_enable_if_t<std::is_same<X, value_type*>::value>>
__host__ __device__ Arcane::ArrayIterator< Iterator_ >::ArrayIterator ( const ArrayIterator< X > & iter)
inlineconstexpr

Member Function Documentation

◆ base()

template<typename Iterator_>
__host__ __device__ const Iterator_ & Arcane::ArrayIterator< Iterator_ >::base ( ) const
inlineconstexpr

◆ operator*()

template<typename Iterator_>
__host__ __device__ reference Arcane::ArrayIterator< Iterator_ >::operator* ( ) const
inlineconstexpr

◆ operator+()

template<typename Iterator_>
__host__ __device__ ArrayIterator Arcane::ArrayIterator< Iterator_ >::operator+ ( difference_type n) const
inlineconstexpr

◆ operator++() [1/2]

template<typename Iterator_>
__host__ __device__ ArrayIterator & Arcane::ArrayIterator< Iterator_ >::operator++ ( )
inlineconstexpr

◆ operator++() [2/2]

template<typename Iterator_>
__host__ __device__ ArrayIterator Arcane::ArrayIterator< Iterator_ >::operator++ ( int )
inlineconstexpr

◆ operator+=()

template<typename Iterator_>
__host__ __device__ ArrayIterator & Arcane::ArrayIterator< Iterator_ >::operator+= ( difference_type n)
inlineconstexpr

◆ operator-()

template<typename Iterator_>
__host__ __device__ ArrayIterator Arcane::ArrayIterator< Iterator_ >::operator- ( difference_type n) const
inlineconstexpr

◆ operator--() [1/2]

template<typename Iterator_>
__host__ __device__ ArrayIterator & Arcane::ArrayIterator< Iterator_ >::operator-- ( )
inlineconstexpr

◆ operator--() [2/2]

template<typename Iterator_>
__host__ __device__ ArrayIterator Arcane::ArrayIterator< Iterator_ >::operator-- ( int )
inlineconstexpr

◆ operator-=()

template<typename Iterator_>
__host__ __device__ ArrayIterator & Arcane::ArrayIterator< Iterator_ >::operator-= ( difference_type n)
inlineconstexpr

◆ operator->()

template<typename Iterator_>
__host__ __device__ pointer Arcane::ArrayIterator< Iterator_ >::operator-> ( ) const
inlineconstexpr

◆ operator[]()

template<typename Iterator_>
__host__ __device__ reference Arcane::ArrayIterator< Iterator_ >::operator[] ( difference_type n) const
inlineconstexpr

Member Data Documentation

◆ m_ptr

template<typename Iterator_>
Iterator_ Arcane::ArrayIterator< Iterator_ >::m_ptr
protected

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