
18 Jun
2009
18 Jun
'09
6:45 a.m.
Zachary Turner wrote:
Suppose I've got a concrete instance C of some class, and a pair of iterators X and Y representing a range [X, Y). I want to do the following:
int a, b, c; while (X != Y) { C.foo(*X, a, b, c); ++X; }
I can type it out like that, but actually X and Y are zip_iterators, and it's hard for me to figure out how to parameterize the zip_iterator to instantiate it. I tried the following:
I would try (using boost.iterator and boost.range): BOOST_FOREACH( <value type of iterator> x, boost::make_iterator_range( X, Y ) ) { C.foo( x, a, b, c ); } Perhaps you know the value type of the iterator or you should be able to derive it.