警告 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