RAD Studio |  |

Forward Declaration of Enums (C++0x)
See Also
Collapse All

C++Builder 2009 introduces forward declaration of enums. You can declare an enumeration without providing a list of enumerators. Such declarations would not be definitions and can be provided only for enumerations with fixed underlying types. An enumeration can then be re-declared, possibly providing the missing list of enumerators, but the re-declaration must match the previous declaration. This feature is one of the C++0x features added to C++Builder 2009.

Copy Code

    enum E : short;           // OK: unscoped, underlying type is short
    enum F:                   // illegal: enum-base is required
    enum class G : short      // OK: scoped, underlying type is short
    enum class H;             // OK: scoped, underlying type is int
    enum E : short;           // OK: redeclaration of E
    enum class G : short;     // OK: redeclaration of G
    enum class H;             // OK: redeclaration of H
    enum class H : int;       // OK: redeclaration of H
    enum class E : short;     // illegal: previously declared as unscoped
    enum G : short;           // illegal: previously declared as scoped
    enum E;                   // illegal: enum-base is required
    enum E : int              // illegal: different underlying type
    enum class G;             // illegal: different underlying type
    enum class H : short;     // illegal: different underlying type
    enum class H {/* */}]     // OK:  this redeclaration is a definition

See Also

C++0x Features (C++Builder 2009)

Strongly Typed Enums

Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
What do you think about this topic? Send feedback!