首页主机资讯如何通过std::invoke调用成员函数指针

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

时间2024-08-16 16:30:03发布访客分类主机资讯浏览910
导读:要通过std::invoke调用成员函数指针,可以使用std::mem_fn将成员函数指针转换为可调用对象。例如: #include <functional> #include <iostream> struct...

要通过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

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何通过std::invoke调用成员函数指针
本文地址: https://pptw.com/jishu/694330.html
std::invoke与std::apply有何区别 std::invoke_result在c++中的作用是什么

游客 回复需填写必要信息