dune-common 2.12-git
Loading...
Searching...
No Matches
Dune::IndexedIterator< T * > Class Template Reference

Specialization for pointer types. More...

#include <dune/common/indexediterator.hh>

Inheritance diagram for Dune::IndexedIterator< T * >:
Inheritance graph

Public Types

using reference = typename Facade::reference
 
using difference_type = typename Facade::difference_type
 
using iterator_type = T *
 
using iterator_category = std::random_access_iterator_tag
 
using value_type = typename std::remove_const< T >::type
 
using pointer = T *
 
using Value = value_type
 
using Reference = reference
 
using Pointer = pointer
 
using DifferenceType = difference_type
 

Public Member Functions

constexpr IndexedIterator (T *ptr, difference_type index=0)
 Construct an IndexedIterator from a pointer and an index.
 
constexpr reference operator* () const
 Dereference the pointer.
 
constexpr IndexedIteratoroperator+= (typename Facade::difference_type d)
 Increment the iterator and the index.
 
constexpr difference_type index () const noexcept
 Return the enumeration index.
 
constexpr pointer operator-> () const
 Arrow access to members of referenced value.
 
constexpr decltype(auto) operator++ ()
 Preincrement operator.
 
constexpr DerivedIterator operator++ (int)
 Postincrement operator.
 
constexpr decltype(auto) operator-- ()
 Predecrement operator.
 
constexpr DerivedIterator operator-- (int)
 Postdecrement operator.
 
constexpr reference operator[] (difference_type n) const
 Dereference element with given offset form this iterator.
 
constexpr DerivedIterator operator+ (difference_type n) const
 Create iterator incremented by given value.
 
constexpr DerivedIteratoroperator-= (difference_type n)
 Decrement iterator by given value.
 
constexpr DerivedIterator operator- (difference_type n) const
 Create iterator decremented by given value.
 

Protected Types

using DerivedIterator = IndexedIterator< T * >
 The derived iterator type.
 

Protected Member Functions

constexpr const DerivedIteratorderived () const
 Cast of *this to const DerivedIterator type.
 
constexpr DerivedIteratorderived ()
 Cast of *this to DerivedIterator type.
 

Friends

constexpr difference_type operator- (const IndexedIterator &it1, const IndexedIterator &it2)
 Decrement the iterator and the index.
 
constexpr bool operator== (const IndexedIterator &it1, const IndexedIterator &it2)
 Compare two iterators for equality: compares the underlying ptrs.
 

Detailed Description

template<class T>
class Dune::IndexedIterator< T * >

Specialization for pointer types.

Member Typedef Documentation

◆ DerivedIterator

using Dune::IteratorFacade< IndexedIterator< T * > , std::random_access_iterator_tag , T , T & , T * , std::ptrdiff_t >::DerivedIterator = IndexedIterator< T * >
protectedinherited

The derived iterator type.

◆ difference_type

template<class T >
using Dune::IndexedIterator< T * >::difference_type = typename Facade::difference_type

◆ DifferenceType

using Dune::IteratorFacade< IndexedIterator< T * > , std::random_access_iterator_tag , T , T & , T * , std::ptrdiff_t >::DifferenceType = difference_type
inherited

◆ iterator_category

◆ iterator_type

template<class T >
using Dune::IndexedIterator< T * >::iterator_type = T*

◆ pointer

using Dune::IteratorFacade< IndexedIterator< T * > , std::random_access_iterator_tag , T , T & , T * , std::ptrdiff_t >::pointer = T *
inherited

◆ Pointer

using Dune::IteratorFacade< IndexedIterator< T * > , std::random_access_iterator_tag , T , T & , T * , std::ptrdiff_t >::Pointer = pointer
inherited

◆ reference

template<class T >
using Dune::IndexedIterator< T * >::reference = typename Facade::reference

◆ Reference

using Dune::IteratorFacade< IndexedIterator< T * > , std::random_access_iterator_tag , T , T & , T * , std::ptrdiff_t >::Reference = reference
inherited

◆ Value

using Dune::IteratorFacade< IndexedIterator< T * > , std::random_access_iterator_tag , T , T & , T * , std::ptrdiff_t >::Value = value_type
inherited

◆ value_type

using Dune::IteratorFacade< IndexedIterator< T * > , std::random_access_iterator_tag , T , T & , T * , std::ptrdiff_t >::value_type = typename std::remove_const<T >::type
inherited

Constructor & Destructor Documentation

◆ IndexedIterator()

template<class T >
constexpr Dune::IndexedIterator< T * >::IndexedIterator ( T *  ptr,
difference_type  index = 0 
)
inlineexplicitconstexpr

Construct an IndexedIterator from a pointer and an index.

Member Function Documentation

◆ derived() [1/2]

constexpr DerivedIterator & Dune::IteratorFacade< IndexedIterator< T * > , std::random_access_iterator_tag , T , T & , T * , std::ptrdiff_t >::derived ( )
inlineconstexprprotectedinherited

Cast of *this to DerivedIterator type.

◆ derived() [2/2]

constexpr const DerivedIterator & Dune::IteratorFacade< IndexedIterator< T * > , std::random_access_iterator_tag , T , T & , T * , std::ptrdiff_t >::derived ( ) const
inlineconstexprprotectedinherited

Cast of *this to const DerivedIterator type.

◆ index()

template<class T >
constexpr difference_type Dune::IndexedIterator< T * >::index ( ) const
inlineconstexprnoexcept

Return the enumeration index.

◆ operator*()

template<class T >
constexpr reference Dune::IndexedIterator< T * >::operator* ( ) const
inlineconstexpr

Dereference the pointer.

◆ operator+()

constexpr DerivedIterator Dune::IteratorFacade< IndexedIterator< T * > , std::random_access_iterator_tag , T , T & , T * , std::ptrdiff_t >::operator+ ( difference_type  n) const
inlineconstexprinherited

Create iterator incremented by given value.

Only enabled for random-access iterators.

◆ operator++() [1/2]

constexpr decltype(auto) Dune::IteratorFacade< IndexedIterator< T * > , std::random_access_iterator_tag , T , T & , T * , std::ptrdiff_t >::operator++ ( )
inlineconstexprinherited

Preincrement operator.

◆ operator++() [2/2]

constexpr DerivedIterator Dune::IteratorFacade< IndexedIterator< T * > , std::random_access_iterator_tag , T , T & , T * , std::ptrdiff_t >::operator++ ( int  )
inlineconstexprinherited

Postincrement operator.

◆ operator+=()

template<class T >
constexpr IndexedIterator & Dune::IndexedIterator< T * >::operator+= ( typename Facade::difference_type  d)
inlineconstexpr

Increment the iterator and the index.

◆ operator-()

constexpr DerivedIterator Dune::IteratorFacade< IndexedIterator< T * > , std::random_access_iterator_tag , T , T & , T * , std::ptrdiff_t >::operator- ( difference_type  n) const
inlineconstexprinherited

Create iterator decremented by given value.

Only enabled for random-access iterators.

◆ operator--() [1/2]

constexpr decltype(auto) Dune::IteratorFacade< IndexedIterator< T * > , std::random_access_iterator_tag , T , T & , T * , std::ptrdiff_t >::operator-- ( )
inlineconstexprinherited

Predecrement operator.

Only enabled for bidirectional and random-access iterators.

◆ operator--() [2/2]

constexpr DerivedIterator Dune::IteratorFacade< IndexedIterator< T * > , std::random_access_iterator_tag , T , T & , T * , std::ptrdiff_t >::operator-- ( int  )
inlineconstexprinherited

Postdecrement operator.

Only enabled for bidirectional and random-access iterators.

◆ operator-=()

constexpr DerivedIterator & Dune::IteratorFacade< IndexedIterator< T * > , std::random_access_iterator_tag , T , T & , T * , std::ptrdiff_t >::operator-= ( difference_type  n)
inlineconstexprinherited

Decrement iterator by given value.

Only enabled for random-access iterators.

◆ operator->()

constexpr pointer Dune::IteratorFacade< IndexedIterator< T * > , std::random_access_iterator_tag , T , T & , T * , std::ptrdiff_t >::operator-> ( ) const
inlineconstexprinherited

Arrow access to members of referenced value.

◆ operator[]()

constexpr reference Dune::IteratorFacade< IndexedIterator< T * > , std::random_access_iterator_tag , T , T & , T * , std::ptrdiff_t >::operator[] ( difference_type  n) const
inlineconstexprinherited

Dereference element with given offset form this iterator.

Parameters
nThe distance to the element.
Returns
The element at that distance.

Only enabled for random-access iterators.

Friends And Related Symbol Documentation

◆ operator-

template<class T >
constexpr difference_type operator- ( const IndexedIterator< T * > &  it1,
const IndexedIterator< T * > &  it2 
)
friend

Decrement the iterator and the index.

◆ operator==

template<class T >
constexpr bool operator== ( const IndexedIterator< T * > &  it1,
const IndexedIterator< T * > &  it2 
)
friend

Compare two iterators for equality: compares the underlying ptrs.


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