Compartilhar via


Aviso C26827

Você esqueceu de inicializar uma enumeração ou pretende usar outro tipo?

Comentários

Espera-se que a maioria dos tipos enum usados em operações bit a bit tenha membros com valores da potência de dois. Esse aviso tenta localizar casos em que um valor não foi fornecido explicitamente para uma constante de enumeração. Ele também localiza casos em que o tipo de enumeração errado pode ter sido usado inadvertidamente.

Nome da análise de código: ALMOST_BITWISE_ENUM

Exemplo

O código de exemplo a seguir causa o aviso 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 corrigir o aviso, inicialize a constante de enumeração com o valor correto ou use o tipo de enumeração correto na operação.

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

Confira também

C26813
C26828