Erros do compilador C2800 a C2899
Os artigos nesta seção da documentação explicam um subconjunto das mensagens de erro geradas pelo compilador.
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 erro
Erro | Mensagem |
---|---|
Erro do compilador C2800 | 'operator operator' não pode ser sobrecarregado |
Erro do compilador C2801 | 'membro' deve ser um membro não estático |
Erro do compilador C2802 | o membro estático 'operator operator' não tem parâmetros formais |
Erro do compilador C2803 | 'operator operator' precisa ter pelo menos um parâmetro formal de tipo de classe |
Erro do compilador C2804 | O 'operator operator' binário tem muitos parâmetros |
Erro do compilador C2805 | O 'operator operator' binário tem um número insuficiente de parâmetros |
Erro do compilador C2806 | O 'operator operator' possui muitos parâmetros formais |
Erro do compilador C2807 | o segundo parâmetro formal para o operador postfix operator deve ser 'int' |
Erro do compilador C2808 | 'operator operator' unário tem excesso de parâmetros formais |
Erro do compilador C2809 | 'operator operator' não tem parâmetros formais |
Erro do compilador C2810 | 'interface': uma interface só pode herdar de outra interface |
Erro do compilador C2811 | 'type1' : não pode herdar de 'type2', uma ref class só pode herdar de uma classe ref ou classe de interface |
Erro do compilador C2812 | #import não é compatível com /clr:pure e /clr:safe |
Erro do compilador C2813 | #import não é suportado com /MP |
Erro do compilador C2814 | 'member': um tipo nativo não pode ser aninhado dentro de um tipo gerenciado/WinRT 'class' |
Erro do compilador C2815 | 'operator delete': primeiro parâmetro formal deve ser 'void *', mas 'type' foi usado |
Erro do compilador C2816 | a invocação de macro de função 'identifier' está sem o ')' final |
Erro do compilador C2817 | tipo de retorno para “operator delete” deve ser “void” |
Erro do compilador C2818 | aplicativo de 'operator ->' sobrecarregado é recursivo por meio do tipo 'class' |
Erro do compilador C2819 | o tipo 'class' não possui um membro sobrecarregado 'operator ->' |
Erro do compilador C2820 | Obsoleto. |
Erro do compilador C2821 | primeiro parâmetro formal de 'operator new' deve ser 'size_t' |
Erro do compilador C2822 | liberação local não é suportada nesta plataforma |
Erro do compilador C2823 | um modelo/genérico de typedef é inválido |
Erro do compilador C2824 | tipo de retorno para “operator new” deve ser “void *” |
Erro do compilador C2825 | 'identifier': deve ser uma classe ou namespace quando seguido por '::' |
Erro do compilador C2826 | Obsoleto. |
Erro do compilador C2827 | 'operator operator' não pode ser substituído globalmente com forma unária |
Erro do compilador C2828 | 'operator operator' não pode ser substituído globalmente com forma binária |
Erro do compilador C2829 | 'operator operator' não pode ter uma lista de parâmetros variáveis |
Erro do compilador C2830 | apenas parâmetros de posicionamento para 'operator new' podem possuir valores padrão |
Erro do compilador C2831 | 'operator operator' não pode ter parâmetros padrão |
Erro do compilador C2832 | 'identifier': um tipo de referência não pode ser inicializado por valor |
Erro do compilador C2833 | 'operator token' não é um operador ou tipo reconhecido |
Erro do compilador C2834 | 'operator operator' deve ser globalmente qualificado (obsoleto no Visual Studio 2022.) |
Erro do compilador C2835 | conversão 'type' definida pelo usuário não leva nenhum parâmetro formal |
Erro do compilador C2836 | 'identifier': somente um membro de dados não estático de uma união pode ter um inicializador de membro padrão |
Erro do compilador C2837 | 'function': não é possível usar diretivas OpenMP e #pragma loop(hint_parallel) na mesma função |
Erro do compilador C2838 | 'identifier': nome qualificado inválido na declaração de membro |
Erro do compilador C2839 | tipo de retorno inválido “tipo” para “operator -” sobrecarregado> |
Erro do compilador C2840 | argumento de palavra de instrução não constante |
Erro do compilador C2841 | argumento de registro não constante |
Erro do compilador C2842 | 'class': um tipo gerenciado/WinRT não deve definir o próprio 'operator new' ou 'operator delete' |
Erro do compilador C2843 | 'member': não é possível usar o endereço de um membro de dados não estático ou método de um tipo gerenciado/WinRT |
Erro do compilador C2844 | 'identifier': não pode ser um membro da interface 'interface |
Erro do compilador C2845 | 'type': aritmética de ponteiro não permitida neste tipo |
Erro do compilador C2846 | 'interface': uma interface não pode possuir um construtor |
Erro do compilador C2847 | não é possível aplicar sizeof ao tipo gerenciado/WinRT 'class' |
Erro do compilador C2848 | 'class': um tipo gerenciado/WinRT não pode ser um membro de uma união |
Erro do compilador C2849 | 'interface': uma interface não pode possuir um destruidor |
Erro do compilador C2850 | 'construct': permitido somente em escopo de arquivo; não deve estar em uma construção aninhada |
Erro do compilador C2851 | 'enum': uma enumeração WinRT pública somente pode usar 'int' ou 'unsigned int' como tipo base |
Erro do compilador C2852 | 'identifier': apenas membros de dados podem ser inicializados dentro de uma classe |
Erro do compilador C2853 | 'identifier': um membro de dados não estático não pode ter um tipo que contenha 'auto' |
Erro do compilador C2854 | erro de sintaxe em #pragma hdrstop |
Erro do compilador C2855 | opção de linha de comando “option” inconsistente com cabeçalho pré-compilado |
Erro do compilador C2856 | #pragma hdrstop não pode estar dentro de um bloco #if |
Erro do compilador C2857 | instrução “#include” especificada com a opção de linha de comando /Ycfilename não foi encontrada no arquivo de origem |
Erro do compilador C2858 | opção de linha de comando '/Yc (/Fdfilename)' inconsistente com o cabeçalho pré-compilado, que usou '/Fdfilename' (obsoleto no Visual Studio 2022.) |
Erro do compilador C2859 | filename não é o arquivo filetype que foi usado quando este cabeçalho pré-compilado foi criado, recrie o cabeçalho pré-compilado. |
Erro do compilador C2860 | 'nulo' não pode ser usado como um parâmetro de função, exceto para '(nulo)' |
Erro do compilador C2861 | 'declaration': uma função de membro de interface não pode ser definida |
Erro do compilador C2862 | 'interface': uma interface só pode ter membros públicos |
Erro do compilador C2863 | 'interface': uma interface não pode ter amigos |
Erro do compilador C2864 | 'identifier': uma variável de membro/modelo de dados estáticos com um inicializador em classe deve ter o tipo integral const não volátil |
Erro do compilador C2865 | 'operator': comparação ilegal para ponteiro/identificador de objeto |
Erro do compilador C2866 | Obsoleto. |
Erro do compilador C2867 | 'identifier': não é um namespace |
Erro do compilador C2868 | 'identifier': sintaxe ilegal declaração using; nome qualificado esperado |
Erro do compilador C2869 | 'identifier': já foi definido como um namespace |
Erro do compilador C2870 | 'identifier': uma definição de namespace precisa aparecer no escopo do arquivo ou imediatamente dentro de outra definição de namespace |
Erro do compilador C2871 | 'identifier': um namespace com esse nome não existe |
Erro do compilador C2872 | 'identifier': símbolo ambíguo |
Erro do compilador C2873 | 'symbol': o símbolo não pode ser usado em uma declaração using |
Erro do compilador C2874 | a declaração using causa uma declaração múltipla de 'identifier' |
Erro do compilador C2875 | declaração using causa uma declaração múltipla de 'class::identifier' (obsoleto no Visual Studio 2022.) |
Erro do compilador C2876 | 'class::member': nem todas as sobrecargas são acessíveis |
Erro do compilador C2877 | 'member não é acessível da 'class' |
Erro do compilador C2878 | 'identifier': um namespace ou classe com este nome não existe |
Erro do compilador C2879 | 'identifier': somente um namespace existente pode receber um nome alternativo por uma definição de alias de namespace |
Erro do compilador C2880 | __swi ou __hvc requer uma constante válida como primeiro argumento (SWI number) |
Erro do compilador C2881 | 'identifier': já é usado como um alias para 'class' |
Erro do compilador C2882 | 'identifier': uso ilegal do identificador de namespace na expressão |
Erro do compilador C2883 | 'function': conflitos de declaração da função com 'identifier' introduzido pela declaração using |
Erro do compilador C2884 | 'identifier': introduzido por conflitos de declaração using com a função local 'function' |
Erro do compilador C2885 | 'class::identifier': não é uma declaração using válida em escopo diferente de classe |
Erro do compilador C2886 | 'class::identifier': o símbolo não pode ser usado em uma declaração using de membro |
Erro do compilador C2887 | __swi ou __hvc não pode possuir mais do que cinco argumentos (SWI number, r0 - r3) |
Erro do compilador C2888 | 'identifier': o símbolo não pode ser definido dentro do namespace 'namespace' |
Erro do compilador C2889 | 'class': um tipo de classe gerenciado/WinRT não pode ser uma classe base virtual |
Erro do compilador C2890 | 'class': uma classe ref só pode ter uma classe base que não seja de interface |
Erro do compilador C2891 | 'parameter': não é possível usar o endereço de um parâmetro de modelo |
Erro do compilador C2892 | a classe local não deve ter modelos de membro |
Erro do compilador C2893 | Falha ao especializar o modelo de função 'template' |
Erro do compilador C2894 | modelos não podem ser declarados com tendo vínculo 'C' |
Erro do compilador C2895 | 'declaration': não é possível instanciar explicitamente um template de função que tenha sido declarado com dllimport |
Erro do compilador C2896 | 'function1': não é possível usar o 'function2' genérico/de modelo de função como um argumento de função (obsoleto no Visual Studio 2022.) |
Erro do compilador C2897 | um destruidor/finalizador não pode ser um modelo de função |
Erro do compilador C2898 | “declaration”: modelos de função membro não podem ser virtuais |
Erro do compilador C2899 | Obsoleto. |
Confira também
Compilador C/C++ e erros e avisos das ferramentas de build
Erros do compilador C2000 a C3999, C7000 a C7999