Advance should not be called on beyond-of-range iterators so no component iterators must be beyond end of range, either.
| 14220 | // Advance should not be called on beyond-of-range iterators |
| 14221 | // so no component iterators must be beyond end of range, either. |
| 14222 | virtual void Advance() { |
| 14223 | assert(!AtEnd()); |
| 14224 | ++current5_; |
| 14225 | if (current5_ == end5_) { |
| 14226 | current5_ = begin5_; |
| 14227 | ++current4_; |
| 14228 | } |
| 14229 | if (current4_ == end4_) { |
| 14230 | current4_ = begin4_; |
| 14231 | ++current3_; |
| 14232 | } |
| 14233 | if (current3_ == end3_) { |
| 14234 | current3_ = begin3_; |
| 14235 | ++current2_; |
| 14236 | } |
| 14237 | if (current2_ == end2_) { |
| 14238 | current2_ = begin2_; |
| 14239 | ++current1_; |
| 14240 | } |
| 14241 | ComputeCurrentValue(); |
| 14242 | } |
| 14243 | virtual ParamIteratorInterface<ParamType>* Clone() const { |
| 14244 | return new Iterator(*this); |
| 14245 | } |
nothing calls this directly
no outgoing calls
no test coverage detected