You don't say what you expect the transform
to do; presumably it's to invoke each PayOff
object on some value. In that case the functor should be:
bind2nd(mem_fun(&PayOff::operator()),some_value)
or, for those not stuck in the past,
[=](PayOff* p){(*p)(some_value;}}
or
bind(&PayOff::operator(), _1, some_value);
You are instead trying to bind to this
which, in a global function, doesn't exist. In a member function, it would exist, but wouldn't make sense as an argument to a functor that expects a double
.