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

   2024-10-01 7170
核心提示:要通过std::invoke调用成员函数指针,可以使用std::mem_fn将成员函数指针转换为可调用对象。例如:#include functional#include

要通过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_fn将Foo::memberFunction转换为可调用对象memFn,最后使用std::invoke调用成员函数指针并传递实例对象foo和参数20。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号