Forward-Deklaration von Enums (C++11)
Nach oben zu C++11-Features - Index
C++Builder 2009 führt die Forward-Deklaration von Aufzählungen ein. Sie können eine Aufzählung ohne eine Liste mit Enumeratoren deklarieren. Solche Deklarationen würden keine Definitionen sein und können nur für Aufzählungen mit festen zugrunde liegenden Typen bereitgestellt werden. Eine Aufzählung kann dann neu deklariert werden und evtl. die fehlende Enumeratorenliste bereitstellen, aber die Neudeklaration muss mit der vorherigen Deklaration übereinstimmen. Dieses C++0x-Feature wurde zu C++Builder 2009 hinzugefügt.
enum E : short; // OK: ohne Gültigkeitsbereich, zugrunde liegender Typ ist short enum F: // ungültig: Enum-Basis erforderlich enum class G : short // OK: mit Gültigkeitsbereich, zugrunde liegender Typ ist short enum class H; // OK: mit Gültigkeitsbereich, zugrunde liegender Typ ist int enum E : short; // OK: Neudeklaration von E enum class G : short; // OK: Neudeklaration von G enum class H; // OK: Neudeklaration von H enum class H : int; // OK: Neudeklaration von H enum class E : short; // ungültig: wurde zuvor ohne Gültigkeitsbereich deklariert enum G : short; // ungültig: wurde zuvor mit Gültigkeitsbereich deklariert enum E; // ungültig: Enum-Basis erforderlich enum E : int // ungültig: abweichender zugrunde liegender Typ enum class G; // ungültig: abweichender zugrunde liegender Typ enum class H : short; // ungültig: abweichender zugrunde liegender Typ enum class H {/* */}] // OK: diese Neudeklaration ist eine Definition