dan*_*jar 5 c++ this this-pointer std-function
由于std::function可以保存成员函数,因此它必须在某处存储指向对象实例的指针.
如何this从std::function包含成员函数的指针中获取指针?
类型的对象std::function包含可调用对象.指向成员函数的指针是一种可调用对象; 可以使用相应类类型的参数以及它需要的任何其他参数来调用它.例如:
struct S {
void f(int);
};
std::function<void(S, int)> g(&S::f);
Run Code Online (Sandbox Code Playgroud)
要调用它,传递一个类型为的对象S:
S s;
g(s, 3);
Run Code Online (Sandbox Code Playgroud)
请注意,std::function对象也不会持有S对象; 只有当你调用函数指针绑定到一个对象时才会这样.