Boost::foreach is very useful for iterating over a sequence and doing something that depends only on the iterated element, e.g.,
BOOST_FOREACH(const Foo &f, foos)
  cout << f.bar() << endl;

  However, I often need to iterate over a sequence and do some operation that depends on both the iterated element and the iteration index. E.g., I would like something like
BOOST_FOREACH(size_t i, const Foo &f, foos)
  cout << "The bar of element " << i << " is " << f.bar() << endl;

  Is there an easy way to do so?

  Thanks & Bye,