|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef TRIGCOMPOSITEUTILS_PRODUCTITR_H
6 #define TRIGCOMPOSITEUTILS_PRODUCTITR_H
10 #include <type_traits>
42 template <
typename Iterator>
61 ProductItr(
const std::vector<Iterator> &itrs,
const std::vector<Iterator> &endItrs);
96 #endif //> !TRIGCOMPOSITEUTILS_PRODUCT_ITR_H
void reset()
Helper function to reset this iterator to its start position.
std::vector< Iterator > m_startItrs
Iterates over all combinations of the provided input iterators.
bool operator!=(const ProductItr &other) const
ProductItr operator++(int)
Post-increment operator.
std::size_t nItrs() const
The number of input iterators.
std::vector< Iterator > m_currentItrs
const value_type & reference
const value_type * pointer
std::vector< TrigCompositeUtils::KFromNItr > value_type
bool operator==(const ProductItr &other) const
Iterator comparison functions.
ProductItr()=default
Default constructor creates a generic past-the-end iterator.
ProductItr & operator++()
Pre-increment operator.
bool exhausted() const
True if this iterator is past the end.
pointer operator->() const
std::vector< Iterator > m_endItrs
reference operator*() const
Dereference.
ProductItr(const std::vector< Iterator > &itrs, const std::vector< Iterator > &endItrs)
Construct the iterator from an input vector of iterators.
std::input_iterator_tag iterator_category
Iterator traits.
std::ptrdiff_t difference_type