I just wanted to transform a vector of integers into a vecotr of strings, doesn't seem to be asking much

transform(ilabels.begin(), ilabels.end(), labels.begin(), lexical_cast<string>(_1));

gcc 4.0.2 doesn't like it at all

/usr/include/boost/lexical_cast.hpp:144: error: 'const class boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::bitwise_action<boost::lambda::leftshift_action>, boost::tuples::tuple<std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >&, boost::lambda::lambda_functor<boost::lambda::placeholder<1> >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >' has no member named 'fail'

<begin polemic, use flame retardant>
Is it only me or does lambda lack orthogonality with anything else? Whenever I use lambda for anything non isomorphic to the the plain vanilla examples, the compiler goes ballistic
<end polemic>

Thanks


Antonio