次の方法で共有


警告 C26813

フラグが設定されている場合は、"bitwise and" を使用してチェックする

解説

2 つのメンバー値の累乗を持つほとんどの 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