小编Q. *_*ang的帖子

获取功能的decltype

我想得到一个函数的类型并创建std::vector它.例如,我有

int foo(int a[], int n) { return 1; }
int bar(int a[], int n) { return 2; }
Run Code Online (Sandbox Code Playgroud)

和这样的函数的向量将是:

std::vector< std::function<int(int[],int)> > v;
Run Code Online (Sandbox Code Playgroud)

总的来说,一个decltype()会更好,比如:

std::vector< decltype(foo) > v;
Run Code Online (Sandbox Code Playgroud)

但是,这将导致编译错误.

我猜原因是decltype()无法区分

int (*func)(int[], int)
std::function<int(int[], int)>
Run Code Online (Sandbox Code Playgroud)

有没有办法来解决这个问题?

c++ decltype

8
推荐指数
2
解决办法
1643
查看次数

标签 统计

c++ ×1

decltype ×1