温馨提示×

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

c++
小樊
87
2024-08-16 10:50:33
栏目: 编程语言

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

0