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