PavilionDV7の雑多なやつ

Qiitaから移行しました。UE4に関する記事から興味のあることまで色々書きます。

UEnumでは「TRUE」や「FALSE」が使えない

本題

Unreal C++ ではEnum(列挙型)を定義する際に以下のように定義する

UENUM()
enum class EHoge : uint8
{
    Hoge,
    Fuga,
    Var
};

このとき列挙子(HogeやFuga等)でTrueTRUEFalseFALSEを使うとエラーになる。

UENUM()
enum class EHoge : uint8
{
    TRUE, // error : Missing '}' in 'Enum'
};

回避方法

回避方法としてTRUEを使わない方法とプレフィックス(接頭辞)をつける方法がある。

TRUEを使わない方法。

UENUM()
enum class EHoge : uint8
{
    MARU,
    BATSU
};

プレフィックスをつける方法。

UENUM()
enum class EHoge : uint8
{
    HOGE_TRUE,
    HOGE_FALSE
};

都合の良い方を選べばOK。

エディタ側で作成できるEnum型のデータでは「TRUE」「FALSE」としてもエラーは起こらない。