我想获取函数的类型并创建一个std::vector
,例如:
int foo(int a[], int n) { return 1; }
int bar(int a[], int n) { return 2; }
而像这样的函数向量将是:
std::vector< std::function<int(int[],int)> > v;
通常情况下,decltype()
更好用,例如:
std::vector< decltype(foo) > v;
然而,这将导致编译错误。
我猜原因是 decltype()
无法区分
int (*func)(int[], int)
std::function<int(int[], int)>
有没有办法解决这个问题?
std::function
) 应该适用于不同的函数,例如 foo 和 bar 吗? - Tobi Akinyemi