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