警告 C26813

使用“按位和”检查是否设置了标志

注解

具有两个成员值的大多数 enum 类型旨在用作位标志。 因此,你不太希望比较这些标志是否相等。 而是使用位运算提取你感兴趣的位。

代码分析名称:USE_BITWISE_AND_TO_CHEK_ENUM_FLAGS

示例

enum BitWise
{
    A = 1,
    B = 2,
    C = 4
};

void useEqualsWithBitwiseEnum(BitWise a) 
{
    if (a == B) // Warning C26813: Use 'bitwise and' to check if a flag is set
        return;
}

若要解决警告,请使用位运算:

void useEqualsWithBitwiseEnum(BitWise a) 
{
    if (a & B) // Fixed.
        return;
}

另请参阅

C26827
C26828