Lines Matching defs:iterator
2733 template <typename Iterator>
2735 typedef typename Iterator::value_type value_type;
7801 // will be viable (since both C::iterator* and C::const_iterator* are
7804 // the type of argument 0. If C::iterator or C::const_iterator is not
7810 // Note that we look for both C::iterator and C::const_iterator. The
7812 // class itself (e.g. you can refer to class iterator as either
7813 // 'iterator' or 'iterator::iterator'). If we look for C::iterator
7815 // iterator is an STL container.
7823 typename C::iterator* /* it */ = NULL,
7870 // Finds the first element in the iterator range [begin, end) that
7929 typedef Element* iterator;
8821 // ValuesIn(begin,end) container, or an iterator range [begin, end).
8956 #include <iterator>
9281 // iterator but not a forward iterator, this inferred type may not
9284 // const_iterator is a forward iterator. We'll fix this if there's an
10073 // Used only for the purposes of iterator comparison
10076 // Advances iterator to point to the next element
10078 // for not calling Advance() on an iterator equal to
10081 // Clones the iterator object. Used for implementing copy semantics
10084 // Dereferences the current iterator and provides (read-only) access
10086 // Current() on an iterator equal to BaseGenerator()->End().
10089 // Determines whether the given iterator and other point to the same
10097 // and implements the const forward iterator concept.
10161 typedef ParamIterator<T> iterator;
10171 iterator begin() const { return iterator(impl_->Begin()); }
10172 iterator end() const { return iterator(impl_->End()); }
10191 return new Iterator(this, begin_, 0, step_);
10194 return new Iterator(this, end_, end_index_, step_);
10198 class Iterator : public ParamIteratorInterface<T> {
10200 Iterator(const ParamGeneratorInterface<T>* base, T value, int index,
10203 virtual ~Iterator() {}
10213 return new Iterator(*this);
10218 // iterator is of the same type and we can downcast.
10223 CheckedDowncastToActualType<const Iterator>(&other)->index_;
10228 Iterator(const Iterator& other)
10234 void operator=(const Iterator& other);
10240 }; // class RangeGenerator::Iterator
10257 // The index for the end() iterator. All the elements in the generated
10258 // sequence are indexed (0-based) to aid iterator comparison.
10276 return new Iterator(this, container_.begin());
10279 return new Iterator(this, container_.end());
10285 class Iterator : public ParamIteratorInterface<T> {
10287 Iterator(const ParamGeneratorInterface<T>* base,
10288 typename ContainerType::const_iterator iterator)
10289 : base_(base), iterator_(iterator) {}
10290 virtual ~Iterator() {}
10300 return new Iterator(*this);
10308 // responsible for not calling Current() on an out-of-range iterator.
10316 // iterator is of the same type and we can downcast.
10321 CheckedDowncastToActualType<const Iterator>(&other)->iterator_;
10325 Iterator(const Iterator& other)
10335 // pointer in the wrapping iterator's operator->().
10338 // which is bound by the lifespan of the iterator itself.
10340 }; // class ValuesInIteratorRangeGenerator::Iterator
10488 for (typename TestInfoContainer::iterator test_it = tests_.begin();
10491 for (typename InstantiationContainer::iterator gen_it =
10503 for (typename ParamGenerator<ParamType>::iterator param_it =
10560 for (TestCaseInfoContainer::iterator it = test_case_infos_.begin();
10574 for (TestCaseInfoContainer::iterator it = test_case_infos_.begin();
10600 for (TestCaseInfoContainer::iterator it = test_case_infos_.begin();
13787 return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin());
13790 return new Iterator(this, g1_, g1_.end(), g2_, g2_.end());
13794 class Iterator : public ParamIteratorInterface<ParamType> {
13796 Iterator(const ParamGeneratorInterface<ParamType>* base,
13798 const typename ParamGenerator<T1>::iterator& current1,
13800 const typename ParamGenerator<T2>::iterator& current2)
13806 virtual ~Iterator() {}
13823 return new Iterator(*this);
13828 // iterator is of the same type and we can downcast.
13832 const Iterator* typed_other =
13833 CheckedDowncastToActualType<const Iterator>(&other);
13844 Iterator(const Iterator& other)
13860 // We must report iterator past the end of the range when either of the
13868 void operator=(const Iterator& other);
13871 // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
13872 // current[i]_ is the actual traversing iterator.
13873 const typename ParamGenerator<T1>::iterator begin1_;
13874 const typename ParamGenerator<T1>::iterator end1_;
13875 typename ParamGenerator<T1>::iterator current1_;
13876 const typename ParamGenerator<T2>::iterator begin2_;
13877 const typename ParamGenerator<T2>::iterator end2_;
13878 typename ParamGenerator<T2>::iterator current2_;
13880 }; // class CartesianProductGenerator2::Iterator
13902 return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
13906 return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end());
13910 class Iterator : public ParamIteratorInterface<ParamType> {
13912 Iterator(const ParamGeneratorInterface<ParamType>* base,
13914 const typename ParamGenerator<T1>::iterator& current1,
13916 const typename ParamGenerator<T2>::iterator& current2,
13918 const typename ParamGenerator<T3>::iterator& current3)
13925 virtual ~Iterator() {}
13946 return new Iterator(*this);
13951 // iterator is of the same type and we can downcast.
13955 const Iterator* typed_other =
13956 CheckedDowncastToActualType<const Iterator>(&other);
13968 Iterator(const Iterator& other)
13987 // We must report iterator past the end of the range when either of the
13996 void operator=(const Iterator& other);
13999 // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
14000 // current[i]_ is the actual traversing iterator.
14001 const typename ParamGenerator<T1>::iterator begin1_;
14002 const typename ParamGenerator<T1>::iterator end1_;
14003 typename ParamGenerator<T1>::iterator current1_;
14004 const typename ParamGenerator<T2>::iterator begin2_;
14005 const typename ParamGenerator<T2>::iterator end2_;
14006 typename ParamGenerator<T2>::iterator current2_;
14007 const typename ParamGenerator<T3>::iterator begin3_;
14008 const typename ParamGenerator<T3>::iterator end3_;
14009 typename ParamGenerator<T3>::iterator current3_;
14011 }; // class CartesianProductGenerator3::Iterator
14035 return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
14039 return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
14044 class Iterator : public ParamIteratorInterface<ParamType> {
14046 Iterator(const ParamGeneratorInterface<ParamType>* base,
14048 const typename ParamGenerator<T1>::iterator& current1,
14050 const typename ParamGenerator<T2>::iterator& current2,
14052 const typename ParamGenerator<T3>::iterator& current3,
14054 const typename ParamGenerator<T4>::iterator& current4)
14062 virtual ~Iterator() {}
14087 return new Iterator(*this);
14092 // iterator is of the same type and we can downcast.
14096 const Iterator* typed_other =
14097 CheckedDowncastToActualType<const Iterator>(&other);
14110 Iterator(const Iterator& other)
14133 // We must report iterator past the end of the range when either of the
14143 void operator=(const Iterator& other);
14146 // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
14147 // current[i]_ is the actual traversing iterator.
14148 const typename ParamGenerator<T1>::iterator begin1_;
14149 const typename ParamGenerator<T1>::iterator end1_;
14150 typename ParamGenerator<T1>::iterator current1_;
14151 const typename ParamGenerator<T2>::iterator begin2_;
14152 const typename ParamGenerator<T2>::iterator end2_;
14153 typename ParamGenerator<T2>::iterator current2_;
14154 const typename ParamGenerator<T3>::iterator begin3_;
14155 const typename ParamGenerator<T3>::iterator end3_;
14156 typename ParamGenerator<T3>::iterator current3_;
14157 const typename ParamGenerator<T4>::iterator begin4_;
14158 const typename ParamGenerator<T4>::iterator end4_;
14159 typename ParamGenerator<T4>::iterator current4_;
14161 }; // class CartesianProductGenerator4::Iterator
14186 return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
14190 return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
14195 class Iterator : public ParamIteratorInterface<ParamType> {
14197 Iterator(const ParamGeneratorInterface<ParamType>* base,
14199 const typename ParamGenerator<T1>::iterator& current1,
14201 const typename ParamGenerator<T2>::iterator& current2,
14203 const typename ParamGenerator<T3>::iterator& current3,
14205 const typename ParamGenerator<T4>::iterator& current4,
14207 const typename ParamGenerator<T5>::iterator& current5)
14216 virtual ~Iterator() {}
14245 return new Iterator(*this);
14250 // iterator is of the same type and we can downcast.
14254 const Iterator* typed_other =
14255 CheckedDowncastToActualType<const Iterator>(&other);
14269 Iterator(const Iterator& other)
14295 // We must report iterator past the end of the range when either of the
14306 void operator=(const Iterator& other);
14309 // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
14310 // current[i]_ is the actual traversing iterator.
14311 const typename ParamGenerator<T1>::iterator begin1_;
14312 const typename ParamGenerator<T1>::iterator end1_;
14313 typename ParamGenerator<T1>::iterator current1_;
14314 const typename ParamGenerator<T2>::iterator begin2_;
14315 const typename ParamGenerator<T2>::iterator end2_;
14316 typename ParamGenerator<T2>::iterator current2_;
14317 const typename ParamGenerator<T3>::iterator begin3_;
14318 const typename ParamGenerator<T3>::iterator end3_;
14319 typename ParamGenerator<T3>::iterator current3_;
14320 const typename ParamGenerator<T4>::iterator begin4_;
14321 const typename ParamGenerator<T4>::iterator end4_;
14322 typename ParamGenerator<T4>::iterator current4_;
14323 const typename ParamGenerator<T5>::iterator begin5_;
14324 const typename ParamGenerator<T5>::iterator end5_;
14325 typename ParamGenerator<T5>::iterator current5_;
14327 }; // class CartesianProductGenerator5::Iterator
14356 return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
14360 return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
14365 class Iterator : public ParamIteratorInterface<ParamType> {
14367 Iterator(const ParamGeneratorInterface<ParamType>* base,
14369 const typename ParamGenerator<T1>::iterator& current1,
14371 const typename ParamGenerator<T2>::iterator& current2,
14373 const typename ParamGenerator<T3>::iterator& current3,
14375 const typename ParamGenerator<T4>::iterator& current4,
14377 const typename ParamGenerator<T5>::iterator& current5,
14379 const typename ParamGenerator<T6>::iterator& current6)
14389 virtual ~Iterator() {}
14422 return new Iterator(*this);
14427 // iterator is of the same type and we can downcast.
14431 const Iterator* typed_other =
14432 CheckedDowncastToActualType<const Iterator>(&other);
14447 Iterator(const Iterator& other)
14476 // We must report iterator past the end of the range when either of the
14488 void operator=(const Iterator& other);
14491 // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
14492 // current[i]_ is the actual traversing iterator.
14493 const typename ParamGenerator<T1>::iterator begin1_;
14494 const typename ParamGenerator<T1>::iterator end1_;
14495 typename ParamGenerator<T1>::iterator current1_;
14496 const typename ParamGenerator<T2>::iterator begin2_;
14497 const typename ParamGenerator<T2>::iterator end2_;
14498 typename ParamGenerator<T2>::iterator current2_;
14499 const typename ParamGenerator<T3>::iterator begin3_;
14500 const typename ParamGenerator<T3>::iterator end3_;
14501 typename ParamGenerator<T3>::iterator current3_;
14502 const typename ParamGenerator<T4>::iterator begin4_;
14503 const typename ParamGenerator<T4>::iterator end4_;
14504 typename ParamGenerator<T4>::iterator current4_;
14505 const typename ParamGenerator<T5>::iterator begin5_;
14506 const typename ParamGenerator<T5>::iterator end5_;
14507 typename ParamGenerator<T5>::iterator current5_;
14508 const typename ParamGenerator<T6>::iterator begin6_;
14509 const typename ParamGenerator<T6>::iterator end6_;
14510 typename ParamGenerator<T6>::iterator current6_;
14512 }; // class CartesianProductGenerator6::Iterator
14542 return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
14547 return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
14552 class Iterator : public ParamIteratorInterface<ParamType> {
14554 Iterator(const ParamGeneratorInterface<ParamType>* base,
14556 const typename ParamGenerator<T1>::iterator& current1,
14558 const typename ParamGenerator<T2>::iterator& current2,
14560 const typename ParamGenerator<T3>::iterator& current3,
14562 const typename ParamGenerator<T4>::iterator& current4,
14564 const typename ParamGenerator<T5>::iterator& current5,
14566 const typename ParamGenerator<T6>::iterator& current6,
14568 const typename ParamGenerator<T7>::iterator& current7)
14579 virtual ~Iterator() {}
14616 return new Iterator(*this);
14621 // iterator is of the same type and we can downcast.
14625 const Iterator* typed_other =
14626 CheckedDowncastToActualType<const Iterator>(&other);
14642 Iterator(const Iterator& other)
14674 // We must report iterator past the end of the range when either of the
14687 void operator=(const Iterator& other);
14690 // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
14691 // current[i]_ is the actual traversing iterator.
14692 const typename ParamGenerator<T1>::iterator begin1_;
14693 const typename ParamGenerator<T1>::iterator end1_;
14694 typename ParamGenerator<T1>::iterator current1_;
14695 const typename ParamGenerator<T2>::iterator begin2_;
14696 const typename ParamGenerator<T2>::iterator end2_;
14697 typename ParamGenerator<T2>::iterator current2_;
14698 const typename ParamGenerator<T3>::iterator begin3_;
14699 const typename ParamGenerator<T3>::iterator end3_;
14700 typename ParamGenerator<T3>::iterator current3_;
14701 const typename ParamGenerator<T4>::iterator begin4_;
14702 const typename ParamGenerator<T4>::iterator end4_;
14703 typename ParamGenerator<T4>::iterator current4_;
14704 const typename ParamGenerator<T5>::iterator begin5_;
14705 const typename ParamGenerator<T5>::iterator end5_;
14706 typename ParamGenerator<T5>::iterator current5_;
14707 const typename ParamGenerator<T6>::iterator begin6_;
14708 const typename ParamGenerator<T6>::iterator end6_;
14709 typename ParamGenerator<T6>::iterator current6_;
14710 const typename ParamGenerator<T7>::iterator begin7_;
14711 const typename ParamGenerator<T7>::iterator end7_;
14712 typename ParamGenerator<T7>::iterator current7_;
14714 }; // class CartesianProductGenerator7::Iterator
14747 return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
14752 return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
14758 class Iterator : public ParamIteratorInterface<ParamType> {
14760 Iterator(const ParamGeneratorInterface<ParamType>* base,
14762 const typename ParamGenerator<T1>::iterator& current1,
14764 const typename ParamGenerator<T2>::iterator& current2,
14766 const typename ParamGenerator<T3>::iterator& current3,
14768 const typename ParamGenerator<T4>::iterator& current4,
14770 const typename ParamGenerator<T5>::iterator& current5,
14772 const typename ParamGenerator<T6>::iterator& current6,
14774 const typename ParamGenerator<T7>::iterator& current7,
14776 const typename ParamGenerator<T8>::iterator& current8)
14788 virtual ~Iterator() {}
14829 return new Iterator(*this);
14834 // iterator is of the same type and we can downcast.
14838 const Iterator* typed_other =
14839 CheckedDowncastToActualType<const Iterator>(&other);
14856 Iterator(const Iterator& other)
14891 // We must report iterator past the end of the range when either of the
14905 void operator=(const Iterator& other);
14908 // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
14909 // current[i]_ is the actual traversing iterator.
14910 const typename ParamGenerator<T1>::iterator begin1_;
14911 const typename ParamGenerator<T1>::iterator end1_;
14912 typename ParamGenerator<T1>::iterator current1_;
14913 const typename ParamGenerator<T2>::iterator begin2_;
14914 const typename ParamGenerator<T2>::iterator end2_;
14915 typename ParamGenerator<T2>::iterator current2_;
14916 const typename ParamGenerator<T3>::iterator begin3_;
14917 const typename ParamGenerator<T3>::iterator end3_;
14918 typename ParamGenerator<T3>::iterator current3_;
14919 const typename ParamGenerator<T4>::iterator begin4_;
14920 const typename ParamGenerator<T4>::iterator end4_;
14921 typename ParamGenerator<T4>::iterator current4_;
14922 const typename ParamGenerator<T5>::iterator begin5_;
14923 const typename ParamGenerator<T5>::iterator end5_;
14924 typename ParamGenerator<T5>::iterator current5_;
14925 const typename ParamGenerator<T6>::iterator begin6_;
14926 const typename ParamGenerator<T6>::iterator end6_;
14927 typename ParamGenerator<T6>::iterator current6_;
14928 const typename ParamGenerator<T7>::iterator begin7_;
14929 const typename ParamGenerator<T7>::iterator end7_;
14930 typename ParamGenerator<T7>::iterator current7_;
14931 const typename ParamGenerator<T8>::iterator begin8_;
14932 const typename ParamGenerator<T8>::iterator end8_;
14933 typename ParamGenerator<T8>::iterator current8_;
14935 }; // class CartesianProductGenerator8::Iterator
14969 return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
14974 return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
14980 class Iterator : public ParamIteratorInterface<ParamType> {
14982 Iterator(const ParamGeneratorInterface<ParamType>* base,
14984 const typename ParamGenerator<T1>::iterator& current1,
14986 const typename ParamGenerator<T2>::iterator& current2,
14988 const typename ParamGenerator<T3>::iterator& current3,
14990 const typename ParamGenerator<T4>::iterator& current4,
14992 const typename ParamGenerator<T5>::iterator& current5,
14994 const typename ParamGenerator<T6>::iterator& current6,
14996 const typename ParamGenerator<T7>::iterator& current7,
14998 const typename ParamGenerator<T8>::iterator& current8,
15000 const typename ParamGenerator<T9>::iterator& current9)
15013 virtual ~Iterator() {}
15058 return new Iterator(*this);
15063 // iterator is of the same type and we can downcast.
15067 const Iterator* typed_other =
15068 CheckedDowncastToActualType<const Iterator>(&other);
15086 Iterator(const Iterator& other)
15125 // We must report iterator past the end of the range when either of the
15140 void operator=(const Iterator& other);
15143 // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
15144 // current[i]_ is the actual traversing iterator.
15145 const typename ParamGenerator<T1>::iterator begin1_;
15146 const typename ParamGenerator<T1>::iterator end1_;
15147 typename ParamGenerator<T1>::iterator current1_;
15148 const typename ParamGenerator<T2>::iterator begin2_;
15149 const typename ParamGenerator<T2>::iterator end2_;
15150 typename ParamGenerator<T2>::iterator current2_;
15151 const typename ParamGenerator<T3>::iterator begin3_;
15152 const typename ParamGenerator<T3>::iterator end3_;
15153 typename ParamGenerator<T3>::iterator current3_;
15154 const typename ParamGenerator<T4>::iterator begin4_;
15155 const typename ParamGenerator<T4>::iterator end4_;
15156 typename ParamGenerator<T4>::iterator current4_;
15157 const typename ParamGenerator<T5>::iterator begin5_;
15158 const typename ParamGenerator<T5>::iterator end5_;
15159 typename ParamGenerator<T5>::iterator current5_;
15160 const typename ParamGenerator<T6>::iterator begin6_;
15161 const typename ParamGenerator<T6>::iterator end6_;
15162 typename ParamGenerator<T6>::iterator current6_;
15163 const typename ParamGenerator<T7>::iterator begin7_;
15164 const typename ParamGenerator<T7>::iterator end7_;
15165 typename ParamGenerator<T7>::iterator current7_;
15166 const typename ParamGenerator<T8>::iterator begin8_;
15167 const typename ParamGenerator<T8>::iterator end8_;
15168 typename ParamGenerator<T8>::iterator current8_;
15169 const typename ParamGenerator<T9>::iterator begin9_;
15170 const typename ParamGenerator<T9>::iterator end9_;
15171 typename ParamGenerator<T9>::iterator current9_;
15173 }; // class CartesianProductGenerator9::Iterator
15209 return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
15214 return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
15220 class Iterator : public ParamIteratorInterface<ParamType> {
15222 Iterator(const ParamGeneratorInterface<ParamType>* base,
15224 const typename ParamGenerator<T1>::iterator& current1,
15226 const typename ParamGenerator<T2>::iterator& current2,
15228 const typename ParamGenerator<T3>::iterator& current3,
15230 const typename ParamGenerator<T4>::iterator& current4,
15232 const typename ParamGenerator<T5>::iterator& current5,
15234 const typename ParamGenerator<T6>::iterator& current6,
15236 const typename ParamGenerator<T7>::iterator& current7,
15238 const typename ParamGenerator<T8>::iterator& current8,
15240 const typename ParamGenerator<T9>::iterator& current9,
15242 const typename ParamGenerator<T10>::iterator& current10)
15256 virtual ~Iterator() {}
15305 return new Iterator(*this);
15310 // iterator is of the same type and we can downcast.
15314 const Iterator* typed_other =
15315 CheckedDowncastToActualType<const Iterator>(&other);
15334 Iterator(const Iterator& other)
15376 // We must report iterator past the end of the range when either of the
15392 void operator=(const Iterator& other);
15395 // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
15396 // current[i]_ is the actual traversing iterator.
15397 const typename ParamGenerator<T1>::iterator begin1_;
15398 const typename ParamGenerator<T1>::iterator end1_;
15399 typename ParamGenerator<T1>::iterator current1_;
15400 const typename ParamGenerator<T2>::iterator begin2_;
15401 const typename ParamGenerator<T2>::iterator end2_;
15402 typename ParamGenerator<T2>::iterator current2_;
15403 const typename ParamGenerator<T3>::iterator begin3_;
15404 const typename ParamGenerator<T3>::iterator end3_;
15405 typename ParamGenerator<T3>::iterator current3_;
15406 const typename ParamGenerator<T4>::iterator begin4_;
15407 const typename ParamGenerator<T4>::iterator end4_;
15408 typename ParamGenerator<T4>::iterator current4_;
15409 const typename ParamGenerator<T5>::iterator begin5_;
15410 const typename ParamGenerator<T5>::iterator end5_;
15411 typename ParamGenerator<T5>::iterator current5_;
15412 const typename ParamGenerator<T6>::iterator begin6_;
15413 const typename ParamGenerator<T6>::iterator end6_;
15414 typename ParamGenerator<T6>::iterator current6_;
15415 const typename ParamGenerator<T7>::iterator begin7_;
15416 const typename ParamGenerator<T7>::iterator end7_;
15417 typename ParamGenerator<T7>::iterator current7_;
15418 const typename ParamGenerator<T8>::iterator begin8_;
15419 const typename ParamGenerator<T8>::iterator end8_;
15420 typename ParamGenerator<T8>::iterator current8_;
15421 const typename ParamGenerator<T9>::iterator begin9_;
15422 const typename ParamGenerator<T9>::iterator end9_;
15423 typename ParamGenerator<T9>::iterator current9_;
15424 const typename ParamGenerator<T10>::iterator begin10_;
15425 const typename ParamGenerator<T10>::iterator end10_;
15426 typename ParamGenerator<T10>::iterator current10_;
15428 }; // class CartesianProductGenerator10::Iterator
15829 // ValuesIn(Iterator begin, Iterator end)