Chcę uzyskać typ funkcji i utworzyć jej std::vector
. Na przykład, mamUzyskaj typ funkcji
int foo(int a[], int n) { return 1; }
int bar(int a[], int n) { return 2; }
i wektorem funkcji jak to będzie:
std::vector< std::function<int(int[],int)> > v;
A w ogóle, decltype()
byłoby lepiej, jak:
std::vector< decltype(foo) > v;
jednak spowoduje to błąd kompilacji.
Myślę, że powodem jest to, że decltype()
nie potrafią odróżnić
int (*func)(int[], int)
std::function<int(int[], int)>
Czy istnieje sposób aby to naprawić?