Déclaration forward des énumérations (C++11)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Fonctionnalités C++11 - Index

C++Builder 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++11 ajoutées à C++Builder 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