次の方法で共有


警告 C26827

列挙型の初期化を忘れたか、別の型を使用するつもりでしたか?

解説

ビットごとの演算で使用されるほとんどの enum 型には、2 の累乗の値を持つメンバーが必要です。 この警告は、列挙定数に値が明示的に指定されていないケースを見つけようとします。 また、誤った列挙型が誤って使用された可能性がある場合も検出します。

コード分析名: ALMOST_BITWISE_ENUM

次のサンプル コードでは、警告 C26827 が発生します。

enum class AlmostBitWise
{
    A = 1,
    B = 2,
    C = 4,
    D
};

int almostBitwiseEnums(AlmostBitWise a, bool cond) 
{
    return (int)a|(int)AlmostBitWise::A; // Warning C26827: Did you forget to initialize an enum, or intend to use another type?
}

警告を修正するには、列挙定数を正しい値に初期化するか、操作で正しい列挙型を使用します。

enum class AlmostBitWise
{
    A = 1,
    B = 2,
    C = 4,
    D = 8
};

int almostBitwiseEnums(AlmostBitWise a, bool cond) 
{
    return (int)a|(int)AlmostBitWise::A; // No warning.
}

関連項目

C26813
C26828