Voglio ottenere il tipo di una funzione e creare un std::vector
di esso. Ad esempio, hoOttieni decltype of function
int foo(int a[], int n) { return 1; }
int bar(int a[], int n) { return 2; }
e un vettore di funzioni di questo tipo sarebbe:
std::vector< std::function<int(int[],int)> > v;
E, in generale, un decltype()
sarebbe meglio, come:
std::vector< decltype(foo) > v;
tuttavia, ciò comporterà un errore di compilazione.
Credo che il motivo è che decltype()
non può distinguere tra
int (*func)(int[], int)
std::function<int(int[], int)>
C'è un modo per risolvere questo problema?