Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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. Foram criados alguns tópicos de erro 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 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 no Stack Overflow para encontrar soluções.
Para obter links para ajuda adicional e recursos da comunidade, consulte Ajuda e Comunidade do Visual C++.
Mensagens de erro
| Erro | Mensagem |
|---|---|
| Erro do compilador C2600 | 'função': não é possível definir uma função de membro especial gerada pelo compilador (deve ser declarada na classe primeiro) |
| Erro do compilador C2601 | 'função': definições locais de função são ilegais |
| Erro do compilador C2602 | 'classe::identificador' não é um membro de nenhuma classe base de 'classe' |
| Erro do compilador C2603 | 'function': Muitos objetos estáticos de escopo de bloco com construtores/destrutores na função |
| Erro do compilador C2604 | 'identificador': Não é possível implementar mais de um método de interface |
| Erro do compilador C2605 | 'identificador': este método é reservado dentro de uma classe gerenciada/WinRT |
| Erro de compilador C2606 | 'class1': não é possível reimplementar 'membro', pois é herdado da base de tempo de execução 'class2' |
| Erro do compilador C2607 | asserção estática falhou |
| Erro de compilador C2608 | token inválido 'token' na lista de parâmetros de macro |
| Erro de compilador C2609 | falta ')' na lista de parâmetros da macro |
| Erro do compilador C2610 | 'classe::membro': não é uma função de membro especial que pode ser padrão |
| Erro do compilador C2611 | 'token': ilegal após '~' (identificador esperado) |
| Erro do compilador C2612 | A seguir 'caractere' ilegal na lista de inicializadores base/membro |
| Erro de compilador C2613 | à direita 'caractere' ilegal na lista de classe base |
| Erro do compilador C2614 | 'classe': inicialização ilegal de membro: 'identificador' não é uma base ou membro |
| Erro do compilador C2615 | 'offsetof' não pode ser aplicado a tipos não pertencentes à classe 'tipo' |
| Erro de compilador C2616 | 'conversão': não pode converter implicitamente um não-lvalue 'tipo1' para um 'tipo2' que não é const |
| Erro de compilador C2617 | 'função': declaração de retorno inconsistente |
| Erro do compilador C2618 | Designação de Membro Ilegal em offsetof |
| Erro de compilador C2619 | 'identificador': um membro de dado estático não é permitido numa estrutura/união anônima |
| Erro do compilador C2620 | Obsoleto. |
| Erro do compilador C2621 | Obsoleto. |
| Erro do compilador C2622 | Obsoleto. |
| Erro do compilador C2623 | Obsoleto. |
| Erro do compilador C2624 | 'escopo::tipo': classes locais não podem ser usadas para declarar variáveis 'externas' |
| Erro do compilador C2625 | «identificador»: membro de união ilegal; tipo 'tipo' é tipo de referência |
| Erro do compilador C2626 | 'identificador': um membro de dados privados/protegidos não é permitido em uma estrutura/união anônima |
| Erro de compilador C2627 | 'função': função de membro não permitida na união anônima |
| Erro de compilador C2628 | 'tipo1' seguido de 'tipo2' é ilegal (esqueceu-se de um ';'?) |
| Erro de compilador C2629 | 'identificador': uma estrutura/união anônima não pode declarar um tipo aninhado |
| Erro do compilador C2630 | 'símbolo' encontrado no que deveria ser uma lista separada por vírgulas |
| Erro do compilador C2631 | 'identificador': uma classe ou enum não pode ser definida em um modelo de alias |
| Erro do compilador C2632 | 'tipo1' seguido de 'tipo2' é ilegal |
| Erro do compilador C2633 | 'identificador': 'inline' é a única classe de armazenamento válida para construtores |
| Erro do compilador C2634 | 'classe::membro': ponteiro para membro de referência é ilegal |
| Erro do compilador C2635 | não é possível converter um 'tipo1*' para um 'tipo2*'; a conversão de uma classe base virtual está implícita |
| Erro do compilador C2636 | 'identificador': ponteiro para membro de referência é ilegal |
| Erro de compilador C2637 | 'identificador': não é possível modificar ponteiros para membros de dados |
| Erro de compilador C2638 | 'identificador': modificador ilegal __based em ponteiros de membro |
| Erro de compilador C2639 | O tipo de retorno final 'tipo' do guia de dedução deve ser uma especialização de 'classe template' |
| Erro do compilador C2640 | «declarador abstrato»: modificador __based ilegal em referência |
| Erro de compilador C2641 | não é possível deduzir argumentos de modelo para 'nome do modelo' |
| Erro do compilador C2642 | Duas declarações de guia de dedução para o mesmo modelo de classe não podem ter lista de parâmetros e cabeçalho de modelo equivalentes |
| Erro de compilador C2643 | o guia de dedução deve ser declarado no mesmo âmbito que o modelo de classe correspondente 'nome do modelo' |
| Erro de compilador C2644 | guia de dedução deve ter o mesmo acesso que o modelo de classe correspondente 'nome do modelo' |
| Erro do compilador C2645 | nenhum nome qualificado para ponteiro para um membro (encontrado ':: *') |
| Erro do compilador C2646 | Uma estrutura/união anônima no escopo global ou de namespace deve ser declarada estática |
| Erro de compilador C2647 | 'operador': não é possível desreferenciar um 'tipo1' em um 'tipo2' |
| Erro de compilador C2648 | 'identificador': para usar um membro como parâmetro padrão, é necessário que seja um membro estático. |
| Erro do compilador C2649 | 'identificador': não é uma 'classe/estrutura/união' |
| Erro do compilador C2650 | 'operador': não pode ser uma função virtual |
| Erro do compilador C2651 | 'tipo': à esquerda de '::' deve ser uma classe, struct ou union |
| Erro de compilador C2652 | 'identificador': construtor de cópia ilegal: o primeiro parâmetro não deve ser um tipo '' |
| Erro de compilador C2653 | 'identificador': não é um nome de classe ou namespace |
| Erro do compilador C2654 | 'identificador': tentativa de acessar membro fora de uma função de membro |
| Erro do compilador C2655 | « identificador»: definição ou redeclaração ilegal no âmbito de aplicação atual |
| Erro do compilador C2656 | 'função': função não é permitida como um campo de bits |
| Erro do compilador C2657 | 'classe::*' encontrada no início de uma instrução (esqueceste-te de especificar um tipo?) |
| Erro de compilador C2658 | 'identificador': redefinição em struct/union anónimo |
| Erro do compilador C2659 | 'operador': função como operando esquerdo |
| Erro do compilador C2660 | 'função': função não aceita número argumentos |
| Erro do compilador C2661 | 'função': nenhuma função sobrecarregada leva número argumentos |
| Erro do compilador C2662 | 'função': não é possível converter 'este' ponteiro de 'type1' para 'type2' |
| Erro de compilador C2663 | 'função': nenhuma função sobrecarregada tem conversão válida para o ponteiro 'this' |
| Erro de compilador C2664 | 'função': não é possível converter o argumento número de 'tipo1' para 'tipo2' |
| Erro do compilador C2665 | 'função': nenhuma função sobrecarregada poderia converter todos os tipos de argumento |
| Erro do compilador C2666 | 'função': funções sobrecarregadas têm conversões semelhantes |
| Erro do compilador C2667 | 'função': nenhuma função sobrecarregada tem uma melhor conversão |
| Erro do compilador C2668 | 'função': chamada ambígua para função sobrecarregada |
| Erro do compilador C2669 | Função de membro não permitida na união anônima |
| Erro de compilador C2670 | 'função': o modelo de função não pode converter parâmetro número do tipo 'tipo' |
| Erro do compilador C2671 | 'função': as funções de membro estático não têm ponteiros 'este' |
| Erro de compilador C2672 | 'função': nenhuma função sobrecarregada correspondente encontrada |
| Erro de compilador C2673 | 'função': funções globais não têm ponteiros 'this' |
| Erro do compilador C2674 | Neste contexto, não é permitida uma declaração genérica |
| Erro de compilador C2675 | operador unário '': ' tipo' não define este operador nem uma conversão para um tipo aceito pelo operador predefinido |
| Erro do compilador C2676 | operador binário '': 'tipo' não define este operador nem uma conversão para um tipo aceitável para o operador predefinido |
| Erro do compilador C2677 | Operador binário 'operador': nenhum operador global encontrado que aceita o tipo 'tipo' (ou não há uma conversão aceitável) |
| Erro de compilador C2678 | operador binário '': nenhum operador encontrado que aceite um operando à esquerda do tipo 'tipo' (ou não há conversão aceitável) |
| Erro do compilador C2679 | binário 'operador': não foi encontrado nenhum operador que aceite um operando à direita do tipo 'tipo' (ou não há conversão aceitável) |
| Erro do compilador C2680 | 'type': tipo de destino inválido para cast |
| Erro do compilador C2681 | 'type': tipo de expressão inválido para cast |
| Erro de compilador C2682 | não pode usar 'cast' para converter de 'type1' para 'type2' |
| Erro do compilador C2683 | 'fundido': 'tipo' não é um tipo polimórfico |
| Erro de compilador C2684 | 'declarador': funções eliminadas e padrão não são suportadas em classes geridas/WinRT |
| Erro do compilador C2685 | 'declarador': funções excluídas e padrão não são suportadas com especificadores de restrição explícitos |
| Erro do compilador C2686 | Não é possível sobrecarregar funções de membro estático e não estático com os mesmos tipos de parâmetros |
| Erro do compilador C2687 | «tipo»: a declaração de exceção não pode ser «nula» nem indicar um tipo ou ponteiro incompleto ou uma referência a um tipo incompleto |
| Erro do compilador C2688 | 'tipo::membro': retornos covariantes com herança múltipla ou virtual não suportada para funções varargs |
| Erro do compilador C2689 | 'função': uma função amiga não pode ser definida dentro de uma classe local |
| Erro de compilador C2690 | 'operador': não é possível executar aritmética de ponteiro em uma matriz gerenciada/WinRT |
| Erro de compilador C2691 | 'type': uma matriz gerenciada/WinRT não pode ter esse tipo de elemento |
| Erro de compilador C2692 | 'função': funções totalmente prototipadas necessárias para o compilador C ao usar a opção '/clr' |
| Erro de compilador C2693 | 'operador': comparação ilegal para referências a uma matriz gerenciada/WinRT |
| Erro de compilador C2694 | 'override_function': a função virtual de substituição tem uma especificação de exceção menos restritiva do que a função virtual de membro da classe base 'base_function' |
| Erro de compilador C2695 | 'override_function': a substituição da função virtual difere de 'base_function' apenas na convenção de chamada |
| Erro de compilador C2696 | Não é possível criar um objeto temporário do tipo gerenciado/WinRT 'tipo' |
| Erro de compilador C2697 | Obsoleto. |
| Erro do compilador C2698 | a declaração de utilização para a «declaração de»1» não pode coexistir com a declaração de utilização existente para a «declaração de»2» |
Ver também
Erros e avisos do compilador C/C++ e das ferramentas de construção
Erros de compilador C2000 - C3999, C7000 - C7999