Я хочу получить тип функции и создать ее 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)>
. Есть ли способ исправить это?