On Tue, Mar 27, 2012 at 8:24 PM, Thomas Heller <thom.heller@googlemail.com> wrote:

You might also want to consider phoenix::lambda, it is like protect, but slightly more powerful.
your example would then read:
#include <boost/phoenix.hpp>

int main( )
{
    std::vector<int> v;
    v += 0,1,2,3,4,5,6;
    using boost::phoenix::bind;
    using boost::phoenix::lambda;
    using boost::phoenix::placeholders::_1;
    using boost::phoenix::local_names::_1;

    for_each( v.begin( ), v.end( ),
        bind(g, lambda(_a = _1)[bind(f, _a)]));

    return 0;
}


Please don't remind me! I'd love to, but I'm stuck in the antediluvian days of 1.37!

- Rob.