ATLAS Offline Software
|
This iterator is able to generate all possible identifiers, from a
fully bounded Range.
More...
#include <RangeIterator.h>
Public Types | |
using | iterator_category = std::forward_iterator_tag |
using | difference_type = std::ptrdiff_t |
using | value_type = ExpandedIdentifier |
using | pointer = ExpandedIdentifier * |
using | reference = ExpandedIdentifier & |
Public Member Functions | |
RangeIterator ()=default | |
RangeIterator (Range &range) | |
RangeIterator & | operator++ () |
RangeIterator | begin () const |
RangeIterator | end () const |
pointer | operator-> () |
ExpandedIdentifier & | operator* () |
bool | operator== (const RangeIterator &other) const |
Private Attributes | |
std::vector< std::size_t > | m_indices |
ExpandedIdentifier | m_id |
ExpandedIdentifier | m_min |
ExpandedIdentifier | m_max |
const Range * | m_range {} |
This iterator is able to generate all possible identifiers, from a
fully bounded Range.
The precondition is that the Range used to parameterize the iterator
must have all its fields completely bounded.
Definition at line 19 of file RangeIterator.h.
using RangeIterator::difference_type = std::ptrdiff_t |
Definition at line 22 of file RangeIterator.h.
using RangeIterator::iterator_category = std::forward_iterator_tag |
Definition at line 21 of file RangeIterator.h.
using RangeIterator::pointer = ExpandedIdentifier* |
Definition at line 24 of file RangeIterator.h.
Definition at line 25 of file RangeIterator.h.
Definition at line 23 of file RangeIterator.h.
|
default |
RangeIterator::RangeIterator | ( | Range & | range | ) |
Fill all running identifiers m_id : the current id m_min : the set of low bounds m_max : the set of high bounds
Definition at line 41 of file RangeIterator.cxx.
RangeIterator RangeIterator::begin | ( | ) | const |
Definition at line 12 of file RangeIterator.cxx.
RangeIterator RangeIterator::end | ( | ) | const |
Definition at line 24 of file RangeIterator.cxx.
ExpandedIdentifier & RangeIterator::operator* | ( | ) |
Definition at line 137 of file RangeIterator.cxx.
RangeIterator & RangeIterator::operator++ | ( | ) |
The local range is not exceeded. increase the value then reset the remaining fields.
The current range field was exhausted check the previous one.
Definition at line 71 of file RangeIterator.cxx.
|
inline |
Definition at line 34 of file RangeIterator.h.
bool RangeIterator::operator== | ( | const RangeIterator & | other | ) | const |
Definition at line 143 of file RangeIterator.cxx.
|
private |
Definition at line 40 of file RangeIterator.h.
|
private |
Definition at line 39 of file RangeIterator.h.
|
private |
Definition at line 42 of file RangeIterator.h.
|
private |
Definition at line 41 of file RangeIterator.h.
Definition at line 43 of file RangeIterator.h.