#include <tr1/memory>
#include <functional>
#include <tr1/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+CiNpbmNsdWRlIDxmdW5jdGlvbmFsPgojaW5jbHVkZSA8dHIxL2Z1bmN0aW9uYWw+CgpzdHJ1Y3QgRm9vIHsKICAgIHZvaWQgdGVzdChzdGQ6OnRyMTo6c2hhcmVkX3B0cjxpbnQ+IGkpIHt9Cn07CgppbnQgbWFpbigpIHsKICAgIEZvbyBmOwogICAgc3RkOjpmdW5jdGlvbjx2b2lkKHN0ZDo6dHIxOjpzaGFyZWRfcHRyPGludD4pPiBmdW5jID0gc3RkOjpiaW5kKCZGb286OnRlc3QsIGYsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSk7CiAgCiAgICByZXR1cm4gMDsKfQo=
prog.cpp: In function 'int main()':
prog.cpp:11:68: error: conversion from 'std::_Bind_helper<false, void (Foo::*)(std::tr1::shared_ptr<int>), Foo&, const std::_Placeholder<1>&>::type {aka std::_Bind<std::_Mem_fn<void (Foo::*)(std::tr1::shared_ptr<int>)>(Foo, std::_Placeholder<1>)>}' to non-scalar type 'std::function<void(std::tr1::shared_ptr<int>)>' requested
std::function<void(std::tr1::shared_ptr<int>)> func = std::bind(&Foo::test, f, std::placeholders::_1);
^