I believe boost.bind has the capability to look through pointers and smart pointers to transparently process the pointed-to objects. Does boost.lambda.bind also have this capability?
As your code demonstrates, lambda.bind works for pointers, but not for smart pointers.