È possibile ottenere un valore di un membro enum in fase di compilazione?È possibile ottenere un valore di un membro enum in fase di compilazione?
In realtà, voglio essere in grado di fare qualcosa del genere:
enum {
FOO_FIRST = -1,
FOO_A,
FOO_B,
FOO_C,
FOO_LAST
};
#if FOO_LAST > 10
//...
#else
//..
#endif
So che il cpp
non conoscono le variabili, la sintassi male, ecc; solo cose che iniziano con un #
(a destra)? ma i membri di un enum hanno dimensione fissa e non possono essere modificati come il valore 10 (numero intero costante) e il compilatore ne conosce le dimensioni e i valori. quindi, non c'è alcuna possibilità di fare un tale confronto (come ho fatto sopra)? anche le estensioni gcc sono molto apprezzate.
è solo un tentativo di non riscrivere tutte le mie enumerazioni utilizzando #define
s e non mi prendo del tempo facendo alcune modifiche alle macro.
Che cosa stai cercando di fare all'interno dei blocchi '# if'? – ecatmur
non può pensare a un caso di utilizzo effettivo in cui questo è utile .. –
[enum e #define] (http://stackoverflow.com/questions/136946/difference- between-enum-and-define-statements) – SparKot