Aviso do compilador (nível 1) C4806
'operation': operação não segura: nenhum valor do tipo 'type' promovido ao tipo 'type' pode igualar a constante fornecida
Esta mensagem avisa contra código como b == 3
, em que b
tem o tipo bool
. As regras de promoção fazem com que bool
seja promovido para int
. Isso é válido, mas nunca pode ser true
. O seguinte exemplo gera o aviso C4806:
// C4806.cpp
// compile with: /W1
int main()
{
bool b = true;
// try..
// int b = true;
if (b == 3) // C4806
{
b = false;
}
}