Udostępnij za pośrednictwem


Ostrzeżenie C26813

Użyj polecenia "bitowe i", aby sprawdzić, czy flaga jest ustawiona

Uwagi

Większość enum typów z mocą dwóch wartości składowych ma być używana jako flagi bitowe. W rezultacie rzadko chcesz porównać te flagi pod kątem równości. Zamiast tego wyodrębnij bity, które cię interesują, używając operacji bitowych.

Nazwa analizy kodu: USE_BITWISE_AND_TO_CHEK_ENUM_FLAGS

Przykład

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

Aby naprawić ostrzeżenie, użyj operacji bitowych:

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

Zobacz też

C26827
C26828