Déclaration forward des énumérations (C++11)
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