Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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