Lines Matching refs:Iterator
3170 return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin());
3173 return new Iterator(this, g1_, g1_.end(), g2_, g2_.end());
3177 class Iterator : public ParamIteratorInterface<ParamType> {
3179 Iterator(const ParamGeneratorInterface<ParamType>* base,
3181 const typename ParamGenerator<T1>::iterator& current1,
3183 const typename ParamGenerator<T2>::iterator& current2)
3189 virtual ~Iterator() {}
3206 return new Iterator(*this);
3211 // iterator is of the same type and we can downcast.
3215 const Iterator* typed_other =
3216 CheckedDowncastToActualType<const Iterator>(&other);
3227 Iterator(const Iterator& other)
3243 // We must report iterator past the end of the range when either of the
3251 void operator=(const Iterator& other);
3254 // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
3255 // current[i]_ is the actual traversing iterator.
3256 const typename ParamGenerator<T1>::iterator begin1_;
3257 const typename ParamGenerator<T1>::iterator end1_;
3258 typename ParamGenerator<T1>::iterator current1_;
3259 const typename ParamGenerator<T2>::iterator begin2_;
3260 const typename ParamGenerator<T2>::iterator end2_;
3261 typename ParamGenerator<T2>::iterator current2_;
3263 }; // class CartesianProductGenerator2::Iterator
3285 return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
3289 return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end());
3293 class Iterator : public ParamIteratorInterface<ParamType> {
3295 Iterator(const ParamGeneratorInterface<ParamType>* base,
3297 const typename ParamGenerator<T1>::iterator& current1,
3299 const typename ParamGenerator<T2>::iterator& current2,
3301 const typename ParamGenerator<T3>::iterator& current3)
3308 virtual ~Iterator() {}
3329 return new Iterator(*this);
3334 // iterator is of the same type and we can downcast.
3338 const Iterator* typed_other =
3339 CheckedDowncastToActualType<const Iterator>(&other);
3351 Iterator(const Iterator& other)
3370 // We must report iterator past the end of the range when either of the
3379 void operator=(const Iterator& other);
3382 // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
3383 // current[i]_ is the actual traversing iterator.
3384 const typename ParamGenerator<T1>::iterator begin1_;
3385 const typename ParamGenerator<T1>::iterator end1_;
3386 typename ParamGenerator<T1>::iterator current1_;
3387 const typename ParamGenerator<T2>::iterator begin2_;
3388 const typename ParamGenerator<T2>::iterator end2_;
3389 typename ParamGenerator<T2>::iterator current2_;
3390 const typename ParamGenerator<T3>::iterator begin3_;
3391 const typename ParamGenerator<T3>::iterator end3_;
3392 typename ParamGenerator<T3>::iterator current3_;
3394 }; // class CartesianProductGenerator3::Iterator
3418 return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
3422 return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
3427 class Iterator : public ParamIteratorInterface<ParamType> {
3429 Iterator(const ParamGeneratorInterface<ParamType>* base,
3431 const typename ParamGenerator<T1>::iterator& current1,
3433 const typename ParamGenerator<T2>::iterator& current2,
3435 const typename ParamGenerator<T3>::iterator& current3,
3437 const typename ParamGenerator<T4>::iterator& current4)
3445 virtual ~Iterator() {}
3470 return new Iterator(*this);
3475 // iterator is of the same type and we can downcast.
3479 const Iterator* typed_other =
3480 CheckedDowncastToActualType<const Iterator>(&other);
3493 Iterator(const Iterator& other)
3516 // We must report iterator past the end of the range when either of the
3526 void operator=(const Iterator& other);
3529 // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
3530 // current[i]_ is the actual traversing iterator.
3531 const typename ParamGenerator<T1>::iterator begin1_;
3532 const typename ParamGenerator<T1>::iterator end1_;
3533 typename ParamGenerator<T1>::iterator current1_;
3534 const typename ParamGenerator<T2>::iterator begin2_;
3535 const typename ParamGenerator<T2>::iterator end2_;
3536 typename ParamGenerator<T2>::iterator current2_;
3537 const typename ParamGenerator<T3>::iterator begin3_;
3538 const typename ParamGenerator<T3>::iterator end3_;
3539 typename ParamGenerator<T3>::iterator current3_;
3540 const typename ParamGenerator<T4>::iterator begin4_;
3541 const typename ParamGenerator<T4>::iterator end4_;
3542 typename ParamGenerator<T4>::iterator current4_;
3544 }; // class CartesianProductGenerator4::Iterator
3569 return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
3573 return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
3578 class Iterator : public ParamIteratorInterface<ParamType> {
3580 Iterator(const ParamGeneratorInterface<ParamType>* base,
3582 const typename ParamGenerator<T1>::iterator& current1,
3584 const typename ParamGenerator<T2>::iterator& current2,
3586 const typename ParamGenerator<T3>::iterator& current3,
3588 const typename ParamGenerator<T4>::iterator& current4,
3590 const typename ParamGenerator<T5>::iterator& current5)
3599 virtual ~Iterator() {}
3628 return new Iterator(*this);
3633 // iterator is of the same type and we can downcast.
3637 const Iterator* typed_other =
3638 CheckedDowncastToActualType<const Iterator>(&other);
3652 Iterator(const Iterator& other)
3678 // We must report iterator past the end of the range when either of the
3689 void operator=(const Iterator& other);
3692 // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
3693 // current[i]_ is the actual traversing iterator.
3694 const typename ParamGenerator<T1>::iterator begin1_;
3695 const typename ParamGenerator<T1>::iterator end1_;
3696 typename ParamGenerator<T1>::iterator current1_;
3697 const typename ParamGenerator<T2>::iterator begin2_;
3698 const typename ParamGenerator<T2>::iterator end2_;
3699 typename ParamGenerator<T2>::iterator current2_;
3700 const typename ParamGenerator<T3>::iterator begin3_;
3701 const typename ParamGenerator<T3>::iterator end3_;
3702 typename ParamGenerator<T3>::iterator current3_;
3703 const typename ParamGenerator<T4>::iterator begin4_;
3704 const typename ParamGenerator<T4>::iterator end4_;
3705 typename ParamGenerator<T4>::iterator current4_;
3706 const typename ParamGenerator<T5>::iterator begin5_;
3707 const typename ParamGenerator<T5>::iterator end5_;
3708 typename ParamGenerator<T5>::iterator current5_;
3710 }; // class CartesianProductGenerator5::Iterator
3739 return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
3743 return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
3748 class Iterator : public ParamIteratorInterface<ParamType> {
3750 Iterator(const ParamGeneratorInterface<ParamType>* base,
3752 const typename ParamGenerator<T1>::iterator& current1,
3754 const typename ParamGenerator<T2>::iterator& current2,
3756 const typename ParamGenerator<T3>::iterator& current3,
3758 const typename ParamGenerator<T4>::iterator& current4,
3760 const typename ParamGenerator<T5>::iterator& current5,
3762 const typename ParamGenerator<T6>::iterator& current6)
3772 virtual ~Iterator() {}
3805 return new Iterator(*this);
3810 // iterator is of the same type and we can downcast.
3814 const Iterator* typed_other =
3815 CheckedDowncastToActualType<const Iterator>(&other);
3830 Iterator(const Iterator& other)
3859 // We must report iterator past the end of the range when either of the
3871 void operator=(const Iterator& other);
3874 // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
3875 // current[i]_ is the actual traversing iterator.
3876 const typename ParamGenerator<T1>::iterator begin1_;
3877 const typename ParamGenerator<T1>::iterator end1_;
3878 typename ParamGenerator<T1>::iterator current1_;
3879 const typename ParamGenerator<T2>::iterator begin2_;
3880 const typename ParamGenerator<T2>::iterator end2_;
3881 typename ParamGenerator<T2>::iterator current2_;
3882 const typename ParamGenerator<T3>::iterator begin3_;
3883 const typename ParamGenerator<T3>::iterator end3_;
3884 typename ParamGenerator<T3>::iterator current3_;
3885 const typename ParamGenerator<T4>::iterator begin4_;
3886 const typename ParamGenerator<T4>::iterator end4_;
3887 typename ParamGenerator<T4>::iterator current4_;
3888 const typename ParamGenerator<T5>::iterator begin5_;
3889 const typename ParamGenerator<T5>::iterator end5_;
3890 typename ParamGenerator<T5>::iterator current5_;
3891 const typename ParamGenerator<T6>::iterator begin6_;
3892 const typename ParamGenerator<T6>::iterator end6_;
3893 typename ParamGenerator<T6>::iterator current6_;
3895 }; // class CartesianProductGenerator6::Iterator
3925 return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
3930 return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
3935 class Iterator : public ParamIteratorInterface<ParamType> {
3937 Iterator(const ParamGeneratorInterface<ParamType>* base,
3939 const typename ParamGenerator<T1>::iterator& current1,
3941 const typename ParamGenerator<T2>::iterator& current2,
3943 const typename ParamGenerator<T3>::iterator& current3,
3945 const typename ParamGenerator<T4>::iterator& current4,
3947 const typename ParamGenerator<T5>::iterator& current5,
3949 const typename ParamGenerator<T6>::iterator& current6,
3951 const typename ParamGenerator<T7>::iterator& current7)
3962 virtual ~Iterator() {}
3999 return new Iterator(*this);
4004 // iterator
4008 const Iterator* typed_other =
4009 CheckedDowncastToActualType<const Iterator>(&other);
4025 Iterator(const Iterator& other)
4057 // We must report iterator past the end of the range when either of the
4070 void operator=(const Iterator& other);
4073 // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
4074 // current[i]_ is the actual traversing iterator.
4075 const typename ParamGenerator<T1>::iterator begin1_;
4076 const typename ParamGenerator<T1>::iterator end1_;
4077 typename ParamGenerator<T1>::iterator current1_;
4078 const typename ParamGenerator<T2>::iterator begin2_;
4079 const typename ParamGenerator<T2>::iterator end2_;
4080 typename ParamGenerator<T2>::iterator current2_;
4081 const typename ParamGenerator<T3>::iterator begin3_;
4082 const typename ParamGenerator<T3>::iterator end3_;
4083 typename ParamGenerator<T3>::iterator current3_;
4084 const typename ParamGenerator<T4>::iterator begin4_;
4085 const typename ParamGenerator<T4>::iterator end4_;
4086 typename ParamGenerator<T4>::iterator current4_;
4087 const typename ParamGenerator<T5>::iterator begin5_;
4088 const typename ParamGenerator<T5>::iterator end5_;
4089 typename ParamGenerator<T5>::iterator current5_;
4090 const typename ParamGenerator<T6>::iterator begin6_;
4091 const typename ParamGenerator<T6>::iterator end6_;
4092 typename ParamGenerator<T6>::iterator current6_;
4093 const typename ParamGenerator<T7>::iterator begin7_;
4094 const typename ParamGenerator<T7>::iterator end7_;
4095 typename ParamGenerator<T7>::iterator current7_;
4097 }; // class CartesianProductGenerator7::Iterator
4130 return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
4135 return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
4141 class Iterator : public ParamIteratorInterface<ParamType> {
4143 Iterator(const ParamGeneratorInterface<ParamType>* base,
4145 const typename ParamGenerator<T1>::iterator& current1,
4147 const typename ParamGenerator<T2>::iterator& current2,
4149 const typename ParamGenerator<T3>::iterator& current3,
4151 const typename ParamGenerator<T4>::iterator& current4,
4153 const typename ParamGenerator<T5>::iterator& current5,
4155 const typename ParamGenerator<T6>::iterator& current6,
4157 const typename ParamGenerator<T7>::iterator& current7,
4159 const typename ParamGenerator<T8>::iterator& current8)
4171 virtual ~Iterator() {}
4212 return new Iterator(*this);
4217 // iterator is of the same type and we can downcast.
4221 const Iterator* typed_other =
4222 CheckedDowncastToActualType<const Iterator>(&other);
4239 Iterator(const Iterator& other)
4274 // We must report iterator past the end of the range when either of the
4288 void operator=(const Iterator& other);
4291 // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
4292 // current[i]_ is the actual traversing iterator.
4293 const typename ParamGenerator<T1>::iterator begin1_;
4294 const typename ParamGenerator<T1>::iterator end1_;
4295 typename ParamGenerator<T1>::iterator current1_;
4296 const typename ParamGenerator<T2>::iterator begin2_;
4297 const typename ParamGenerator<T2>::iterator end2_;
4298 typename ParamGenerator<T2>::iterator current2_;
4299 const typename ParamGenerator<T3>::iterator begin3_;
4300 const typename ParamGenerator<T3>::iterator end3_;
4301 typename ParamGenerator<T3>::iterator current3_;
4302 const typename ParamGenerator<T4>::iterator begin4_;
4303 const typename ParamGenerator<T4>::iterator end4_;
4304 typename ParamGenerator<T4>::iterator current4_;
4305 const typename ParamGenerator<T5>::iterator begin5_;
4306 const typename ParamGenerator<T5>::iterator end5_;
4307 typename ParamGenerator<T5>::iterator current5_;
4308 const typename ParamGenerator<T6>::iterator begin6_;
4309 const typename ParamGenerator<T6>::iterator end6_;
4310 typename ParamGenerator<T6>::iterator current6_;
4311 const typename ParamGenerator<T7>::iterator begin7_;
4312 const typename ParamGenerator<T7>::iterator end7_;
4313 typename ParamGenerator<T7>::iterator current7_;
4314 const typename ParamGenerator<T8>::iterator begin8_;
4315 const typename ParamGenerator<T8>::iterator end8_;
4316 typename ParamGenerator<T8>::iterator current8_;
4318 }; // class CartesianProductGenerator8::Iterator
4352 return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
4357 return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
4363 class Iterator : public ParamIteratorInterface<ParamType> {
4365 Iterator(const ParamGeneratorInterface<ParamType>* base,
4367 const typename ParamGenerator<T1>::iterator& current1,
4369 const typename ParamGenerator<T2>::iterator& current2,
4371 const typename ParamGenerator<T3>::iterator& current3,
4373 const typename ParamGenerator<T4>::iterator& current4,
4375 const typename ParamGenerator<T5>::iterator& current5,
4377 const typename ParamGenerator<T6>::iterator& current6,
4379 const typename ParamGenerator<T7>::iterator& current7,
4381 const typename ParamGenerator<T8>::iterator& current8,
4383 const typename ParamGenerator<T9>::iterator& current9)
4396 virtual ~Iterator() {}
4441 return new Iterator(*this);
4446 // iterator is of the same type and we can downcast.
4450 const Iterator* typed_other =
4451 CheckedDowncastToActualType<const Iterator>(&other);
4469 Iterator(const Iterator& other)
4508 // We must report iterator past the end of the range when either of the
4523 void operator=(const Iterator& other);
4526 // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
4527 // current[i]_ is the actual traversing iterator.
4528 const typename ParamGenerator<T1>::iterator begin1_;
4529 const typename ParamGenerator<T1>::iterator end1_;
4530 typename ParamGenerator<T1>::iterator current1_;
4531 const typename ParamGenerator<T2>::iterator begin2_;
4532 const typename ParamGenerator<T2>::iterator end2_;
4533 typename ParamGenerator<T2>::iterator current2_;
4534 const typename ParamGenerator<T3>::iterator begin3_;
4535 const typename ParamGenerator<T3>::iterator end3_;
4536 typename ParamGenerator<T3>::iterator current3_;
4537 const typename ParamGenerator<T4>::iterator begin4_;
4538 const typename ParamGenerator<T4>::iterator end4_;
4539 typename ParamGenerator<T4>::iterator current4_;
4540 const typename ParamGenerator<T5>::iterator begin5_;
4541 const typename ParamGenerator<T5>::iterator end5_;
4542 typename ParamGenerator<T5>::iterator current5_;
4543 const typename ParamGenerator<T6>::iterator begin6_;
4544 const typename ParamGenerator<T6>::iterator end6_;
4545 typename ParamGenerator<T6>::iterator current6_;
4546 const typename ParamGenerator<T7>::iterator begin7_;
4547 const typename ParamGenerator<T7>::iterator end7_;
4548 typename ParamGenerator<T7>::iterator current7_;
4549 const typename ParamGenerator<T8>::iterator begin8_;
4550 const typename ParamGenerator<T8>::iterator end8_;
4551 typename ParamGenerator<T8>::iterator current8_;
4552 const typename ParamGenerator<T9>::iterator begin9_;
4553 const typename ParamGenerator<T9>::iterator end9_;
4554 typename ParamGenerator<T9>::iterator current9_;
4556 }; // class CartesianProductGenerator9::Iterator
4592 return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
4597 return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
4603 class Iterator : public ParamIteratorInterface<ParamType> {
4605 Iterator(const ParamGeneratorInterface<ParamType>* base,
4607 const typename ParamGenerator<T1>::iterator& current1,
4609 const typename ParamGenerator<T2>::iterator& current2,
4611 const typename ParamGenerator<T3>::iterator& current3,
4613 const typename ParamGenerator<T4>::iterator& current4,
4615 const typename ParamGenerator<T5>::iterator& current5,
4617 const typename ParamGenerator<T6>::iterator& current6,
4619 const typename ParamGenerator<T7>::iterator& current7,
4621 const typename ParamGenerator<T8>::iterator& current8,
4623 const typename ParamGenerator<T9>::iterator& current9,
4625 const typename ParamGenerator<T10>::iterator& current10)
4639 virtual ~Iterator() {}
4688 return new Iterator(*this);
4693 // iterator is of the same type and we can downcast.
4697 const Iterator* typed_other =
4698 CheckedDowncastToActualType<const Iterator>(&other);
4717 Iterator(const Iterator& other)
4759 // We must report iterator past the end of the range when either of the
4775 void operator=(const Iterator& other);
4778 // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
4779 // current[i]_ is the actual traversing iterator.
4780 const typename ParamGenerator<T1>::iterator begin1_;
4781 const typename ParamGenerator<T1>::iterator end1_;
4782 typename ParamGenerator<T1>::iterator current1_;
4783 const typename ParamGenerator<T2>::iterator begin2_;
4784 const typename ParamGenerator<T2>::iterator end2_;
4785 typename ParamGenerator<T2>::iterator current2_;
4786 const typename ParamGenerator<T3>::iterator begin3_;
4787 const typename ParamGenerator<T3>::iterator end3_;
4788 typename ParamGenerator<T3>::iterator current3_;
4789 const typename ParamGenerator<T4>::iterator begin4_;
4790 const typename ParamGenerator<T4>::iterator end4_;
4791 typename ParamGenerator<T4>::iterator current4_;
4792 const typename ParamGenerator<T5>::iterator begin5_;
4793 const typename ParamGenerator<T5>::iterator end5_;
4794 typename ParamGenerator<T5>::iterator current5_;
4795 const typename ParamGenerator<T6>::iterator begin6_;
4796 const typename ParamGenerator<T6>::iterator end6_;
4797 typename ParamGenerator<T6>::iterator current6_;
4798 const typename ParamGenerator<T7>::iterator begin7_;
4799 const typename ParamGenerator<T7>::iterator end7_;
4800 typename ParamGenerator<T7>::iterator current7_;
4801 const typename ParamGenerator<T8>::iterator begin8_;
4802 const typename ParamGenerator<T8>::iterator end8_;
4803 typename ParamGenerator<T8>::iterator current8_;
4804 const typename ParamGenerator<T9>::iterator begin9_;
4805 const typename ParamGenerator<T9>::iterator end9_;
4806 typename ParamGenerator<T9>::iterator current9_;
4807 const typename ParamGenerator<T10>::iterator begin10_;
4808 const typename ParamGenerator<T10>::iterator end10_;
4809 typename ParamGenerator<T10>::iterator current10_;
4811 }; // class CartesianProductGenerator10::Iterator