c – 如何从std :: function获取此指针?

由于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对象;只有当你调用函数指针绑定到一个对象时才会这样.

转载注明原文:c – 如何从std :: function获取此指针? - 代码日志