如何通过std::invoke调用成员函数指针
导读:要通过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_fn将Foo::memberFunction转换为可调用对象memFn,最后使用std::invoke调用成员函数指针并传递实例对象foo和参数20。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何通过std::invoke调用成员函数指针
本文地址: https://pptw.com/jishu/694330.html
