假设我有两个功能:
void a(int arg1) { ... }
void b(int arg1, arg2) { ... }
而且我还有一个带有我要调用的函数名称的字符串,以及一个包含所有参数的数组:
string func_name = "b"; // 'a' or 'b'
int args[] = { 1, 2 }; // has either 1 or 2 values
我需要动态调用该函数。使用没有参数的函数真的很容易,我刚刚创建了一个映射(字符串 function_name => 指向函数的指针)。
现在我还想传递参数,所以我想将数组转换为实际参数,如下所示:
auto f = std::bind(b, args); // Doesn't compile, requires 1,2 as arguments
我希望问题很清楚并且可以解决。
谢谢