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