
Kobi Cohen-Arazi wrote:
Hi,
I've tried that, and I got a bunch of errors. I'm using boost::bind for that, not boost::lambda. Here is the error
The following line: std::transform(array.begin(), array.end(), std::back_inserter(tr), bind(&std::string::replace, bind(&Foo::get, _1), 0, 5, ""));
generates: error: no matching function for call to 'bind(<unknown type>, boost::_bi::bind_t<const std::string&, boost::_mfi::cmf0<const std::string&, Foo>, boost::_bi::list1<boost::arg<1> > >, int, uint32_t&, const char [1])'
Hmmm ... the <unknown type> is suspicious. The problem might be that &std::string::replace is ambiguous, as it is overloaded. Try this: std::string & (std::string::*rep)(std::string::size_type, std::string::size_type, const char *) = &std::string::replace; std::transform(array.begin(), array.end(), std::back_inserter(tr), bind(rep, bind(&Foo::get, _1), 0, 5, "")); Sebastian Redl