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

dan*_*jar 5 c++ this this-pointer std-function

由于std::function可以保存成员函数,因此它必须在某处存储指向对象实例的指针.

如何thisstd::function包含成员函数的指针中获取指针?

Pet*_*ker 8

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

  • @danijar:你为什么不把目标放在你的问题上呢?你的问题没什么意义. (3认同)