因为 std::function
可以保存成员函数,所以它必须在某处存储一个指向对象实例的指针。
如何从包含成员函数的 std::function
中获取 this
指针?
最佳答案
std::function
类型的对象包含一个可调用对象。指向成员函数的指针是一种可调用对象;可以使用适当类类型的参数以及它需要的任何其他参数来调用它。例如:
struct S {
void f(int);
};
std::function<void(S, int)> g(&S::f);
要调用它,传递一个 S
类型的对象:
S s;
g(s, 3);
请注意,std::function
对象不包含S
对象;只有当您调用它时,函数指针才会绑定(bind)到一个对象。
关于c++ - 如何从 std::function 获取这个指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15747669/