Poszukałem tego pytania, myśląc, że ktoś wcześniej musiał go o to poprosić. Nie znalazłem żadnych wyników, więc jeśli tak było, opublikuj link i nie krępuj się, aby zamknąć pytanie.Co robi ten dwukropek w deklaracji enum?
natknąłem tego kodu w EASTL:
enum : size_type { // size_type = size_t
npos = (size_type)-1,
kMaxSize = (size_type)-2
};
nigdy nie napotkał deklarację takiego enum
. Co robi w tym przypadku :
?
Wierzę, że C++ 0x wymaga "klasy enum" podczas określania typu bazowego. Bez "klasy" musi to być rozszerzenie dostawcy kompilatora. –
@Jesse: Ach, dobrze. +1 do twojej odpowiedzi. – GManNickG
@Jesse: Właściwie kod bez 'class' działa dobrze w C++ 11 i późniejszych. Użycie 'enum class' lub' enum struct' zamiast zwykłego 'enum' powoduje, że wyliczenie * ma zasięg *, a nie * nieosiada *, tzn. Zapobiega niejawnym konwersjom całkowitym. Zapewnienie odpowiedniego rodzaju jest możliwe w obu przypadkach. – Frank