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