
27 Oct
2008
27 Oct
'08
12:58 p.m.
David Abrahams skrev:
OK, BOOST_FOREACH aside, iterating over a range returned as a pair of iterators can be painful and ugly:
vertex_iterator pv, ve; tie(pv, ve) = vertices(g); // unpack the pair returned by vertices for (; pv != pe; ++pv) { ... }
However, we can make it much nicer, e.g.:
for (vertex_iterator pv,ve = xxx(pv,vertices(g)); pv != ve; ++pv) { ... }
My only problem is how to spell xxx. The attached proof-of-concept uses operator%, but I don't feel particularly good about that choice either. Ideas?
What is the usecase here? I'm curious on why it isn't covered by BOOST_FOREACH and if that case really is common enough for a special solution like this. / Jonas