Compartilhar 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 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 C2900 'declarator': modelos de funções membro nas classes de WinRT precisam ser 'private', 'internal' ou 'protected private'
Erro do compilador C2901 'identifier': uma interface genérica ou representante não pode ser público
Erro do compilador C2902 'token': token inesperado após 'template/generic', identificador esperado (Obsoleto no Visual Studio 2022.)
Erro do compilador C2903 'identifier': o símbolo não é nem um template/generic de classe nem um template/generic de função
Erro do compilador C2904 'identifier': nome já usado para um modelo no escopo atual
Erro do compilador C2905 Obsoleto.
Erro do compilador C2906 'template': especialização explícita requer 'template <>'
Erro do compilador C2907 o argumento de registro 'number' não especifica um número de registro válido
Erro do compilador C2908 especialização explícita; 'template' já foi instanciado
Erro do compilador C2909 'identifier': a instanciação explícita do modelo de função exige um tipo de retorno
Erro do compilador C2910 'function': não é possível especializar explicitamente
Erro do compilador C2911 'member' : não pode ser declarado ou definido no escopo atual
Erro do compilador C2912 especialização explícita; 'declaration' não é uma especialização de um modelo de função
Erro do compilador C2913 especialização explícita; 'declaration' não é uma especialização de um modelo de classe
Erro do compilador C2914 'identifier': não é possível deduzir argumento de template/generic porque o argumento de função é ambíguo
Erro do compilador C2915 'identifier': 'type' não pode ser usado diretamente na superfície publicada de um tipo WinRT. Use 'Platform::Object^' em vez disso para passar esse tipo
Erro do compilador C2916 'identifier': [FlagsAttribute] precisa ser especificado (apenas) em uma enumeração pública com um tipo subjacente 'unsigned int'
Erro do compilador C2917 'identifier': parâmetro de modelo inválido (obsoleto no Visual Studio 2022.)
Erro do compilador C2918 'identifier': as propriedades indexadas não podem ser usadas na superfície publicada de um tipo WinRT
Erro do compilador C2919 'type': os operadores não podem ser usados na superfície publicada de um tipo WinRT
Erro do compilador C2920 redefinição: 'type': o template/generic de classe já foi declarado como 'declaration'
Erro do compilador C2921 redefinição: 'type': o template/generic de classe está sendo declarado como 'declaration'
Erro do compilador C2922 'interface': Uma interface WinRT não pode conter membros estáticos
Erro do compilador C2923 'type': 'identifier' não é um argumento de tipo de modelo válido para o parâmetro 'parameter'
Erro do compilador C2924 o argumento de rotina __declspec(interrupt) não está em R2
Erro do compilador C2925 a rotina __declspec(interrupt) não pode usar ponto flutuante
Erro do compilador C2926 'identifier': não é permitido um inicializador de membro padrão para um membro de um struct anônimo dentro de uma união
Erro do compilador C2927 'identifier': um modelo de função precisa ser chamado com pelo menos um argumento
Erro do compilador C2928 instanciação explícita; 'identifier' não é um membro de dados estáticos ou de função da classe de modelo 'class'
Erro do compilador C2929 'declarator': instanciação explícita; não pode forçar e suprimir explicitamente a instanciação do membro da classe de modelo
Erro do compilador C2930 'class': template-id/generic-id redefinido como um enumerador de 'enum identifier'
Erro do compilador C2931 'class1': template-id/generic-id redefinido como uma função membro de 'class2' (obsoleto 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 do compilador C2933 'type': template-id/generic-id redefinido como um membro typedef de 'identifier' (obsoleto no Visual Studio 2022.)
Erro do 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 do compilador C2936 'type': template-id/generic-id redefinido como uma variável de dados global (obsoleto no Visual Studio 2022.)
Erro do compilador C2937 'type': template-id/generic-id 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 (obsoleto no Visual Studio 2022.)
Erro do compilador C2940 'type': template-id/generic-id redefinido como um typedef local (obsoleto no Visual Studio 2022.)
Erro do 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 um argumento formal de uma função (obsoleto no Visual Studio 2022.)
Erro do compilador C2943 'type': template-id/generic-id redefinido como um argumento de tipo de um modelo (obsoleto no Visual Studio 2022.)
Erro do compilador C2944 'type': template-id/generic-id redefinido como um argumento de valor de um modelo (obsoleto no Visual Studio 2022.)
Erro do compilador C2945 instanciação explícita não faz referência a uma especialização de classe do modelo
Erro do compilador C2946 instanciação explícita; 'type' não é uma especialização de classe de modelo
Erro do compilador C2947 esperando '>' para encerrar argumentos de modelo, encontrado 'token'
Erro do compilador C2948 instanciação explícita; o especificador de classe de armazenamento 'specifier' não é permitido na especialização
Erro do compilador C2949 thread_local não é compatível com /kernel
Erro do compilador C2950 Obsoleto.
Erro do compilador C2951 declarações de template/generic são permitidas apenas em escopo global, de namespace, ou de classe
Erro do compilador C2952 'declaration': declaração de template/generic com lista de parâmetros de template/generic ausente
Erro do compilador C2953 'type': o modelo de classe já foi definido
Erro do compilador C2954 argumento de palavra de instrução fora do intervalo
Erro do compilador C2955 'type': uso de template/generic de classe exige uma lista de argumentos de template/generic
Erro do compilador C2956 A função de desalocação usual 'function' seria escolhida como uma função de desalocação de posicionamento.
Erro do compilador C2957 'token': delimitador esquerdo inválido: '<' esperado
Erro do compilador C2958 o delimitador esquerdo encontrado em 'file(line_number)' não foi correspondido corretamente
Erro do compilador C2959 uma classe ou função genérica pode não ser um membro de um modelo
Erro do compilador C2960 Obsoleto.
Erro do compilador C2961 'function': instanciações explícitas inconsistentes, uma instanciação explícita anterior não especificou 'argument'
Erro do compilador C2962 erro de sintaxe : 'token': era esperado que a definição de função membro da classe de modelo terminasse com '}'
Erro do compilador C2963 Obsoleto.
Erro do compilador C2964 Obsoleto.
Erro do compilador C2965 __declspec(especificador) não é compatível com /kernel
Erro do compilador C2966 'identifier1': precisa ter o mesmo __declspec(code_seg(...)) que a respectiva classe base 'identifier2' (obsoleto no Visual Studio 2022.)
Erro do compilador C2967 'identifier': uma função virtual que substitui deve ter o mesmo __declspec(code_seg(...)) que uma função virtual substituída (Obsoleta no Visual Studio 2022.)
Erro do compilador C2968 'identifier': declaração de alias recursiva
Erro do compilador C2969 erro de sintaxe: 'token': era esperado que a definição de função membro terminasse com '}'
Erro do compilador C2970 'type': parâmetro de modelo 'parameter': 'argument' uma expressão envolvendo objetos com vínculo interno não pode ser usada como um argumento sem tipo
Erro do compilador C2971 'type': parâmetro de modelo 'parameter': 'argument': uma variável local com duração de armazenamento não estática não pode ser usada como um argumento sem tipo
Erro do compilador C2972 'type': parâmetro do modelo 'parameter': o tipo de argumento sem-tipo não é válido
Erro do compilador C2973 'template':argumento de modelo 'number' inválido
Erro do compilador C2974 'type': argumento de template/generic inválido para 'parameter', tipo era esperado
Erro do compilador C2975 'type' : argumento de modelo inválido para 'parameter', expressão de constante de tempo de compilação esperada
Erro do compilador C2976 'type': número insuficiente de argumentos de template/generic
Erro do compilador C2977 'type': excesso de argumentos de template/generic
Erro do compilador C2978 erro de sintaxe: esperado 'keyword1' ou 'keyword2'; encontrado o tipo 'type'; parâmetros de não tipo não são compatíveis com genéricos
Erro do compilador C2979 especializações explícitas não são suportadas em genéricos
Erro do compilador C2980 Não há suporte para manipulação de exceção de C++ com /kernel
Erro do compilador C2981 o formulário dinâmico de 'keyword' não é compatível com /kernel
Erro do compilador C2982 'declaration': um __declspec(code_seg(...)) diferente foi usado: era 'identifier1', agora é 'identifier2'
Erro do compilador C2983 'declaration': todas as declarações precisam ter uma __declspec(code_seg(...)) idêntica
Erro do compilador C2984 Obsoleto.
Erro do compilador C2985 'argument': o argumento __declspec(code_seg(...)) precisa ser uma seção de texto
Erro do compilador C2986 'identifier': __declspec(code_seg(...)) só pode ser aplicado a uma classe ou uma função
Erro do compilador C2987 uma declaração não pode ter __declspec(code_seg('identifier')) e __declspec(code_seg('value'))
Erro do compilador C2988 declaração/definição de modelo irreconhecível
Erro do compilador C2989 'class': o template/generic de classe já foi declarado como um template/generic de não classe
Erro do compilador C2990 'class': um template/generic de não classe já foi declarado como um template/generic de classe
Erro do compilador C2991 redefinição do parâmetro 'parameter' de template/generic
Erro do compilador C2992 'class': lista de parâmetros de template/generic inválida ou ausente
Erro do compilador C2993 'type': tipo ilegal para parâmetro de modelo de não tipo 'identifier'
Erro do compilador C2994 classe sem nome na lista de parâmetros de modelo
Erro do compilador C2995 'declaration': o modelo de função já foi definido
Erro do compilador C2996 'function' : definição do modelo de função recursiva
Erro do compilador C2997 'function': o limite de matriz não pode ser deduzido de um inicializador de membro padrão
Erro do compilador C2998 'declarator': não pode ser uma definição de modelo

Confira também

Compilador C/C++ e erros e avisos das ferramentas de build
Erros do compilador C2000 a C3999, C7000 a C7999