Partager via


Avertissement C26813

Utilisez « au niveau du bit et » pour vérifier si un indicateur est défini

Notes

La plupart des enum types avec la puissance de deux valeurs membres sont destinés à être utilisés comme indicateurs de bits. Par conséquent, vous souhaitez rarement comparer ces indicateurs pour l’égalité. Au lieu de cela, extrayez les bits qui vous intéressent à l’aide d’opérations au niveau du bit.

Nom de l’analyse du code : USE_BITWISE_AND_TO_CHEK_ENUM_FLAGS

Exemple

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

Pour corriger l’avertissement, utilisez les opérations au niveau du bit :

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

Voir aussi

C26827
C26828