#include <tr1/memory>
#include <functional>
struct Foo {
void test(std::tr1::shared_ptr<int> i) {}
};
int main() {
Foo f;
std::function<void(std::tr1::shared_ptr<int>)> func = std::bind(&Foo::test, f, std::placeholders::_1);
return 0;
}
I2luY2x1ZGUgPHRyMS9tZW1vcnk+CiNpbmNsdWRlIDxmdW5jdGlvbmFsPgoKc3RydWN0IEZvbyB7CiAgICB2b2lkIHRlc3Qoc3RkOjp0cjE6OnNoYXJlZF9wdHI8aW50PiBpKSB7fQp9OwoKaW50IG1haW4oKSB7CiAgICBGb28gZjsKICAgIHN0ZDo6ZnVuY3Rpb248dm9pZChzdGQ6OnRyMTo6c2hhcmVkX3B0cjxpbnQ+KT4gZnVuYyA9IHN0ZDo6YmluZCgmRm9vOjp0ZXN0LCBmLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzEpOwogIAogICAgcmV0dXJuIDA7Cn0K