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