Share via


Avertissement C26827

Avez-vous oublié d’initialiser une énumération ou d’avoir l’intention d’utiliser un autre type ?

Notes

La plupart des types utilisés dans les enum opérations au niveau du bit sont censés avoir des membres avec des valeurs de puissances de deux. Cet avertissement tente de rechercher les cas où une valeur n’a pas été donnée explicitement à une constante d’énumération. Il détecte également les cas où le type d’énumération incorrect peut avoir été utilisé par inadvertance.

Nom de l’analyse du code : ALMOST_BITWISE_ENUM

Exemple

L’exemple de code suivant provoque l’avertissement C26827 :

enum class AlmostBitWise
{
    A = 1,
    B = 2,
    C = 4,
    D
};

int almostBitwiseEnums(AlmostBitWise a, bool cond) 
{
    return (int)a|(int)AlmostBitWise::A; // Warning C26827: Did you forget to initialize an enum, or intend to use another type?
}

Pour corriger l’avertissement, initialisez la constante d’énumération à la valeur correcte ou utilisez le type d’énumération correct dans l’opération.

enum class AlmostBitWise
{
    A = 1,
    B = 2,
    C = 4,
    D = 8
};

int almostBitwiseEnums(AlmostBitWise a, bool cond) 
{
    return (int)a|(int)AlmostBitWise::A; // No warning.
}

Voir aussi

C26813
C26828