HLT::CombinationIterator< Collections > Node1 HLT::CombinationIterator < Collections > + CombinationIterator() + ~CombinationIterator() + operator()() + reset() + operator bool() + operator++() Node2 HLT::CombinationGenerator + CombinationGenerator() + add() + reset() + size() + operator()() + current() + operator++() + operator bool() Node2->Node1 -m_generator Node3 std::vector< size_t > + elements Node3->Node2 -m_maxes -m_current