如何通过std::invoke调用成员函数指针

avatar
作者
猴君
阅读量:0

要通过std::invoke调用成员函数指针,可以使用std::mem_fn将成员函数指针转换为可调用对象。例如:

#include <functional> #include <iostream>  struct Foo {     int data = 10;     void memberFunction(int value) {         std::cout << "data: " << data << ", value: " << value << std::endl;     } };  int main() {     Foo foo;      auto memFn = std::mem_fn(&Foo::memberFunction);     std::invoke(memFn, foo, 20);      return 0; } 

在上面的示例中,我们定义了一个结构体Foo,其中包含一个成员函数memberFunction和一个成员变量data。然后使用std::mem_fnFoo::memberFunction转换为可调用对象memFn,最后使用std::invoke调用成员函数指针并传递实例对象foo和参数20

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!