Partilhar via


Avisos do compilador do Microsoft C/C++ C4800 a C4999

Os artigos nesta seção descrevem as mensagens de aviso do compilador do Microsoft C/C++ C4800 a C4999.

Importante

Os compiladores e ferramentas de build do Visual Studio podem relatar muitos tipos de erros e avisos. Depois que um erro ou aviso for encontrado, as ferramentas de build poderão fazer suposições sobre a intenção do código e tentar continuar, para que mais problemas possam ser relatados ao mesmo tempo. Se as ferramentas fizerem a suposição errada, erros ou avisos posteriores poderão não se aplicar ao seu projeto. Quando você corrige problemas em seu projeto, sempre comece com o primeiro erro ou aviso relatado e recompile com frequência. Uma correção pode fazer com que muitos erros subsequentes desapareçam.

Para obter ajuda em uma mensagem de diagnóstico específica no Visual Studio, selecione-a na janela Saída e pressione a tecla F1. O Visual Studio abre a página de documentação desse erro, se houver uma. Você também pode usar a ferramenta de pesquisa na parte superior da página para encontrar artigos sobre erros ou avisos específicos. Ou navegue pela lista de erros e avisos por ferramenta e digite no sumário nesta página.

Observação

Nem todos os erros ou avisos do Visual Studio estão documentados. Em muitos casos, a mensagem de diagnóstico fornece todas as informações que estão disponíveis. Se você chegou a esta página ao usar F1 e acha que a mensagem de erro ou aviso precisa de explicações adicionais, informe-nos. Você pode usar os botões de comentários nesta página para registrar um problema de documentação no GitHub. Se você achar que o erro ou o aviso está errado ou encontrou outro problema com o conjunto de ferramentas, relate um problema de produto no site da Developer Community. Você também pode enviar comentários e inserir bugs no IDE. No Visual Studio, vá para a barra de menus e escolha Ajuda > Enviar Comentários > Relatar um Problema ou envie uma sugestão usando Ajuda > Enviar Comentários > Enviar uma Sugestão. Foram criados alguns tópicos de erro do compilador que não são emitidos pelo compilador e agora redirecionam para esta página.

Você pode encontrar assistência adicional para erros e avisos nos fóruns Perguntas e respostas do Microsoft Learn. Alternativamente, pesquise o número do erro ou aviso no site da Developer Community do Visual Studio C++. Você também pode pesquisar o Stack Overflow para encontrar soluções.

Para obter links para ajuda adicional e recursos da comunidade, confira Ajuda e Comunidade do Visual C++.

Mensagens de aviso

Aviso Mensagem
Aviso do compilador (nível 4, desativado) C4800 Conversão implícita de 'type' em bool. Possível perda de informações
Aviso do compilador C4801 Retorno por referência não é verificável: mensagem
Aviso do compilador (nível 1) C4803 'method': o método raise possui uma classe de armazenamento diferente da classe do evento, 'event'
Aviso do compilador (nível 1) C4804 'operation': uso não seguro do tipo 'bool' na operação
Aviso do compilador (nível 1) C4805 'operation': combinação não segura do tipo 'type1' e tipo 'type2' na operação
Aviso do compilador (nível 1) C4806 'operation': operação não segura: nenhum valor do tipo 'type1' promovido ao tipo 'type2' pode igualar a constante fornecida
Aviso do compilador (nível 1) C4807 'operation': combinação não segura do tipo 'type1' e do campo de bits assinado do tipo 'type2'
Aviso do compilador (nível 1) C4808 case 'value' não é um valor válido para a condição switch do tipo 'bool'
Aviso do compilador (nível 1) C4809 instrução switch tem rótulo 'default' redundante; todos os rótulos 'case' possíveis são fornecidos
Aviso do compilador (nível 1) C4810 Valor de pragma pack(show) == n
Aviso do compilador (nível 1) C4811 valor de pragma conform(forScope, show) == valor
Aviso do compilador (nível 1) C4812 estilo de declaração obsoleto: use 'new_syntax' em vez disso
Aviso do compilador (nível 1) C4813 'function': uma função friend de uma classe local deve ter sido declarada anteriormente
Aviso do compilador (nível 4) C4815 nome do objeto”: matriz de dimensão zero em objeto de pilha não possuirá elementos (a menos que o objeto seja uma agregação que tenha sido inicializada por agregação)
Aviso do compilador (nível 4) C4816 'param': o parâmetro tem uma matriz de dimensão zero que será truncada (a menos que o objeto seja passado por referência)
Aviso do compilador (nível 1) C4817 'membro' : uso ilegal de '.' para acessar este membro; compilador substituído por '->'
Aviso do compilador (nível 1) C4819 O arquivo contém um caractere que não pode ser representado na página de código atual (number). Salvar o arquivo no formato Unicode para evitar a perda de dados
Aviso do compilador (nível 4, desativado) C4820 preenchimento de bytes 'bytes' adicionado após construção de 'member_name'
Aviso do compilador (nível 1) C4821 Não foi possível determinar o tipo de codificação Unicode, salve o arquivo com assinatura (BOM)
Aviso do compilador (nível 1, desativado) C4822 'member function': a função membro da classe local não tem um corpo
Aviso do compilador (nível 3) C4823 'function': usa ponteiros de fixação, mas a semântica de desenrolamento não está habilitada. Considere usar /EHa
Aviso do compilador (nível 2, desativado) C4826 A conversão de 'type1' em 'type2' é estendida por sinal. Isso pode causar comportamento de tempo de execução inesperado.
Aviso do compilador (nível 3) C4827 Um método 'ToString' público com 0 parâmetros deve ser marcado como virtual e override
Aviso do compilador (nível 1) C4828 O arquivo contém um caractere que começa no deslocamento 0xHexOffset que é ilegal no conjunto de caracteres de origem atual (página de código página de código).
Aviso do compilador (nível 1) C4829 Parâmetros possivelmente incorretos para a função main. Considere 'int main(Platform::Array<Platform::String^>^ argv)'
Aviso do compilador (nível 1) C4834 descartando o valor retornado da função com o atributo 'nodiscard'
Aviso do compilador (nível 1) C4835 'variable': o inicializador para dados exportados não será executado até o código gerenciado ser executado pela primeira vez no host assembly
Aviso do compilador (nível 4, desativado) C4837 trígrafo detectado: '??character' substituído por 'character'
Aviso do compilador (nível 1) C4838 a conversão de 'tipo_1' para 'tipo_2' requer uma conversão de estreitamento
Aviso do compilador (nível 3) C4839 uso não padrão da classe 'type' como um argumento para uma função variádica
Aviso do compilador (nível 4) C4840 o uso não portátil da classe 'type' como um argumento para uma função variadic
Aviso do compilador (nível 4, desativado) C4841 extensão não padrão usada: designador de membro composto usado em offsetof
Aviso do compilador (nível 4, desativado) C4842 não é garantido que o resultado de 'offsetof' aplicado a um tipo usando a herança múltipla seja consistente entre versões do compilador
Aviso do compilador (nível 4) C4843 'type1': um manipulador de exceção da referência para a matriz ou tipo de função está inatingível, em vez disso use 'type2'
Aviso do compilador (nível 1) C4844 'export module module_name;' é agora a sintaxe preferida para declarar uma interface de módulo
Aviso do compilador (nível 4) C4845 '__declspec(no_init_all)' será ignorado se '/d1initall[0|1|2|3]' não foi especificado na linha de comando
Aviso do compilador (nível 4) C4846 'value' não é um argumento válido para '/d1initall': sinalizador de linha de comando ignorado
Aviso do compilador (nível 4) C4847 '__declspec(no_init_all)' só pode ser aplicado a uma função, um tipo de classe ou uma variável local: ignorado
Aviso do compilador (nível 1) C4848 o suporte para o atributo padrão 'no_unique_address' em C++17 e anterior é uma extensão do fornecedor
Aviso do compilador (nível 1) C4849 Cláusula “cláusula” OpenMP ignorada na diretiva “diretiva
Aviso do compilador (nível 1, erro) C4854 a associação de um ponteiro nulo desreferenciado à referência tem um comportamento indefinido
Aviso do compilador (nível 1, desativado) C4855 a captura implícita de 'this' via '[=]' é preterida em 'version'
Aviso do compilador (nível 4) C4856 'value' não é um argumento válido para '/d1initAll:FillPattern' (o valor deve estar entre 0 e 255). Sinalizador de linha de comando ignorado
Aviso do compilador (nível 1) C4857 O modo C++/CLI não é compatível com as versões do C++ mais recentes do que a C++17. Definindo a linguagem para /std:c++17
Aviso do compilador (nível 1) C4858 descartando o valor retornado: nome da função
Aviso do compilador (nível 4) C4859 'valor' não é um argumento válido para '/presetWarn': ele deve ser um valor decimal > 0. Sinalizador de linha de comando ignorado
Aviso do compilador (nível 4) C4860 'nome do objeto': o compilador inicializou zero 'número' de bytes de armazenamento.
Aviso do compilador (nível 4) C4861 o compilador inicializou a zero 'número' de bytes de armazenamento
Aviso do compilador (nível 4) C4866 o compilador pode não impor a ordem de avaliação da esquerda para a direita para chamar para o operator_name
Aviso do compilador (nível 1, erro) C4867 'function': lista de argumentos ausentes da chamada de função; use 'call' para criar um ponteiro para membro
Aviso do compilador (nível 4) C4868 O compilador 'file(line_number)' pode não impor a ordem de avaliação da esquerda para a direita na lista de inicializadores entre chaves
Aviso do compilador (nível 3) C4869 nodiscard” pode ser aplicado somente a classes, enumerações e funções
Aviso do compilador (nível 2) C4872 divisão de ponto flutuante por zero detectada ao compilar o grafo de chamada para concurrency::parallel_for_each em: 'location'
Aviso do compilador (nível 1) C4880 projeção de 'const type_1' para 'type_2': rejeitando constness de um ponteiro ou referência pode resultar em comportamento indefinido em uma função de amp restrito
Aviso do compilador (nível 4) C4881 o construtor e/ou o destruidor não serão chamados para a variável tile_static 'variable-name'
Aviso do compilador (nível 1) C4882 a transmissão de functors com operadores de chamada não constantes para concurrency::parallel_for_each foi preterida
Aviso do compilador C4883 nome da função”: o tamanho da função suprime as otimizações
Aviso do compilador C4900 incompatibilidade de Il entre a versão 'tool1' 'version1' e a versão 'tool2' 'version2'
Aviso do compilador (nível 1, desativado) C4905 conversão de cadeia de caracteres literal larga para 'LPSTR'
Aviso do compilador (nível 1, desativado) C4906 conversão de cadeia de caracteres literal para 'LPWSTR'
Aviso do compilador (erro) C4907 Não é possível especificar várias convenções de chamada; a última dada será usada
Aviso do compilador (nível 1) C4910 '<identifier>: '__declspec(dllexport)' e 'extern' são incompatíveis em uma instanciação explícita
Aviso do compilador (nível 1) C4912 'atributo': o atributo tem um comportamento indefinido em um UDT aninhado
Aviso do compilador (nível 4) C4913 operador binário definido pelo usuário ',' existe mas nenhuma sobrecarga pôde converter todos os operando, operador binário interno padrão ',' usado
Aviso do compilador (nível 1) C4916 a fim de possuir um dispid, 'description': deve ser introduzido por uma interface
Aviso do compilador (nível 1, desativado) C4917 'declarator': um GUID pode ser associado apenas a uma classe, uma interface ou um namespace
Aviso do compilador (nível 4) C4918 'character': caractere inválido na lista de otimização de pragma
Aviso do compilador (nível 1) C4920 enumeração enum-name membro member_1=value_1 já visto na enumeração enum-name as member_2=value_2
Aviso do compilador (nível 3) C4921 'description': valor de atributo 'attribute' não deve ser especificado várias vezes
Aviso do compilador (nível 1) C4925 'method': o método dispinterface não pode ser chamado a partir do script
Aviso do compilador (nível 1) C4926 'identifier': símbolo já definido: atributos ignorados
Aviso do compilador (nível 1) C4927 conversão inválida; mais de uma conversão definida pelo usuário foi aplicada implicitamente
Aviso do compilador (nível 1, desativado) C4928 inicialização de cópia ilegal; mais de uma conversão definida pelo usuário foi implicitamente aplicada
Aviso do compilador (nível 1) C4929 'file': typelibrary contém uma união; ignorando o qualificador 'embedded_idl'
Aviso do compilador (nível 1) C4930 'prototype': função prototipada não chamada (uma definição de variável era pretendida?)
Aviso do compilador (nível 4, desativado) C4931 estamos supondo que a biblioteca de tipos foi criada para ponteiros de bit por número
Aviso do compilador (nível 4) C4932 __identifier(identifier) e __identifier(identifier) são indistinguíveis
Aviso do compilador (nível 1) C4934 '__delegate(multicast)' é preterido, use '__delegate' em vez disso
Aviso do compilador (nível 1) C4935 especificador de acesso do assembly modificado do 'access'
Aviso do compilador (nível 1, erro) C4936 este __declspec tem suporte apenas quando compilado com /clr ou /clr:pure
Aviso do compilador (nível 4) C4937 'text1' e 'text2' são indistinguíveis como argumentos para 'diretiva'
Aviso do compilador (nível 4) C4938 'var': variável de redução de ponto flutuante pode causar resultados inconsistentes sob /fp:strict ou #pragma fenv_access
Aviso do compilador C4939 O #pragma vtordisp foi preterido e será removido em uma versão futura do Visual C++
Aviso do compilador (nível 1) C4944 'symbol': não é possível importar símbolo de 'assembly1': porque 'symbol' já existe no escopo atual
Aviso do compilador (nível 1) C4945 'symbol': não é possível importar símbolo de 'assembly1': pois 'symbol' já foi importado de outro assembly 'assembly2'
Aviso do compilador (nível 1, desativado) C4946 reinterpret_cast usado entre classes relacionadas: 'class1' e 'class2'
Aviso do compilador (nível 1) C4947 'type_or_member': marcado como obsoleto
Aviso do compilador (nível 2) C4948 tipo de retorno de 'accessor' não corresponde ao último tipo de parâmetro do setter correspondente
Aviso do compilador (níveis 1 e 4) C4949 pragmas 'managed' e 'unmanaged' são significativos somente quando compilados com '/clr[:option]'
Aviso do compilador (nível 1, erro) C4950 'type_or_member': marcado como obsoleto
Aviso do compilador (nível 1) C4951 'function' foi editado após os dados de perfil serem coletados, os dados de perfil da função não foram usados
Aviso do compilador (nível 1) C4952 'function': nenhum dado de perfil encontrado no banco de dados do programa 'pgd-file'
Aviso do compilador (nível 1) C4953 A 'function' embutida foi editada após os dados de perfil serem coletados, os dados de perfil não foram usados
Aviso do compilador C4954 'function': não analisado (contém expressão de switch __int64)
Aviso do compilador C4955 'import2': importação ignorada; já importado de 'import1'
Aviso do compilador (nível 1, erro) C4956 'type': esse tipo não é verificável
Aviso do compilador (nível 1, erro) C4957 'cast': conversão explícita de 'cast_from' para 'cast_to' não é verificável
Aviso do compilador (nível 1, erro) C4958 'operation': a aritmética de ponteiro não é verificável
Aviso do compilador (nível 1, erro) C4959 não é possível definir 'type' não gerenciado em /clr:safe porque o acesso aos seus membros produz código não verificável
Aviso do compilador (nível 4) C4960 'function' é grande demais para que o perfil dela seja criado
Aviso do compilador (nível 1) C4961 Nenhum dado de perfil foi mesclado em 'pgd-file', otimizações guiadas por perfil desabilitadas
Aviso do compilador (nível 4, desativado) C4962 'function': otimizações guiadas por perfil desabilitadas porque as otimizações tornaram os dados de perfil inconsistentes
Aviso do compilador (nível 1) C4963 'description': nenhum dado de perfil encontrado; opções de compilação diferentes foram usadas em compilação instrumentada
Aviso do compilador (nível 1) C4964 Nenhuma opção de otimização foi especificada; as informações do perfil não serão coletadas
Aviso do compilador (nível 1) C4965 box implícito de inteiro 0; usar nullptr ou conversão explícita
Aviso do compilador (nível 1) C4966 'function' tem anotação __code_seg com nome de segmento sem suporte, anotação ignorada
Aviso do compilador C4970 construtor delegado: objeto de destino ignorado, pois 'type' é estático
Aviso do compilador (nível 1) C4971 Ordem de argumentos: <target object>, <target function> para construtor delegate é preterida, use <target function>, <target object="">
Aviso do compilador (nível 1, erro) C4972 Modificar ou tratar diretamente o resultado de uma operação unbox como um lvalue não é verificável
Aviso do compilador (nível 1) C4973 'symbol': marcado como preterido
Aviso do compilador (nível 1) C4974 'symbol': marcado como preterido
Aviso do compilador (nível 1) C4975 modopt '[modificador]' foi ignorado para o parâmetro formal 'parâmetro'
Aviso do compilador (nível 1) C4976 Valor inválido “valor” para “/W”; supondo “1”
Aviso do compilador (nível 3) C4981 Warbird: função 'function' marcada como __forceinline não embutida porque contém semântica de exceção
Aviso do compilador (nível 3) C4983 '/analyze:sarif:hashname' ignorado porque o argumento para '/analyze:log' é um único arquivo em vez de um diretório
Aviso do compilador C4984 'if constexpr' é uma extensão de linguagem C++17
Aviso do compilador (nível 4) C4985 'symbol_name': atributos não presentes em declaração anterior.
Aviso do compilador (nível 4, desativado) C4986 'declaration': especificação de exceção não corresponde à declaração anterior
Aviso do compilador (nível 4, desativado) C4987 extensão não padrão utilizada: 'throw (...)'
Aviso do compilador (nível 4, desativado) C4988 'variable': variável declarada fora do escopo de classe/função
Aviso do compilador (nível 4) C4989 'type': tipo tem definições conflitantes.
Aviso do compilador (nível 3) C4990 Warbird: mensagem
Aviso do compilador (nível 3) C4991 Warbird: função 'function' marcada como __forceinline não embutida porque o nível de proteção do item embutido é superior ao do pai
Aviso do compilador (nível 3) C4992 Warbird: função 'function-name' marcada como __forceinline não embutida porque contém assembly embutido que não pode ser protegido
Aviso do compilador (nível 3) C4995 'function': name foi marcada como #pragma deprecated
Aviso do compilador (nível 3) C4996 'deprecated-declaration': deprecation-message (ou "foi declarado preterido")
Aviso do compilador (nível 1) C4997 'class': a coclass não implementa uma interface COM ou pseudointerface
Aviso do compilador (nível 1) C4998 FALHA NA EXPECTATIVA: expectation(value)

Confira também

Compilador C/C++ e erros e avisos de ferramentas de compilação
Avisos do Compilador C4000 - C5999