Share via


Aviso C26813

Use 'bit a bit e' para verificar se um sinalizador está definido

Comentários

A maioria dos tipos enum com poder de dois valores de membro destina-se a ser usada como sinalizadores de bit. Como resultado, você raramente deseja comparar esses sinalizadores quanto à igualdade. Em vez disso, extraia os bits nos quais você está interessado usando operações bit a bit.

Nome da análise de código: USE_BITWISE_AND_TO_CHEK_ENUM_FLAGS

Exemplo

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

Para corrigir o aviso, use operações bit a bit:

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

Confira também

C26827
C26828