Advance should not be called on beyond-of-range iterators so no component iterators must be beyond end of range, either.
| 14583 | // Advance should not be called on beyond-of-range iterators |
| 14584 | // so no component iterators must be beyond end of range, either. |
| 14585 | virtual void Advance() { |
| 14586 | assert(!AtEnd()); |
| 14587 | ++current7_; |
| 14588 | if (current7_ == end7_) { |
| 14589 | current7_ = begin7_; |
| 14590 | ++current6_; |
| 14591 | } |
| 14592 | if (current6_ == end6_) { |
| 14593 | current6_ = begin6_; |
| 14594 | ++current5_; |
| 14595 | } |
| 14596 | if (current5_ == end5_) { |
| 14597 | current5_ = begin5_; |
| 14598 | ++current4_; |
| 14599 | } |
| 14600 | if (current4_ == end4_) { |
| 14601 | current4_ = begin4_; |
| 14602 | ++current3_; |
| 14603 | } |
| 14604 | if (current3_ == end3_) { |
| 14605 | current3_ = begin3_; |
| 14606 | ++current2_; |
| 14607 | } |
| 14608 | if (current2_ == end2_) { |
| 14609 | current2_ = begin2_; |
| 14610 | ++current1_; |
| 14611 | } |
| 14612 | ComputeCurrentValue(); |
| 14613 | } |
| 14614 | virtual ParamIteratorInterface<ParamType>* Clone() const { |
| 14615 | return new Iterator(*this); |
| 14616 | } |
nothing calls this directly
no outgoing calls
no test coverage detected