Advertencia C26827
¿Olvidó inicializar una enumeración o pretende usar otro tipo?
Comentarios
Se espera que la mayoría de los tipos de enum
usados en las operaciones bit a bit tengan miembros con valores de potencias de dos. Esta advertencia intenta buscar casos en los que no se asignó explícitamente un valor a una constante de enumeración. También encuentra casos en los que se pueda haber usado accidentalmente el tipo de enumeración incorrecto.
Nombre del análisis de código: ALMOST_BITWISE_ENUM
Ejemplo
El código de ejemplo siguiente provoca la advertencia 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?
}
Para corregir la advertencia, inicialice la constante de enumeración en el valor correcto o use el tipo de enumeración correcto en la operación.
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.
}