表示: Delphi
C++
表示設定
列挙型の前方宣言(C++0x)
提供:RAD Studio XE2
C++0x 対応機能:インデックス への移動
C++Builder 2009 には列挙型の前方宣言が導入されています。 列挙子のリストを指定しないで列挙型を宣言できます。 このような宣言は定義ではありません。固定のベース型の列挙に対してだけ使用できます。 列挙型は再び宣言できます。省略していた列挙子のリストを指定することもできますが、再宣言は前の宣言と一致する必要があります。 この機能は C++Builder 2009 に追加された C++0x 機能の 1 つです。
enum E : short; // OK: スコープなし、ベース型は short
enum F: // 不正: 列挙型のベースが必要
enum class G : short // OK: スコープあり、ベース型は short
enum class H; // OK: スコープあり、ベース型は int
enum E : short; // OK: E の再宣言
enum class G : short; // OK: G の再宣言
enum class H; // OK: H の再宣言
enum class H : int; // OK: H の再宣言
enum class E : short; // 不正: 以前にスコープなしで宣言されている
enum G : short; // 不正: 以前にスコープありで宣言されている
enum E; // 不正: 列挙型のベースが必要
enum E : int // 不正: 異なるベース型
enum class G; // 不正: 異なるベース型
enum class H : short; // 不正: 異なるベース型
enum class H {/* */}] // OK: この再宣言は定義である