#include <boost/phoenix.hpp> #include <boost/typeof/typeof.hpp> #include <iostream> #include <vector> #include <algorithm> int main() { using boost::phoenix::lambda; using boost::phoenix::let; using boost::phoenix::ref; using boost::phoenix::construct; using boost::phoenix::local_names::_a; using boost::phoenix::arg_names::_1; BOOST_AUTO( generator , (lambda ( _a = val(_1) ) [ std::cout << _a << " " , _a++ ]) ); int i = 0; std::vector<int> v(10); std::for_each(v.begin(), v.end(), generator(0)); }