如何从的std ::函数这个指针?(How to get this pointer from std

2019-08-18 16:28发布

由于std::function可容纳成员函数,所以它必须在一些地方保存一个指向对象实例。

我怎样才能获取this从一个指针std::function保存一个成员函数?

Answer 1:

类型的对象std::function保持一个可调用对象 。 一个指针,指向成员函数是一种可调用对象的; 它可以与适当的类类型的参数,再加上它需要任何额外的参数来调用。 例如:

struct S {
    void f(int);
};
std::function<void(S, int)> g(&S::f);

调用它,传递类型的对象S

S s;
g(s, 3);

需要注意的是, std::function对象持有S对象; 当你调用它的函数指针被绑定到一个对象时,它是唯一。



文章来源: How to get this pointer from std::function?