我想创建一个可以在以后调用的函数对象(回调) 对象和该对象的成员函数。
class A
{
public:
void AnyMethod() { cout << "Hello" << endl; }
};
int main()
{
A a;
function<???>f1(&A::AnyFunc, &a); // ?????
...
f1();
}
我有点困惑,因为创建一个线程非常简单:
thread t1 ( &A::AnyFunc, &a);
...
t1.join();
如果我将它与lamba函数一起使用很简单,但这是一个我想避免的开销。
function<void(void)> f2( [&a](){ a.AnyFunc(); } ); // works fine
也许有更好的方法来获取可调用的对象?
答案 0 :(得分:2)
std::function<void()> f1 = std::bind(&A::AnyMethod, &a);