|
bool | getfirst (idx_type &val, idx_type &i) const |
|
bool | getnext (idx_type &val, idx_type &i) const |
|
size_t | trueSize () const |
|
size_t | size () const |
|
template<typename T > |
void | subset (Vector< T > &rv, const Vector< T > &v) const |
| Subset 'v' according to this index and put the result into 'rv'.
|
|
template<typename T , typename U > |
void | subassign (Vector< T > &rv, U &u, idx_type &vj) const |
|
template<typename T , typename U > |
void | subassignScalar (Vector< T > &rv, U u) const |
|
void | selectNames (Dname &tonames, const Dname &fromnames) const |
|
We define a series of classes that implement the various types of indices. We do not derive them from a base class and use virtual functions, instead we use them in a Variant for performance reasons. Note that the XyzIndex always holds all the information (via a const ref) to any data it needs in order to convert to indices of type idx_type. This is done by the inline functions getfirst and getnext.