你是否忘记初始化枚举,或是打算使用其他类型?
备注
按位运算中使用的大多数 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.
}