Warnung C26813

Verwenden Sie "bitweise" und überprüfen Sie, ob ein Flag festgelegt ist.

Hinweise

Die meisten enum Typen mit der Leistungsfähigkeit von zwei Memberwerten sollen als Bitkennzeichnungen verwendet werden. Daher möchten Sie diese Flags selten für gleichheitsgerecht vergleichen. Extrahieren Sie stattdessen die Bits, an denen Sie interessiert sind, indem Sie bitweise Vorgänge verwenden.

Codeanalysename: USE_BITWISE_AND_TO_CHEK_ENUM_FLAGS

Beispiel

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;
}

Verwenden Sie bitweise Vorgänge, um die Warnung zu beheben:

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

Siehe auch

C26827
C26828