Możliwe jest uzyskanie wartości członka wyliczenia w czasie kompilacji?Czy można uzyskać wartość członka enum w czasie kompilacji?
W rzeczywistości, chcę być w stanie zrobić coś takiego:
enum {
FOO_FIRST = -1,
FOO_A,
FOO_B,
FOO_C,
FOO_LAST
};
#if FOO_LAST > 10
//...
#else
//..
#endif
wiem, że cpp
nie wiem o zmiennych, złej składni, etc; tylko rzeczy zaczynające się od #
(po prawej)? ale członkowie wyliczenia mają stałą wielkość i nie mogą być zmienione tak jak 10 (stała liczba całkowita), a kompilator zna jego wielkość i wartości. więc, czy nie ma żadnej możliwości takiego porównania (tak jak to zrobiłem powyżej)? gcc-extensions są również bardzo doceniane.
Jest to po prostu próba nie przepisywania wszystkich wyliczeń za pomocą #define
s i nie spiesz się z niektórymi zmianami makr.
Co próbujesz zrobić w swoich blokach "# if"? – ecatmur
Nie można wymyślić żadnego rzeczywistego przypadku użycia, jeśli jest to przydatne. –
[enum i #define] (http://stackoverflow.com/questions/136946/difference-between-enum-and-define -statements) – SparKot