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:
E se devi loopare sui valori ammessi per NuovoEnum basta farecodice:enum NuovoEnum { primo, secondo, terzo, Max_NuovoEnum };
(ovviamente bisogna sempre avere cura che Max_NuovoEnum rimanga in fondo a tutto)codice:for(int i=0; i<Max_NuovoEnum; ++i)

Rispondi quotando