
Originariamente inviata da
MItaly
1. Direi anch'io il primo per lo stesso motivo.
2. A priori, non c'è un modo; in C++ non c'è reflection, e le enum sono giusto un gradino sopra delle costanti messe in un namespace, per cui non c'è modo di sapere se un valore è tra quelli validi di una enum. Un idioma che si usa spesso per le enum senza "buchi" è fare una cosa del genere:
codice:
enum NuovoEnum {
primo,
secondo,
terzo,
Max_NuovoEnum
};
E se devi loopare sui valori ammessi per NuovoEnum basta fare
codice:
for(int i=0; i<Max_NuovoEnum; ++i)
(ovviamente bisogna sempre avere cura che Max_NuovoEnum rimanga in fondo a tutto)