dune-istl 2.12-git
Loading...
Searching...
No Matches
Dune::Experimental::SparseIndexRanges< I, A >::Iterator Class Reference

Random-access iterator over the index sets of a SparseIndexRanges. More...

#include <dune/istl/experimental/sparseindexranges.hh>

Inheritance diagram for Dune::Experimental::SparseIndexRanges< I, A >::Iterator:
Inheritance graph

Public Types

using reference = typename Facade::reference
 
using difference_type = typename Facade::difference_type
 
typedef C iterator_category
 
typedef typename std::remove_const< V >::type value_type
 
typedef P pointer
 
typedef value_type Value
 
typedef reference Reference
 
typedef pointer Pointer
 
typedef difference_type DifferenceType
 

Public Member Functions

constexpr Iterator ()=default
 
constexpr reference operator* () const
 
constexpr pointer operator-> () const
 
constexpr decltype(auto) operator++ ()
 
constexpr DerivedIterator operator++ (int)
 
constexpr decltype(auto) operator-- ()
 
constexpr DerivedIterator operator-- (int)
 
constexpr reference operator[] (difference_type n) const
 
constexpr decltype(auto) operator+= (difference_type n)
 
constexpr DerivedIterator operator+ (difference_type n) const
 
constexpr DerivedIterator & operator-= (difference_type n)
 
constexpr DerivedIterator operator- (difference_type n) const
 

Protected Types

typedef It DerivedIterator
 

Protected Member Functions

constexpr const DerivedIterator & derived () const
 
constexpr DerivedIterator & derived ()
 

Detailed Description

template<class I = std::uint_least32_t, class A = std::allocator<I>>
class Dune::Experimental::SparseIndexRanges< I, A >::Iterator

Random-access iterator over the index sets of a SparseIndexRanges.

Dereferencing yields an IndexRangeView for the current index set. Obtained via SparseIndexRanges::begin() and SparseIndexRanges::end(). Supports the full random-access iterator interface via Dune::IteratorFacade.

The iterator is invalidated if the underlying SparseIndexRanges is destroyed or moved.

Member Typedef Documentation

◆ difference_type

template<class I = std::uint_least32_t, class A = std::allocator<I>>
using Dune::Experimental::SparseIndexRanges< I, A >::Iterator::difference_type = typename Facade::difference_type

◆ reference

template<class I = std::uint_least32_t, class A = std::allocator<I>>
using Dune::Experimental::SparseIndexRanges< I, A >::Iterator::reference = typename Facade::reference

Constructor & Destructor Documentation

◆ Iterator()

template<class I = std::uint_least32_t, class A = std::allocator<I>>
constexpr Dune::Experimental::SparseIndexRanges< I, A >::Iterator::Iterator ( )
constexprdefault

Member Function Documentation

◆ operator*()

template<class I , class A >
constexpr auto Dune::Experimental::SparseIndexRanges< I, A >::Iterator::operator* ( ) const
constexpr

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