LIBINT  2.6.0
Classes | Public Types | Public Member Functions | Protected Attributes | List of all members
libint2::SubIteratorBase< T, Tr > Class Template Reference

SubIteratorBase<T> provides a base class for a sub-iterator class for T. More...

#include <iter.h>

Inheritance diagram for libint2::SubIteratorBase< T, Tr >:
Inheritance graph
[legend]
Collaboration diagram for libint2::SubIteratorBase< T, Tr >:
Collaboration graph
[legend]

Public Types

typedef T::iter_type iter_type
 
typedef Tr< T > TPolicy
 
typedef TPolicy::obj_stype tref
 
typedef TPolicy::subobj_stype iref
 
typedef const ConstructablePolymorphicallycp_rettype
 Return reference to ConstructablePolymorphically as object of this type.
 

Public Member Functions

 SubIteratorBase (const tref &)
 
const iref & elem () const
 Returns current element.
 
cp_rettype pelem () const
 Returns current element. Implements SubIterator's pelem().
 
unsigned int num_iter () const
 Returns a number of iterations (number of elements in a set over which to iterate).
 
void init ()
 Initializes the iterator.
 
SubIteratoroperator++ ()
 Iterates to the next element. Only prefix form is provided.
 
 operator int () const
 This is used to check whether current element exists. Returns 1 if it does.
 

Protected Attributes

const tref obj_
 
vector< iref > subobj_
 

Detailed Description

template<class T, template< class > class Tr = Policy>
class libint2::SubIteratorBase< T, Tr >

SubIteratorBase<T> provides a base class for a sub-iterator class for T.

It iterates through T as if it were a set of some data of type T::iter_type. Traits of class T (ordering of T::iter_type, etc.) are provided by Tr<T>.


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