STK++ 0.9.13
STK::DenseIteratorBase< Derived > Struct Template Reference

IteratorBase is a base class for all iterators on dense arrays/matrix/vector/expressions. More...

#include <STK_DenseIteratorBase.h>

Inheritance diagram for STK::DenseIteratorBase< Derived >:
Inheritance graph

Public Types

typedef hidden::IteratorTraits< Derived >::Index Index
 
typedef hidden::IteratorTraits< Derived >::iterator_category iterator_category
 
typedef hidden::IteratorTraits< Derived >::value_type value_type
 
typedef hidden::IteratorTraits< Derived >::reference reference
 
typedef hidden::IteratorTraits< Derived >::pointer pointer
 
typedef hidden::IteratorTraits< Derived >::difference_type difference_type
 

Public Member Functions

Index pos () const
 
Derived & operator++ ()
 next position
 
Derived & operator++ (int junk)
 next position
 
Derived & operator-- ()
 previous position
 
Derived & operator-- (int)
 previous position
 
Derived & operator+= (Index n)
 add n positions to current position
 
Derived & operator-= (Index n)
 Subtract n positions to current position.
 
- Public Member Functions inherited from STK::IRecursiveTemplate< Derived >
Derived & asDerived ()
 static cast : return a reference of this with a cast to the derived class.
 
Derived constasDerived () const
 static cast : return a const reference of this with a cast to the derived class.
 
Derived * asPtrDerived ()
 static cast : return a ptr on a Derived of this with a cast to the derived class.
 
Derived constasPtrDerived () const
 static cast : return a ptr on a constant Derived of this with a cast to the derived class.
 
Derived * clone () const
 create a leaf using the copy constructor of the Derived class.
 
Derived * clone (bool isRef) const
 create a leaf using the copy constructor of the Derived class and a flag determining if the clone is a reference or not.
 

Protected Member Functions

 DenseIteratorBase ()
 default constructor
 
 DenseIteratorBase (Index pos)
 constructor with specified position
 
 DenseIteratorBase (DenseIteratorBase const &it)
 copy constructor.
 
 ~DenseIteratorBase ()
 destructor
 
- Protected Member Functions inherited from STK::IRecursiveTemplate< Derived >
 IRecursiveTemplate ()
 constructor.
 
 ~IRecursiveTemplate ()
 destructor.
 

Protected Attributes

Index pos_
 Current position.
 

Friends

DenseIteratorBase operator+ (DenseIteratorBase const &it, int n)
 add n positions to current position
 
DenseIteratorBase operator+ (int n, DenseIteratorBase const &it)
 Subtract n positions to current position.
 
DenseIteratorBase operator- (DenseIteratorBase const &it, int n)
 Subtract n positions to current position.
 
DenseIteratorBase operator- (int n, DenseIteratorBase const &it)
 
bool operator< (DenseIteratorBase const &lhs, DenseIteratorBase const &rhs)
 comparing two iterators (only position is compared !)
 
bool operator> (DenseIteratorBase const &lhs, DenseIteratorBase const &rhs)
 comparing two iterators (only position is compared !)
 
bool operator<= (DenseIteratorBase const &lhs, DenseIteratorBase const &rhs)
 comparing two iterators (only position is compared !)
 
bool operator>= (DenseIteratorBase const &lhs, DenseIteratorBase const &rhs)
 comparing two iterators (only position is compared !)
 
void swap (DenseIteratorBase &lhs, DenseIteratorBase &rhs)
 swap two iterators (only position is swaped)
 
difference_type operator- (DenseIteratorBase it1, DenseIteratorBase it2)
 difference of two positions
 

Detailed Description

template<class Derived>
struct STK::DenseIteratorBase< Derived >

IteratorBase is a base class for all iterators on dense arrays/matrix/vector/expressions.

Template Parameters
Derivedthe derived class

Definition at line 78 of file STK_DenseIteratorBase.h.

Member Typedef Documentation

◆ difference_type

template<class Derived >
typedef hidden::IteratorTraits<Derived>::difference_type STK::DenseIteratorBase< Derived >::difference_type

Definition at line 86 of file STK_DenseIteratorBase.h.

◆ Index

template<class Derived >
typedef hidden::IteratorTraits<Derived>::Index STK::DenseIteratorBase< Derived >::Index

Definition at line 80 of file STK_DenseIteratorBase.h.

◆ iterator_category

template<class Derived >
typedef hidden::IteratorTraits<Derived>::iterator_category STK::DenseIteratorBase< Derived >::iterator_category

Definition at line 82 of file STK_DenseIteratorBase.h.

◆ pointer

template<class Derived >
typedef hidden::IteratorTraits<Derived>::pointer STK::DenseIteratorBase< Derived >::pointer

Definition at line 85 of file STK_DenseIteratorBase.h.

◆ reference

template<class Derived >
typedef hidden::IteratorTraits<Derived>::reference STK::DenseIteratorBase< Derived >::reference

Definition at line 84 of file STK_DenseIteratorBase.h.

◆ value_type

template<class Derived >
typedef hidden::IteratorTraits<Derived>::value_type STK::DenseIteratorBase< Derived >::value_type

Definition at line 83 of file STK_DenseIteratorBase.h.

Constructor & Destructor Documentation

◆ DenseIteratorBase() [1/3]

template<class Derived >
STK::DenseIteratorBase< Derived >::DenseIteratorBase ( )
inlineprotected

default constructor

Definition at line 90 of file STK_DenseIteratorBase.h.

90: pos_(baseIdx) {}
const int baseIdx
base index of the containers created in STK++.
Index pos_
Current position.

◆ DenseIteratorBase() [2/3]

template<class Derived >
STK::DenseIteratorBase< Derived >::DenseIteratorBase ( Index  pos)
inlineprotected

constructor with specified position

Parameters
posposition of the iterator on the array

Definition at line 94 of file STK_DenseIteratorBase.h.

◆ DenseIteratorBase() [3/3]

template<class Derived >
STK::DenseIteratorBase< Derived >::DenseIteratorBase ( DenseIteratorBase< Derived > const it)
inlineprotected

copy constructor.

Parameters
ititerator to copy

Definition at line 98 of file STK_DenseIteratorBase.h.

98: pos_(it.pos_) {}

◆ ~DenseIteratorBase()

template<class Derived >
STK::DenseIteratorBase< Derived >::~DenseIteratorBase ( )
inlineprotected

destructor

Definition at line 100 of file STK_DenseIteratorBase.h.

100{}

Member Function Documentation

◆ operator++() [1/2]

template<class Derived >
Derived & STK::DenseIteratorBase< Derived >::operator++ ( )
inline

next position

Definition at line 108 of file STK_DenseIteratorBase.h.

108{ ++pos_; return this->asDerived(); }
Derived & asDerived()
static cast : return a reference of this with a cast to the derived class.

References STK::IRecursiveTemplate< Derived >::asDerived(), and STK::DenseIteratorBase< Derived >::pos_.

◆ operator++() [2/2]

template<class Derived >
Derived & STK::DenseIteratorBase< Derived >::operator++ ( int  junk)
inline

next position

Definition at line 110 of file STK_DenseIteratorBase.h.

110{ ++pos_; return this->asDerived(); }

References STK::IRecursiveTemplate< Derived >::asDerived(), and STK::DenseIteratorBase< Derived >::pos_.

◆ operator+=()

template<class Derived >
Derived & STK::DenseIteratorBase< Derived >::operator+= ( Index  n)
inline

add n positions to current position

Definition at line 116 of file STK_DenseIteratorBase.h.

116{ pos_+=n; return this->asDerived(); }

References STK::IRecursiveTemplate< Derived >::asDerived(), and STK::DenseIteratorBase< Derived >::pos_.

◆ operator--() [1/2]

template<class Derived >
Derived & STK::DenseIteratorBase< Derived >::operator-- ( )
inline

previous position

Definition at line 112 of file STK_DenseIteratorBase.h.

112{ --pos_; return this->asDerived(); }

References STK::IRecursiveTemplate< Derived >::asDerived(), and STK::DenseIteratorBase< Derived >::pos_.

◆ operator--() [2/2]

template<class Derived >
Derived & STK::DenseIteratorBase< Derived >::operator-- ( int  )
inline

previous position

Definition at line 114 of file STK_DenseIteratorBase.h.

114{ --pos_; return this->asDerived(); }

References STK::IRecursiveTemplate< Derived >::asDerived(), and STK::DenseIteratorBase< Derived >::pos_.

◆ operator-=()

template<class Derived >
Derived & STK::DenseIteratorBase< Derived >::operator-= ( Index  n)
inline

Subtract n positions to current position.

Definition at line 118 of file STK_DenseIteratorBase.h.

118{ pos_-=n; return this->asDerived(); }

References STK::IRecursiveTemplate< Derived >::asDerived(), and STK::DenseIteratorBase< Derived >::pos_.

◆ pos()

template<class Derived >
Index STK::DenseIteratorBase< Derived >::pos ( ) const
inline
Returns
current position of the iterator

Definition at line 104 of file STK_DenseIteratorBase.h.

104{ return pos_;}

References STK::DenseIteratorBase< Derived >::pos_.

Friends And Related Symbol Documentation

◆ operator+ [1/2]

template<class Derived >
DenseIteratorBase operator+ ( DenseIteratorBase< Derived > const it,
int  n 
)
friend

add n positions to current position

add n positions to current position

Definition at line 121 of file STK_DenseIteratorBase.h.

123 { DenseIteratorBase r(it); r+=n ; return r; }
DenseIteratorBase()
default constructor

◆ operator+ [2/2]

template<class Derived >
DenseIteratorBase operator+ ( int  n,
DenseIteratorBase< Derived > const it 
)
friend

Subtract n positions to current position.

Definition at line 124 of file STK_DenseIteratorBase.h.

126 { DenseIteratorBase r(it); r+=n ; return r; }

◆ operator- [1/3]

template<class Derived >
DenseIteratorBase operator- ( DenseIteratorBase< Derived > const it,
int  n 
)
friend

Subtract n positions to current position.

Definition at line 128 of file STK_DenseIteratorBase.h.

129 { DenseIteratorBase r(it); r-=n ; return r; }

◆ operator- [2/3]

template<class Derived >
difference_type operator- ( DenseIteratorBase< Derived >  it1,
DenseIteratorBase< Derived >  it2 
)
friend

difference of two positions

Definition at line 151 of file STK_DenseIteratorBase.h.

152 { return it1.pos_ - it2.pos_;}

◆ operator- [3/3]

template<class Derived >
DenseIteratorBase operator- ( int  n,
DenseIteratorBase< Derived > const it 
)
friend

Definition at line 130 of file STK_DenseIteratorBase.h.

131 { DenseIteratorBase r(it); r-=n ; return r; }

◆ operator<

template<class Derived >
bool operator< ( DenseIteratorBase< Derived > const lhs,
DenseIteratorBase< Derived > const rhs 
)
friend

comparing two iterators (only position is compared !)

Definition at line 134 of file STK_DenseIteratorBase.h.

135 { return lhs.pos_ < rhs.pos_; };

◆ operator<=

template<class Derived >
bool operator<= ( DenseIteratorBase< Derived > const lhs,
DenseIteratorBase< Derived > const rhs 
)
friend

comparing two iterators (only position is compared !)

Definition at line 140 of file STK_DenseIteratorBase.h.

141 { return lhs.pos_ <= rhs.pos_; };

◆ operator>

template<class Derived >
bool operator> ( DenseIteratorBase< Derived > const lhs,
DenseIteratorBase< Derived > const rhs 
)
friend

comparing two iterators (only position is compared !)

Definition at line 137 of file STK_DenseIteratorBase.h.

138 { return lhs.pos_ > rhs.pos_; };

◆ operator>=

template<class Derived >
bool operator>= ( DenseIteratorBase< Derived > const lhs,
DenseIteratorBase< Derived > const rhs 
)
friend

comparing two iterators (only position is compared !)

Definition at line 143 of file STK_DenseIteratorBase.h.

144 { return lhs.pos_ >= rhs.pos_; };

◆ swap

template<class Derived >
void swap ( DenseIteratorBase< Derived > &  lhs,
DenseIteratorBase< Derived > &  rhs 
)
friend

swap two iterators (only position is swaped)

Definition at line 148 of file STK_DenseIteratorBase.h.

149 { std::swap(lhs.pos_, rhs.pos_);}

Member Data Documentation

◆ pos_


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