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

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

#include <STK_SparseIteratorBase.h>

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

Public Member Functions

int pos () const
 
Derived & operator++ ()
 next position
 
Derived & operator++ (int junk)
 next position
 
Derived & operator-- ()
 previous position
 
Derived & operator-- (int)
 previous position
 
Derived & operator+= (int n)
 
Derived & operator-= (int n)
 
bool operator== (SparseIteratorBase const &rhs)
 comparing two iterators (only position is compared !)
 
bool operator!= (SparseIteratorBase const &rhs)
 comparing two iterators (only position is compared !)
 
- 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

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

Protected Attributes

Indexpos_
 Current position.
 

Private 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
 

Private Member Functions

 SparseIteratorBase ()
 default constructor
 

Friends

SparseIteratorBase operator+ (SparseIteratorBase const &it, int n)
 
SparseIteratorBase operator+ (int n, SparseIteratorBase const &it)
 
SparseIteratorBase operator- (SparseIteratorBase const &it, int n)
 
SparseIteratorBase operator- (int n, SparseIteratorBase const &it)
 
difference_type operator- (SparseIteratorBase it1, SparseIteratorBase it2)
 
bool operator< (SparseIteratorBase const &lhs, SparseIteratorBase const &rhs)
 comparing two iterators (only position is compared !)
 
bool operator> (SparseIteratorBase const &lhs, SparseIteratorBase const &rhs)
 comparing two iterators (only position is compared !)
 
bool operator<= (SparseIteratorBase const &lhs, SparseIteratorBase const &rhs)
 comparing two iterators (only position is compared !)
 
bool operator>= (SparseIteratorBase const &lhs, SparseIteratorBase const &rhs)
 comparing two iterators (only position is compared !)
 
void swap (SparseIteratorBase &lhs, SparseIteratorBase &rhs)
 swap two iterators (only position is swaped)
 

Detailed Description

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

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

Template Parameters
Derivedthe derived class

Definition at line 80 of file STK_SparseIteratorBase.h.

Member Typedef Documentation

◆ difference_type

template<class Derived >
typedef hidden::IteratorTraits<Derived>::difference_type STK::SparseIteratorBase< Derived >::difference_type
private

Definition at line 92 of file STK_SparseIteratorBase.h.

◆ Index

template<class Derived >
typedef hidden::IteratorTraits<Derived>::Index STK::SparseIteratorBase< Derived >::Index
private

Definition at line 86 of file STK_SparseIteratorBase.h.

◆ iterator_category

template<class Derived >
typedef hidden::IteratorTraits<Derived>::iterator_category STK::SparseIteratorBase< Derived >::iterator_category
private

Definition at line 88 of file STK_SparseIteratorBase.h.

◆ pointer

template<class Derived >
typedef hidden::IteratorTraits<Derived>::pointer STK::SparseIteratorBase< Derived >::pointer
private

Definition at line 91 of file STK_SparseIteratorBase.h.

◆ reference

template<class Derived >
typedef hidden::IteratorTraits<Derived>::reference STK::SparseIteratorBase< Derived >::reference
private

Definition at line 90 of file STK_SparseIteratorBase.h.

◆ value_type

template<class Derived >
typedef hidden::IteratorTraits<Derived>::value_type STK::SparseIteratorBase< Derived >::value_type
private

Definition at line 89 of file STK_SparseIteratorBase.h.

Constructor & Destructor Documentation

◆ SparseIteratorBase() [1/3]

template<class Derived >
STK::SparseIteratorBase< Derived >::SparseIteratorBase ( )
inlineprivate

default constructor

Definition at line 84 of file STK_SparseIteratorBase.h.

84: pos_(){}
Index & pos_
Current position.

◆ SparseIteratorBase() [2/3]

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

constructor with specified position

Parameters
posposition of the iterator on the array

Definition at line 99 of file STK_SparseIteratorBase.h.

◆ SparseIteratorBase() [3/3]

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

copy constructor.

Parameters
ititerator to copy

Definition at line 103 of file STK_SparseIteratorBase.h.

103: pos_(it.pos_) {}

◆ ~SparseIteratorBase()

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

destructor

Definition at line 105 of file STK_SparseIteratorBase.h.

105{}

Member Function Documentation

◆ operator!=()

template<class Derived >
bool STK::SparseIteratorBase< Derived >::operator!= ( SparseIteratorBase< Derived > const rhs)
inline

comparing two iterators (only position is compared !)

Definition at line 139 of file STK_SparseIteratorBase.h.

139{ return(pos_!=rhs.pos_); }

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

◆ operator++() [1/2]

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

next position

Definition at line 113 of file STK_SparseIteratorBase.h.

113{ ++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::SparseIteratorBase< Derived >::pos_.

◆ operator++() [2/2]

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

next position

Definition at line 115 of file STK_SparseIteratorBase.h.

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

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

◆ operator+=()

template<class Derived >
Derived & STK::SparseIteratorBase< Derived >::operator+= ( int  n)
inline

◆ operator--() [1/2]

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

previous position

Definition at line 117 of file STK_SparseIteratorBase.h.

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

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

◆ operator--() [2/2]

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

previous position

Definition at line 119 of file STK_SparseIteratorBase.h.

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

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

◆ operator-=()

template<class Derived >
Derived & STK::SparseIteratorBase< Derived >::operator-= ( int  n)
inline

◆ operator==()

template<class Derived >
bool STK::SparseIteratorBase< Derived >::operator== ( SparseIteratorBase< Derived > const rhs)
inline

comparing two iterators (only position is compared !)

Definition at line 137 of file STK_SparseIteratorBase.h.

137{ return(pos_ ==rhs.pos_); }

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

◆ pos()

template<class Derived >
int STK::SparseIteratorBase< Derived >::pos ( ) const
inline
Returns
the position of the iterator

Definition at line 109 of file STK_SparseIteratorBase.h.

109{ return pos_;}

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

Friends And Related Symbol Documentation

◆ operator+ [1/2]

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

Definition at line 125 of file STK_SparseIteratorBase.h.

126 { SparseIteratorBase r(it); r+=n ; return r; }
SparseIteratorBase()
default constructor

◆ operator+ [2/2]

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

Definition at line 123 of file STK_SparseIteratorBase.h.

124 { SparseIteratorBase r(it); r+=n ; return r; }

◆ operator- [1/3]

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

Definition at line 129 of file STK_SparseIteratorBase.h.

130 { SparseIteratorBase r(it); r-=n ; return r; }

◆ operator- [2/3]

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

Definition at line 127 of file STK_SparseIteratorBase.h.

128 { SparseIteratorBase r(it); r-=n ; return r; }

◆ operator- [3/3]

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

Definition at line 132 of file STK_SparseIteratorBase.h.

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

◆ operator<

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

comparing two iterators (only position is compared !)

Definition at line 142 of file STK_SparseIteratorBase.h.

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

◆ operator<=

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

comparing two iterators (only position is compared !)

Definition at line 148 of file STK_SparseIteratorBase.h.

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

◆ operator>

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

comparing two iterators (only position is compared !)

Definition at line 145 of file STK_SparseIteratorBase.h.

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

◆ operator>=

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

comparing two iterators (only position is compared !)

Definition at line 151 of file STK_SparseIteratorBase.h.

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

◆ swap

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

swap two iterators (only position is swaped)

Definition at line 155 of file STK_SparseIteratorBase.h.

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

Member Data Documentation

◆ pos_


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