由于std::function
可容纳成员函数,所以它必须在一些地方保存一个指向对象实例。
我怎样才能获取this
从一个指针std::function
保存一个成员函数?
由于std::function
可容纳成员函数,所以它必须在一些地方保存一个指向对象实例。
我怎样才能获取this
从一个指针std::function
保存一个成员函数?
类型的对象std::function
保持一个可调用对象 。 一个指针,指向成员函数是一种可调用对象的; 它可以与适当的类类型的参数,再加上它需要任何额外的参数来调用。 例如:
struct S {
void f(int);
};
std::function<void(S, int)> g(&S::f);
调用它,传递类型的对象S
:
S s;
g(s, 3);
需要注意的是, std::function
对象不持有S
对象; 当你调用它的函数指针被绑定到一个对象时,它是唯一。