Robert Jones wrote:
Thanks Ovanes - I'm sure you will understand that my real code is a bit more complicated then doubling ints! Since both bind and lambda are pretty much superceded by phoenix now, perhaps you could also supply the phoenix version?
- Rob.
Rob - I highly recommend moving to phoenix (despite comments made later in this thread). The library is extremely powerful and stable and has been conditionally accepted ( <http://lists.boost.org/boost-announce/2008/10/0205.php> ). The documentation is excellent and the support is speedy. I find phoenix constructs to be far more readable than boost.lambda resulting in overall improved understanding of the code's intent. Documentation can be found here: <http://www.boost.org/doc/libs/1_42_0/libs/spirit/phoenix/doc/html/index.html> Here is your example using phoenix ------------------- #include <iostream> #include <vector> #include <boost/spirit/include/phoenix.hpp> int main() { using namespace boost::phoenix::arg_names; std::vector< int > vec; // fill the vector with something for( int i=0; i < 10; ++i ) { vec.push_back( i ); } // double them all std::for_each( vec.begin(), vec.end(), ( arg1 *= 2 ) ); // print them all out std::for_each( vec.begin(), vec.end(), ( std::cout << arg1 << " " ) ); std::cout << std::endl; return 0; } -------------------------------------------------------------- Hope this helps some - michael -- ---------------------------------- Michael Caisse Object Modeling Designs www.objectmodelingdesigns.com