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