Arbiter
Dependency manager library that supports decentralization
Public Member Functions | List of all members
Arbiter::PermutationIterator< It > Class Template Referencefinal

An iterator which generates every possible combination of the values of other iterators. More...

Collaboration diagram for Arbiter::PermutationIterator< It >:
[legend]

Public Member Functions

 PermutationIterator ()
 Creates an empty iterator. More...
 
 PermutationIterator (std::vector< IteratorRange< It >> ranges)
 Creates an iterator which will create all possible combinations between the given ranges. More...
 
 operator bool () const
 Returns whether the iterator is valid (i.e., dereferenceable). More...
 
bool operator!= (const PermutationIterator &other) const
 
IteratorResultVector< It > operator* () const
 
PermutationIteratoroperator++ ()
 
PermutationIterator operator++ (int)
 
bool operator== (const PermutationIterator &other) const
 

Detailed Description

template<typename It>
class Arbiter::PermutationIterator< It >

An iterator which generates every possible combination of the values of other iterators.

The input type must be a forward iterator.

Definition at line 122 of file Iterator.h.

Constructor & Destructor Documentation

§ PermutationIterator() [1/2]

template<typename It >
Arbiter::PermutationIterator< It >::PermutationIterator ( )

Creates an empty iterator.

The iterator must not be dereferenced.

Definition at line 128 of file Iterator.h.

§ PermutationIterator() [2/2]

template<typename It >
Arbiter::PermutationIterator< It >::PermutationIterator ( std::vector< IteratorRange< It >>  ranges)

Creates an iterator which will create all possible combinations between the given ranges.

Definition at line 135 of file Iterator.h.

Member Function Documentation

§ operator bool()

template<typename It >
Arbiter::PermutationIterator< It >::operator bool ( ) const
explicit

Returns whether the iterator is valid (i.e., dereferenceable).

If this is false, it is an error to increment the iterator further.

Definition at line 201 of file Iterator.h.

§ operator!=()

template<typename It >
bool Arbiter::PermutationIterator< It >::operator!= ( const PermutationIterator< It > &  other) const

Definition at line 177 of file Iterator.h.

§ operator*()

template<typename It >
IteratorResultVector<It> Arbiter::PermutationIterator< It >::operator* ( ) const

Definition at line 182 of file Iterator.h.

§ operator++() [1/2]

template<typename It >
PermutationIterator& Arbiter::PermutationIterator< It >::operator++ ( )

Definition at line 144 of file Iterator.h.

§ operator++() [2/2]

template<typename It >
PermutationIterator Arbiter::PermutationIterator< It >::operator++ ( int  )

Definition at line 165 of file Iterator.h.

§ operator==()

template<typename It >
bool Arbiter::PermutationIterator< It >::operator== ( const PermutationIterator< It > &  other) const

Definition at line 172 of file Iterator.h.


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