Compartir a través de


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

Consulte también

C26813
C26828