miałem kod, który wyglądał tak:Dlaczego powinienem mieć wyliczenie wyliczone z typedef w C++?
enum EEventID {
eEvent1,
eEvent2,
...
eEventN };
I got przeglądowi i zmieniona na
typedef enum {
eEvent1,
eEvent2,
...
eEventN } EEventID;
Jaka jest różnica między tymi dwoma? Po co wprowadzać zmiany? Kiedy spojrzałem na this question, tylko wzmianka o typedefs została odrzucona.
Dzięki za elucicdation. Zacząłem się martwić, czy był jeszcze jeden zakręt wokół C++, o którym myślałem, że wiedziałem, ale zupełnie nie wiedziałem (patrz: gimnastyka szablonowa, którą faceci w Boost robią tak łatwo) – mmr
"Obaj są identyczni w C++" - warto wskazać że w niektórych implementacjach informacje debugowania mogą się różnić, ponieważ typedef jest efektywnym anonimowym lub losowo wyliczanym enum, więc informacje debugowania mogą dokumentować je jako takie, a nie jako "EEventID". To prowadzi niektórych ludzi do jeszcze brzydszego 'typedef enum Idn1 {...} Idn2;', z jednym zwykle tworzonym przez dodanie przedrostka lub przyrostka do drugiego :-(- to nie rozwiązuje dokładnie problemu, ale zapewnia pewne bardziej identyfikowalne idn. –