Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Visual Studio 2019 e posterior:
Conversão implícita de 'tipo' para bool. Possível perda de informação
C4800 é um aviso de nível 3 no Visual Studio 2015 e anteriores:
'type' : forçar o valor a bool 'true' ou 'false' (aviso de desempenho)
Observações
Este aviso é gerado quando um valor é implicitamente convertido em tipo bool. Normalmente, esta mensagem é causada pela atribuição de variáveis int a variáveis bool, em que a variável int contém apenas os valores true e false e pode ser redeclarada como tipo bool. Se não for possível reescrever a expressão para usar o tipo bool, então você pode adicionar "!=0" à expressão, que dá o tipo boolde expressão . Converter a expressão para o tipo bool não desativa o aviso, que é por design.
Este aviso não é emitido no Visual Studio 2017.
Este aviso está desativado por padrão a partir do Visual Studio 2019. Use /wn4800 para habilitar o C4800 como um aviso de nível n ou /Wall para habilitar todos os avisos que estão desativados por padrão. Para obter mais informações, consulte Avisos do compilador que estão desativados por padrão.
Example
O exemplo a seguir gera C4800 e mostra como corrigi-lo:
// C4800.cpp
// compile with: /W4 /w44800
int main() {
int i = 0;
// To fix, instead try:
// bool i = 0;
bool j = i; // C4800
j++;
}