KiCad PCB EDA Suite
Loading...
Searching...
No Matches
MULTIVECTOR< T, FIRST_TYPE_VAL, LAST_TYPE_VAL >::ITERATOR_BASE< ITEM_TYPE, ITEM_CONTAINER, ITEM_CONTAINER_IT > Class Template Reference

Generic implementation of a flat const/non-const iterator over contained items. More...

#include <multivector.h>

Public Member Functions

ITEM_TYPE & operator* ()
 
ITEM_TYPE * operator-> ()
 
ITERATOR_BASE & operator++ ()
 
bool operator!= (const ITERATOR_BASE &aOther) const
 

Protected Member Functions

 ITERATOR_BASE (ITEM_CONTAINER *aItems, ITEM_CONTAINER_IT aIt, int aBucket, int aType=UNDEFINED_TYPE)
 
void validate ()
 Assures the iterator is in a valid state.
 

Protected Attributes

ITEM_CONTAINER * m_parent
 Wrapped container.
 
ITEM_CONTAINER_IT m_it
 Iterator for one of the ptr_vector containers stored in the array.
 
bool m_filter
 Flag indicating whether type filtering is enabled.
 
int m_curType
 Type of the currently iterated items.
 

Friends

class MULTIVECTOR
 

Detailed Description

template<typename T, int FIRST_TYPE_VAL, int LAST_TYPE_VAL>
template<typename ITEM_TYPE, typename ITEM_CONTAINER, typename ITEM_CONTAINER_IT>
class MULTIVECTOR< T, FIRST_TYPE_VAL, LAST_TYPE_VAL >::ITERATOR_BASE< ITEM_TYPE, ITEM_CONTAINER, ITEM_CONTAINER_IT >

Generic implementation of a flat const/non-const iterator over contained items.

Definition at line 67 of file multivector.h.

Constructor & Destructor Documentation

◆ ITERATOR_BASE()

template<typename T, int FIRST_TYPE_VAL, int LAST_TYPE_VAL>
template<typename ITEM_TYPE, typename ITEM_CONTAINER, typename ITEM_CONTAINER_IT>
MULTIVECTOR< T, FIRST_TYPE_VAL, LAST_TYPE_VAL >::ITERATOR_BASE< ITEM_TYPE, ITEM_CONTAINER, ITEM_CONTAINER_IT >::ITERATOR_BASE ( ITEM_CONTAINER * aItems,
ITEM_CONTAINER_IT aIt,
int aBucket,
int aType = UNDEFINED_TYPE )
inlineprotected
Parameters
aItemsis the container to wrap.
aItis the iterator to initialize this iterator (usually some begin() or end() iterator).
aBucketis the type ID of the given iterator.
aTypeenables item type filtering. When aType is UNDEFINED_TYPE, there is no filtering and all item types are accessible by the iterator.

Definition at line 113 of file multivector.h.

Member Function Documentation

◆ operator!=()

template<typename T, int FIRST_TYPE_VAL, int LAST_TYPE_VAL>
template<typename ITEM_TYPE, typename ITEM_CONTAINER, typename ITEM_CONTAINER_IT>
bool MULTIVECTOR< T, FIRST_TYPE_VAL, LAST_TYPE_VAL >::ITERATOR_BASE< ITEM_TYPE, ITEM_CONTAINER, ITEM_CONTAINER_IT >::operator!= ( const ITERATOR_BASE< ITEM_TYPE, ITEM_CONTAINER, ITEM_CONTAINER_IT > & aOther) const
inline

Definition at line 90 of file multivector.h.

◆ operator*()

template<typename T, int FIRST_TYPE_VAL, int LAST_TYPE_VAL>
template<typename ITEM_TYPE, typename ITEM_CONTAINER, typename ITEM_CONTAINER_IT>
ITEM_TYPE & MULTIVECTOR< T, FIRST_TYPE_VAL, LAST_TYPE_VAL >::ITERATOR_BASE< ITEM_TYPE, ITEM_CONTAINER, ITEM_CONTAINER_IT >::operator* ( )
inline

Definition at line 70 of file multivector.h.

◆ operator++()

template<typename T, int FIRST_TYPE_VAL, int LAST_TYPE_VAL>
template<typename ITEM_TYPE, typename ITEM_CONTAINER, typename ITEM_CONTAINER_IT>
ITERATOR_BASE & MULTIVECTOR< T, FIRST_TYPE_VAL, LAST_TYPE_VAL >::ITERATOR_BASE< ITEM_TYPE, ITEM_CONTAINER, ITEM_CONTAINER_IT >::operator++ ( )
inline

Definition at line 80 of file multivector.h.

◆ operator->()

template<typename T, int FIRST_TYPE_VAL, int LAST_TYPE_VAL>
template<typename ITEM_TYPE, typename ITEM_CONTAINER, typename ITEM_CONTAINER_IT>
ITEM_TYPE * MULTIVECTOR< T, FIRST_TYPE_VAL, LAST_TYPE_VAL >::ITERATOR_BASE< ITEM_TYPE, ITEM_CONTAINER, ITEM_CONTAINER_IT >::operator-> ( )
inline

Definition at line 75 of file multivector.h.

◆ validate()

template<typename T, int FIRST_TYPE_VAL, int LAST_TYPE_VAL>
template<typename ITEM_TYPE, typename ITEM_CONTAINER, typename ITEM_CONTAINER_IT>
void MULTIVECTOR< T, FIRST_TYPE_VAL, LAST_TYPE_VAL >::ITERATOR_BASE< ITEM_TYPE, ITEM_CONTAINER, ITEM_CONTAINER_IT >::validate ( )
inlineprotected

Friends And Related Symbol Documentation

◆ MULTIVECTOR

template<typename T, int FIRST_TYPE_VAL, int LAST_TYPE_VAL>
template<typename ITEM_TYPE, typename ITEM_CONTAINER, typename ITEM_CONTAINER_IT>
friend class MULTIVECTOR
friend

Definition at line 156 of file multivector.h.

Member Data Documentation

◆ m_curType

template<typename T, int FIRST_TYPE_VAL, int LAST_TYPE_VAL>
template<typename ITEM_TYPE, typename ITEM_CONTAINER, typename ITEM_CONTAINER_IT>
int MULTIVECTOR< T, FIRST_TYPE_VAL, LAST_TYPE_VAL >::ITERATOR_BASE< ITEM_TYPE, ITEM_CONTAINER, ITEM_CONTAINER_IT >::m_curType
protected

◆ m_filter

template<typename T, int FIRST_TYPE_VAL, int LAST_TYPE_VAL>
template<typename ITEM_TYPE, typename ITEM_CONTAINER, typename ITEM_CONTAINER_IT>
bool MULTIVECTOR< T, FIRST_TYPE_VAL, LAST_TYPE_VAL >::ITERATOR_BASE< ITEM_TYPE, ITEM_CONTAINER, ITEM_CONTAINER_IT >::m_filter
protected

◆ m_it

template<typename T, int FIRST_TYPE_VAL, int LAST_TYPE_VAL>
template<typename ITEM_TYPE, typename ITEM_CONTAINER, typename ITEM_CONTAINER_IT>
ITEM_CONTAINER_IT MULTIVECTOR< T, FIRST_TYPE_VAL, LAST_TYPE_VAL >::ITERATOR_BASE< ITEM_TYPE, ITEM_CONTAINER, ITEM_CONTAINER_IT >::m_it
protected

◆ m_parent

template<typename T, int FIRST_TYPE_VAL, int LAST_TYPE_VAL>
template<typename ITEM_TYPE, typename ITEM_CONTAINER, typename ITEM_CONTAINER_IT>
ITEM_CONTAINER* MULTIVECTOR< T, FIRST_TYPE_VAL, LAST_TYPE_VAL >::ITERATOR_BASE< ITEM_TYPE, ITEM_CONTAINER, ITEM_CONTAINER_IT >::m_parent
protected

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