Ciao a tutti, una domanda: c'è il modo di determinare a compile-time il numero di elementi in una enum, ovvero se io ho in un file
codice:
typedef enum{F1, F2, F3} index_t;
e in un altro file un vettore di funzioni indicizzato tramite tale enum
codice:
int f1(int a) { cout << "f1 " << a << endl; }
int f2(int a) { cout << "f2 " << a << endl; }
int f3(int a) { cout << "f3 " << a << endl; }
int main() {
int (*functions[3])(int);
functions[F1] = f1;
functions[F2] = f2;
functions[F3] = f3;
}
cosa posso mettere (a parte una #define) al posto di 3 nella dichiarazione del vettore functions, in modo che se aggiungo un nuovo "indice" alla enum automaticamente il vettore venga allocato per 4 invece di 3 senza dover cambiare il codice a manina.