Avisos de compilador desativados por padrão
O compilador inclui avisos que são desativados por padrão, pois a maioria dos usuários não deseja vê-los. No entanto, você pode habilitar esses avisos usando uma das opções a seguir.
#pragma warning(default : warning_number )
O aviso especificado (warning_number) é habilitado no seu nível padrão. A documentação para o aviso contém o nível padrão do aviso.#pragma warning( warning_level : warning_number )
O aviso especificado (warning_number) é habilitado no nível especificado (warning_level)./Wall
/Wall habilita todos os avisos que são desativados por padrão.
Os seguintes avisos são desativados por padrão.
C4061 (nível 4) |
o enumerador 'identifier' em uma opção de enum 'enumeration' não é tratado explicitamente por um rótulo case |
C4062 (nível 3) |
o enumerador 'identifier' em uma opção de enum 'enumeration' não é tratado |
C4191 (nível 3) |
'operator/operation': conversão não segura de 'type of expression' em 'type required' |
C4242 (nível 4) |
'identifier': conversão de 'type1' em 'type2', possível perda de dados |
C4254 (nível 4) |
'operator': conversão de 'type1' em 'type2', possível perda de dados |
C4255 (nível 4) |
'function': nenhum protótipo de função fornecido: convertendo '()' em '(void)' |
C4263 (nível 4) |
'function': função membro não substitui nenhuma função membro virtual da classe base |
C4264 (nível 1) |
'virtual_function': nenhuma substituição disponível para função membro virtual da 'classe' base; a função é ocultada |
C4265 (nível 3) |
'class': a classe tem funções virtuais, mas o destruidor não é virtual |
C4266 (nível 4) |
'function': nenhuma substituição disponível para função membro virtual da base 'type'; a função é ocultada |
C4287 (nível 3) |
'operator': incompatibilidade de constante negativa/não assinada |
C4289 (nível 4) |
extensão não padrão usada: 'var': variável de controle de loop declarada no loop for é usada fora do escopo do loop for |
C4296 (nível 4) |
'operator': a expressão é sempre falsa |
C4302 (nível 2) |
'conversion': truncamento de 'type1' para 'type2' |
C4311 (nível 1) |
'variable': truncamento de ponteiro de 'type' para 'type' |
C4312 (nível 1) |
'operation': conversão de 'type1' em 'type2' de tamanho maior |
C4339 (nível 4) |
'type': uso de tipo indefinido detectado no metadados do CLR - usar esse tipo pode gerar uma exceção de tempo de execução |
C4342 (nível 1) |
alteração de comportamento: 'function' chamado, mas um operador de membro foi chamado em versões anteriores |
C4350 (nível 1) |
alteração de comportamento: 'member1' chamado no lugar de 'member2' |
'this' : usado na lista de inicializadores do membro base |
|
C4365 (nível 4) |
'action': conversão de 'type_1' em 'type_2', incompatibilidade de signed/unsigned |
C4370 (nível 3) |
layout da classe foi alterado de uma versão anterior do compilador devido a empacotamento melhor |
C4371 (nível 3) |
layout da classe pode ter sido alterado de uma versão anterior do compilador devido a empacotamento melhor do membro 'member' |
C4388 (nível 4) |
incompatibilidade de signed/unsigned |
C4412 (nível 2) |
'function': a assinatura da função contém o tipo 'type'; não é seguro passar objetos C++ entre código puro e combinado ou nativo |
C4431 (nível 4) |
faltando especificador de tipo - int assumido. Observação: C não suporta mais default-int |
C4435 (nível 4) |
'class1' : layout do objeto em /vd2 será alterado devido à base virtual 'class2' |
C4437 (nível 4) |
dynamic_cast da base virtual 'class1' para 'class2' pode falhar em alguns contextos |
C4444 (nível 3) |
top level '__unaligned' não é implementado nesse contexto |
C4471 (nível 4) |
uma declaração de encaminhamento de uma enumeração sem escopo deve ter um tipo subjacente (int assumido) |
C4472 (nível 1) |
'identifier' é um enum nativo: adicione um especificador de acesso (privado/público) para declarar um enum gerenciado |
C4514 (nível 4) |
'function': função embutida sem referência foi removida |
C4536 (nível 4) |
'type name': nome do tipo excede o limite de metadados de caracteres 'limit' |
C4545 (nível 1) |
expressão antes da vírgula é avaliada para uma função que está ausente em uma lista de argumentos |
C4546 (nível 1) |
faltando lista de argumentos na chamada de função antes da vírgula |
C4547 (nível 1) |
'operator': operador antes da vírgula não tem efeito; operador esperado com efeito colateral |
C4548 (nível 1) |
expressão antes da vírgula não tem efeito; expressão esperada com efeito colateral |
C4549 (nível 1) |
'operator': operador antes da vírgula não tem efeito; você intencionava 'operator'? |
C4555 (nível 1) |
expressão não tem efeito; expressão esperada com efeito colateral |
C4557 (nível 3) |
'__assume' contém efeito 'effect' |
C4571 (nível 4) |
informativo: semântica de catch(…) alterada desde o Visual C++ 7.1; exceções estruturadas (SEH) não são mais capturadas |
C4574 (nível 4) |
'identifier' é definido para ser '0': você quis usar '#if identifier'? |
C4608 (nível 3) |
'symbol1' já foi inicializado por outro membro de união na lista de inicializadores, 'symbol2' |
C4619 (nível 3) |
aviso #pragma: não há número de aviso 'number' |
C4623 (nível 4) |
'derived class': construtor padrão não pôde ser gerado porque o construtor padrão de uma classe base está inacessível |
C4625 (nível 4) |
'derived class': construtor de cópia não pôde ser gerado porque o construtor de cópia de uma classe base está inacessível |
C4626 (nível 4) |
'derived class': operador de atribuição não pôde ser gerado porque o operador de atribuição de uma classe base está inacessível |
C4628 (nível 1) |
dígrafos não suportados com -Ze. A sequência de caracteres 'digraph' não é interpretada como token alternativo para 'char' |
C4640 (nível 3) |
'instance': construção de objeto estático local não é thread-safe |
C4668 (nível 4) |
'symbol' não é definido como uma macro de pré-processador, substituindo por '0' para 'directives' |
C4682 (nível 4) |
'symbol' : nenhum atributo de parâmetro direcional especificado, padronizando para [in] |
C4686 (nível 3) |
'user-defined type': possível alteração no comportamento, alteração na convenção de chamada de retorno UDT |
C4692 (nível 1) |
'function': assinatura de membro não privado contém tipo nativo privado de assembly 'native_type' |
C4710 (nível 4) |
'function': função não embutida |
C4738 (nível 3) |
armazenando o resultado float de 32 bits na memória, possível perda de desempenho |
C4767 (nível 4) |
nome da seção 'symbol' tem mais de 8 caracteres e será truncado pelo vinculador |
C4786 (nível 3) |
'symbol' : o nome do objeto foi truncado para caracteres 'number' nas informações de depuração |
C4820 (nível 4) |
preenchimento de bytes 'bytes' adicionado após construção de 'member_name' |
C4826 (nível 2) |
conversão de 'type1' em 'type2' é estendida por sinal. Isso pode causar comportamento de tempo de execução inesperado |
C4837 (nível 4) |
trígrafo detectado: '??%c' substituído por '%c' |
C4905 (nível 1) |
literal amplo de cadeia de caracteres convertido em 'LPSTR' |
C4906 (nível 1) |
literal de cadeia de caracteres convertido em 'LPWSTR' |
C4917 (nível 1) |
'declarator': um GUID pode ser associado apenas a uma classe, uma interface ou um namespace |
C4928 (nível 1) |
inicialização de cópia ilegal; mais de uma conversão definida pelo usuário foi implicitamente aplicada |
C4931 (nível 4) |
estamos supondo que a biblioteca de tipos foi criada para ponteiros de bit por número |
C4946 (nível 1) |
reinterpret_cast usado entre classes relacionadas: 'class1' e 'class2' |
C4962 |
'function': otimizações guiadas por perfil desabilitadas porque as otimizações tornaram os dados de perfil inconsistentes |
C4986 (nível 4) |
'symbol': especificação de exceção não corresponde à declaração anterior |
C4987 (nível 4) |
extensão não padrão usada: 'throw (...)' |
C4988 (nível 4) |
'symbol': variável declarada fora do escopo de classe/função |