Déclaration forward des énumérations (C++0x)

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Fonctionnalités C++0x - Index

Appmethod C++ 2009 introduit la déclaration forward des énumérations. Vous pouvez déclarer une énumération sans fournir une liste d'énumérateurs. De telles déclarations ne sont pas des définitions et peuvent seulement être fournies pour les énumérations avec des types sous-jacents fixes. Une énumération peut ensuite être redéclarée, avec fourniture possible de la liste des énumérateurs manquante, mais la redéclaration doit correspondre à la déclaration précédente. Cette fonctionnalité fait partie des fonctionnalités C++0x ajoutées à Appmethod C++ 2009.


enum E : short;           // OK: sans portée, le type sous-jacent est short
enum F:                   // illégal : enum-base est requis
enum class G : short      // OK: de portée, le type sous-jacent est short
enum class H;             // OK: de portée, le type sous-jacent est int
enum E : short;           // OK: redéclaration de E
enum class G : short;     // OK: redéclaration de G
enum class H;             // OK: redéclaration de H
enum class H : int;       // OK: redéclaration de H
enum class E : short;     // illégal: préalablement déclaré "sans portée"
enum G : short;           // illégal: préalablement déclaré "en portée"
enum E;                   // illégal: enum-base est requis
enum E : int              // illégal: type sous-jacent différent
enum class G;             // illégal: type sous-jacent différent
enum class H : short;     // illégal: type sous-jacent différent
enum class H {/* */}]     // OK:  cette redéclaration est une définition

Voir aussi