Partilhar via


Erros do compilador C2900 a C2999

Os artigos nesta seção da documentação explicam um subconjunto das mensagens de erro geradas pelo compilador.

Importante

Os compiladores e ferramentas de compilação do Visual Studio podem relatar muitos tipos de erros e avisos. Depois que um erro ou aviso é encontrado, as ferramentas de compilação podem 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 podem não se aplicar ao seu projeto. Quando você corrige problemas em seu projeto, sempre comece com o primeiro erro ou aviso relatado e recrie com frequência. Uma correção pode resolver vários erros subsequentes.

Para obter ajuda sobre uma mensagem de diagnóstico específica no Visual Studio, selecione-a na janela Output e pressione a tecla F1. O Visual Studio abre a página de documentação para esse erro, se existir. 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 o índice nesta página.

Observação

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

Você pode encontrar assistência adicional para erros e avisos em fóruns do Microsoft Q&A C++. Ou, procure o número de erro ou aviso no Visual Studio C++ Developer Community site. Você também pode pesquisar Stack Overflow para encontrar soluções.

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

Mensagens de erro

Erro Mensagem
Erro de compilador C2900 'declarador': os modelos de função de membro nas classes WinRT devem ser 'privados', 'internos' ou 'privados protegidos'
Erro de compilador C2901 «identificador»: uma interface genérica ou um delegado não pode ser público
Erro de compilador C2902 'token': token inesperado após 'template/generic', identificador esperado (obsoleto no Visual Studio 2022.)
Erro do compilador C2903 «identificador»: o símbolo não é nem um modelo de classe/genérico nem um modelo de função/genérico
Erro de compilador C2904 «identificador»: nome já utilizado para um modelo no âmbito atual
Erro de compilador C2905 Obsoleto.
Erro de compilador C2906 'modelo': especialização explícita requer 'modelo <>'
Erro do compilador C2907 O argumento de registo «número» não especifica um número de registo válido
Erro de compilador C2908 especialização explícita; 'template' já foi instanciado
Erro do compilador C2909 'identificador': instanciação explícita do modelo de função requer tipo de retorno
Erro do compilador C2910 'função': não pode ser explicitamente especializada
Erro do compilador C2911 «Membro»: não pode ser declarado ou definido no âmbito de aplicação atual
Erro de compilador C2912 'declaração' de especialização explícita não é uma especialização de um modelo de função
Erro de compilador C2913 especialização explícita; 'declaração' não é uma especialização de um modelo de classe
Erro de compilador C2914 'identificador': não é possível deduzir modelo/argumento genérico como argumento de função é ambíguo
Erro de compilador C2915 'identifier': 'type' não pode ser usado diretamente na superfície publicada de um tipo WinRT. Utilize 'Platform::Object^' em vez disso para passar este tipo
Erro de compilador C2916 'identifier': [FlagsAttribute] deve ser especificado (apenas) num enum público com um tipo 'unsigned int' subjacente
Erro do compilador C2917 'identifier': parâmetro de modelo inválido (obsoleto no Visual Studio 2022.)
Erro de compilador C2918 'identificador': as propriedades indexadas não podem ser usadas na superfície publicada de um tipo WinRT
Erro de compilador C2919 'tipo': Os operadores não podem ser usados na superfície publicada de um tipo WinRT
Erro de compilador C2920 redefinição: 'tipo': modelo de classe/genérico já foi declarado como 'declaração'
Erro de compilador C2921 redefinição: 'tipo': modelo de classe/genérico está sendo redeclarado como 'declaração'
Erro do compilador C2922 'interface': Uma interface WinRT não pode conter membros estáticos
Erro do compilador C2923 'type': 'identifier' não é um modelo válido/argumento de tipo genérico para o parâmetro 'parameter'
Erro de compilador C2924 __declspec(interrupção) argumento de rotina não em R2
Erro de compilador C2925 __declspec(interrupt) rotina não pode usar ponto flutuante
Erro de compilador C2926 'identificador': um inicializador de membro padrão não é permitido para um membro de uma struct anônima dentro de uma união
Erro de compilador C2927 'identificador': um modelo de função deve ser chamado com pelo menos um argumento
Erro do compilador C2928 instanciação explícita; 'identificador' não é uma função ou membro de dados estáticos da classe de modelo 'classe'
Erro do compilador C2929 «Declarador»: instanciação explícita; não é possível forçar e suprimir explicitamente a instanciação do membro da classe de modelo
Erro de compilador C2930 'class': template-id/generic-id redefinido como um enumerador de 'enum identifier'
Erro de compilador C2931 'class1': template-id/generic-id redefinido como uma função de membro de 'class2' (obsoleta no Visual Studio 2022.)
Erro do compilador C2932 'type': template-id/generic-id redefinido como um membro de dados de 'identifier' (Obsoleto no Visual Studio 2022.)
Erro de compilador C2933 'type': template-id/generic-id redefinido como um membro "typedef" de 'identifier' (Obsoleto no Visual Studio 2022.)
Erro de compilador C2934 'type': template-id/generic-id redefinido como um 'item' aninhado de 'identifier' (Obsoleto no Visual Studio 2022.)
Erro do compilador C2935 'type': template-id/generic-id redefinido como uma função global (obsoleto no Visual Studio 2022.)
Erro de compilador C2936 'type': template-id/generic-id redefinido como uma variável de dados global (obsoleta no Visual Studio 2022.)
Erro de compilador C2937 'type': template-id/generic-id foi redefinido como um typedef global (obsoleto no Visual Studio 2022.)
Erro do compilador C2938 'identifier' : Falha ao especializar o modelo de alias
Erro do compilador C2939 'type': template-id/generic-id redefinido como uma variável de dados local (obsoleta no Visual Studio 2022.)
Erro de compilador C2940 'type': identificador de modelo/identificador genérico redefinido como um typedef local (Obsoleto no Visual Studio 2022.)
Erro de compilador C2941 'type': template-id/generic-id redefinido como um 'item' local (obsoleto no Visual Studio 2022.)
Erro do compilador C2942 'type': template-id/generic-id redefinido como argumento formal de uma função (obsoleto no Visual Studio 2022.)
Erro de compilador C2943 'type': template-id/generic-id redefinido como um argumento de tipo de um template (Obsoleto como tal no Visual Studio 2022.)
Erro de compilador C2944 'type': template-id/generic-id redefinido como um argumento de valor de um template (Obsoleto no Visual Studio 2022.)
Erro de compilador C2945 instanciação explícita não se refere a uma especialização de classe de modelo
Erro de compilador C2946 instanciação explícita; 'tipo' não é uma especialização de classe de modelo
Erro do compilador C2947 esperando '>' para encerrar argumentos de modelo, encontrado 'token'
Erro de compilador C2948 instanciação explícita; especificador de classe de armazenamento «especificador» não permitido na especialização
Erro do compilador C2949 thread_local não é suportado com /kernel
Erro do compilador C2950 Obsoleto.
Erro de compilador C2951 As declarações de modelo/genéricas só são permitidas no âmbito global, de espaço de nomes ou de classe
Erro de compilador C2952 «declaração»: declaração de modelo/genérica sem lista de parâmetros de modelo/genéricos
Erro do compilador C2953 'tipo': modelo de classe já foi definido
Erro do compilador C2954 argumento de palavra de instrução não no intervalo
Erro de compilador C2955 'tipo': o uso de modelo de classe/genérico requer modelo/lista de argumentos genéricos
Erro de compilador C2956 a função de desalocação habitual «função» seria escolhida como função de desalocação de placement
Erro de compilador C2957 'token': delimitador esquerdo inválido: esperado '<'
Erro do compilador C2958 o delimitador esquerdo encontrado em 'file(line_number)' não foi pareado corretamente
Erro de compilador C2959 Uma classe ou função genérica pode não ser membro de um modelo
Erro de compilador C2960 Obsoleto.
Erro de compilador C2961 'função': instanciações explícitas inconsistentes, uma instanciação explícita anterior não especificou 'argumento'
Erro do compilador C2962 erro de sintaxe: 'token': definição de função de membro de classe de modelo esperada para terminar com '}'
Erro de compilador C2963 Obsoleto.
Erro de compilador C2964 Obsoleto.
Erro de compilador C2965 __declspec(especificador) não é suportado com /kernel
Erro do compilador C2966 'identifier1': deve ter o mesmo __declspec(code_seg(...)) que sua classe base 'identifier2' (obsoleta no Visual Studio 2022.)
Erro de compilador C2967 'identificador': uma função virtual de substituição deve ter o mesmo __declspec(code_seg(...)) que uma função virtual substituída (obsoleta no Visual Studio 2022.)
Erro de compilador C2968 «Identificador»: declaração de alias recursiva
Erro de compilador C2969 erro de sintaxe: 'token': definição de função de membro esperada para terminar com '}'
Erro do compilador C2970 'type': parâmetro de modelo 'parâmetro': 'argumento': uma expressão envolvendo objetos com ligação interna não pode ser usada como um argumento de não-tipo
Erro do compilador C2971 'type': parâmetro do modelo 'parâmetro': 'argumento': uma variável com duração de armazenamento não estática não pode ser usada como um argumento não-tipo
Erro de compilador C2972 'type': parâmetro de modelo 'parâmetro': o tipo de argumento não-tipo é inválido
Erro do compilador C2973 'template': argumento de modelo inválido 'número'
Erro do compilador C2974 'type': modelo inválido/argumento genérico para 'parâmetro', tipo esperado
Erro de compilador C2975 'type': argumento de modelo inválido para 'parâmetro', expressão constante esperada em tempo de compilação
Erro do compilador C2976 'tipo': muito poucos argumentos de modelo/genéricos
Erro de compilador C2977 'tipo': demasiados argumentos de modelo/genéricos
Erro de compilador C2978 erro de sintaxe: esperada 'palavra-chave1' ou 'palavra-chave2'; encontrado tipo 'tipo'; parâmetros não do tipo não são suportados em genéricos
Erro de compilador C2979 especializações explícitas não são suportadas em genéricos
Erro do compilador C2980 O tratamento de exceções C++ não é suportado com /kernel
Erro do compilador C2981 a forma dinâmica de 'palavra-chave' não é suportada com /kernel
Erro do compilador C2982 «declaração»: __declspec (code_seg(...)) diferente utilizado: era «identifier1» agora «identifier2»
Erro de compilador C2983 «Nome»: uma definição deve ser idêntica __declspec(code_seg(...)) à da declaração prévia
Erro do compilador C2984 Obsoleto.
Erro do compilador C2985 «argumento»: o argumento para __declspec(code_seg(...)) deve ser uma secção de texto
Erro de compilador C2986 '__declspec(code_seg(...))' só pode ser aplicado a uma classe ou função
Erro do compilador C2987 Uma declaração não pode ter __declspec(code_seg('identificador')) e __declspec(code_seg('valor'))
Erro de compilador C2988 declaração/definição de modelo irreconhecível
Erro de compilador C2989 'classe': modelo de classe/genérico já foi declarado como modelo não-classe/genérico
Erro de compilador C2990 'classe': modelo não-classe/genérico já foi declarado como modelo de classe/genérico
Erro de compilador C2991 redefinição do modelo/parâmetro genérico 'parâmetro'
Erro de compilador C2992 'classe': modelo inválido ou ausente/lista de parâmetros genérica
Erro do compilador C2993 'tipo': tipo ilegal para o parâmetro de modelo não tipo 'identificador'
Erro de compilador C2994 Classe sem nome na lista de parâmetros do modelo
Erro de compilador C2995 'declaração': modelo de função já foi definido
Erro de compilador C2996 'função': definição de modelo de função recursiva
Erro de compilador C2997 'function': o limite da matriz não pode ser derivado de um inicializador de membro padrão
Erro de compilador C2998 'identificador': não pode ser uma definição de modelo

Ver também

Erros e avisos do compilador C/C++ e das ferramentas de compilação
Erros de compilador C2000 - C3999, C7000 - C7999