C++ c+中的泛型函数保持器+;
所以我知道如何在C中使用C++ c+中的泛型函数保持器+;,c++,function,pointers,generics,typedef,C++,Function,Pointers,Generics,Typedef,所以我知道如何在C中使用typedef++ 但是如果我想要一个通用的函数数组,我能做到吗 例如: foo() { cout << "hello world" << endl; } foo2(int a) { cout << "hello friend number " << a << endl; } var_type[] function_holder = { foo, foo2 } function_holder[0]();
typedef
++
但是如果我想要一个通用的函数数组,我能做到吗
例如:
foo() { cout << "hello world" << endl; }
foo2(int a) { cout << "hello friend number " << a << endl; }
var_type[] function_holder = { foo, foo2 }
function_holder[0]();
function_holder[1](1);
foo(){cout只需使用:
std::function[]={
福,
绑定(foo2,1)
};
对于(自动f:函数)f();
您可以创建一个指向相同类型函数的函数指针数组,但不能按值将函数放入数组。std::any
或std::variant
可能会有所帮助
std::function<void()> functions[] = {
foo,
std::bind( foo2, 1 )
};
for( auto f : functions ) f();