Compartilhar via


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