Ich möchte den Typ einer Funktion und erstellen Sie eine std::vector
davon. Zum Beispiel, ich habeGet declltype der Funktion
int foo(int a[], int n) { return 1; }
int bar(int a[], int n) { return 2; }
und ein Vektor von Funktionen wie das wäre:
std::vector< std::function<int(int[],int)> > v;
Und in der Regel ein decltype()
wäre besser, wie:
std::vector< decltype(foo) > v;
jedoch Dies wird zu einem Kompilierungsfehler führen.
ich der Grund Vermutung ist, dass decltype()
nicht zwischen
int (*func)(int[], int)
std::function<int(int[], int)>
Gibt es eine Möglichkeit, dies zu beheben unterscheiden können? entweder