mpqc::utility::GeneratorIterator< Generator, GeneratorPtr, T > Class Template Reference
Collaboration diagram for mpqc::utility::GeneratorIterator< Generator, GeneratorPtr, T >:

Documentation

template<typename Generator, typename GeneratorPtr = Generator*, typename T = typename Generator::value_type>
class mpqc::utility::GeneratorIterator< Generator, GeneratorPtr, T >

Iterator facade for a Generator.

Generator a Generator type

GeneratorPtr a pointer type to use to refer to Generator; defaults to Generator*, can accept also unique_ptr<Generator> and shared_ptr<Generator>

T value type for the iterator

WARNING: this is a shallow-copy iterator, i.e. its copy's value will change if this is incremented. Standard iterators are all deep-copy. See GeneratorDCIterator for a deep-copy version

Public Member Functions

 GeneratorIterator () noexcept=default
 
 GeneratorIterator (const GeneratorIterator &) noexcept=default
 
 GeneratorIterator (GeneratorIterator &&) noexcept=default
 
GeneratorIteratoroperator= (const GeneratorIterator &) noexcept=default
 
GeneratorIteratoroperator= (GeneratorIterator &&) noexcept=default
 
 ~GeneratorIterator () noexcept=default
 
 GeneratorIterator (Generator *g) noexcept
 

Friends

class boost::iterator_core_access
 

Constructor & Destructor Documentation

◆ GeneratorIterator() [1/4]

template<typename Generator , typename GeneratorPtr = Generator*, typename T = typename Generator::value_type>
mpqc::utility::GeneratorIterator< Generator, GeneratorPtr, T >::GeneratorIterator ( )
defaultnoexcept

Constructs a null iterator, i.e., an iterator that does not point to a generator.

Note
The null iterator is the universal "end" iterator, i.e., a null iterator is equal to a non-null iterator pointing to the end of generated range. As expected, two null iterators are equal.

◆ GeneratorIterator() [2/4]

template<typename Generator , typename GeneratorPtr = Generator*, typename T = typename Generator::value_type>
mpqc::utility::GeneratorIterator< Generator, GeneratorPtr, T >::GeneratorIterator ( const GeneratorIterator< Generator, GeneratorPtr, T > &  )
defaultnoexcept

◆ GeneratorIterator() [3/4]

template<typename Generator , typename GeneratorPtr = Generator*, typename T = typename Generator::value_type>
mpqc::utility::GeneratorIterator< Generator, GeneratorPtr, T >::GeneratorIterator ( GeneratorIterator< Generator, GeneratorPtr, T > &&  )
defaultnoexcept

◆ ~GeneratorIterator()

template<typename Generator , typename GeneratorPtr = Generator*, typename T = typename Generator::value_type>
mpqc::utility::GeneratorIterator< Generator, GeneratorPtr, T >::~GeneratorIterator ( )
defaultnoexcept

◆ GeneratorIterator() [4/4]

template<typename Generator , typename GeneratorPtr = Generator*, typename T = typename Generator::value_type>
mpqc::utility::GeneratorIterator< Generator, GeneratorPtr, T >::GeneratorIterator ( Generator *  g)
inlinenoexcept

constructs an iterator pointing to Generator g

Parameters
[in]gpointer to a Generator object; can be null

Member Function Documentation

◆ operator=() [1/2]

template<typename Generator , typename GeneratorPtr = Generator*, typename T = typename Generator::value_type>
GeneratorIterator& mpqc::utility::GeneratorIterator< Generator, GeneratorPtr, T >::operator= ( const GeneratorIterator< Generator, GeneratorPtr, T > &  )
defaultnoexcept

◆ operator=() [2/2]

template<typename Generator , typename GeneratorPtr = Generator*, typename T = typename Generator::value_type>
GeneratorIterator& mpqc::utility::GeneratorIterator< Generator, GeneratorPtr, T >::operator= ( GeneratorIterator< Generator, GeneratorPtr, T > &&  )
defaultnoexcept

Friends And Related Function Documentation

◆ boost::iterator_core_access

template<typename Generator , typename GeneratorPtr = Generator*, typename T = typename Generator::value_type>
friend class boost::iterator_core_access
friend

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