Credo che il nuovo standard C++ consente un "ambito" in più per i tipi enumerati:`typedef enum {} t` consente gli identificatori dell'elemento enum con scope in C++ 0x?
enum E { e1, e2 };
E var = E::e1;
Poiché so un sacco di file sorgente contenenti il vecchio stile C enum typedef, mi sono chiesto se il nuovo standard permetterebbe utilizzando il typedef per questi tipi enumerati altrimenti anonimi:
typedef enum { d1, d2 } D;
D var = D::d1; // error?
Direi che "D" definito con typedef è per scopi pratici equivalente a un appropriato 'enum D {}' e quindi le stesse regole si applicano ad entrambi. Quindi no, non dovrebbe essere un errore in C++ 0x. – Manuel
+1 per chiamarlo finalmente C++ 1x :) –
Preferisco C++ 0x perché questo è il termine usato da Stroustroup stesso. – Manuel