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