Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Visual Studio 2019 e posterior:
Conversão implícita de 'type' em bool. Possível perda de informações
O C4800 é um aviso de nível 3 no Visual Studio 2015 e anterior:
'type' : forçando o valor para bool 'true' ou 'false' (aviso de desempenho)
Observações
Esse aviso é gerado quando um valor é convertido implicitamente em tipo bool. Normalmente, essa mensagem é causada pela atribuição de variáveis int a variáveis bool, em que a variável int contém apenas valores true e false, e pode ser reenviada como tipo bool. Se você não conseguir reescrever a expressão para usar o tipo bool, poderá adicionar "!=0" à expressão, o que fornece o tipo de expressão bool. A conversão da expressão para o tipo bool não desabilita o aviso, que é padrão.
Esse aviso não é emitido no Visual Studio 2017.
Esse aviso está desativado por padrão a partir do Visual Studio 2019. Use /Wall para habilitar todos os avisos desativados por padrão ou /wn4800 para habilitar C4800 como um aviso de nível n. Para obter mais informações, confira Avisos do compilador desativados por padrão.
Exemplo
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++;
}