Erros do Compilador C2300 a C2399
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 C2300 | 'classe': a classe não tem um destruidor chamado '~classe' |
Erro do compilador C2301 | a esquerda de '->~identificador' deve apontar para classe/struct/união |
Erro do compilador C2302 | à esquerda de '.~identificador', deve haver um tipo de classe/struct/união |
Erro do compilador C2303 | O tratamento de exceções estruturado não pode ser usado em uma corrotina |
Erro do compilador C2304 | Não é possível usar 'palavra-chave' dentro de um bloco catch |
Erro do compilador C2305 | 'arquivo' não contém a informação de depuração para este módulo |
Erro do compilador C2306 | 'arquivo' não contém a informação de depuração mais recente para este módulo |
Erro do compilador C2307 | diretiva de pragma deve ser movida para fora da função se a compilação incremental estiver habilitada |
Erro do compilador C2308 | concatenando cadeias de caracteres incompatíveis |
Erro do compilador C2309 | o manipulador catch esperava uma declaração de exceção entre parênteses |
Erro do compilador C2310 | os manipuladores catch devem especificar um tipo |
Erro do compilador C2311 | 'tipo': é capturado por '...' na linha número |
Erro do compilador C2312 | 'tipo1' : é capturado por 'tipo2' na linha número |
Erro do compilador C2313 | 'tipo1' : é capturado por referência ('tipo2') na linha número |
Erro do compilador C2314 | A palavra-chave 'palavra-chave1' foi preterida: use 'palavra-chave2' |
Erro do compilador C2315 | 'tipo1' : a referência é capturada por 'tipo2' na linha número |
Erro do compilador C2316 | 'tipo': não pode ser capturado porque o destruidor e/ou o construtor de cópia estão inacessíveis ou foram excluídos |
Erro do compilador C2317 | O bloco 'try' que começa na linha 'número' não tem manipuladores catch |
Erro do compilador C2318 | nenhum bloco try associado a este manipulador catch |
Erro do compilador C2319 | 'try/catch' precisa ser seguido por uma instrução composta. Ausente '{' |
Erro do compilador C2320 | esperado ':' seguir o especificador de acesso 'specifier' |
Erro do compilador C2321 | 'identificador' é uma palavra-chave e não pode ser usado neste contexto |
Erro do compilador C2322 | 'identificador': o endereço de 'identificador' dllimport não é estático |
Erro do compilador C2323 | 'identificador': as funções de exclusão ou novas de um operador não membro podem não ser declaradas estáticas ou em um namespace diferente do namespace global |
Erro do compilador C2324 | 'identificador': inesperado à direita de '::~' |
Erro do compilador C2325 | 'tipo1': tipo inesperado à direita de '->~': esperado 'tipo2' |
Erro do compilador C2326 | 'declarador': a função não pode acessar 'identificador' |
Erro do compilador C2327 | 'identificador': não é um nome de tipo, estático, ou enumerador |
Erro do compilador C2328 | 'palavra-chave': ainda não há suporte para a palavra-chave |
Erro do compilador C2329 | 'identificador': __ptr64 não está disponível a ponteiros para funções |
Erro do compilador C2330 | 'implementation_key( )' só é válido em uma região limitada por #pragma start_map_region/stop_map_region |
Erro do compilador C2331 | acesso ao 'identificador', agora definido como 'acessibilidade1', anteriormente ele era definido como 'acessibilidade2' |
Erro do compilador C2332 | 'typedef' : nome da marca ausente |
Erro do compilador C2333 | 'função': erro na declaração da função; ignorando corpo da função |
Erro do compilador C2334 | token(s) inesperado(s) precedendo 'token'; ignorando o corpo aparente da função |
Erro do compilador C2335 | 'identificador': um tipo não pode ser introduzido em uma lista de parâmetros de função |
Erro do compilador C2336 | 'tipo': tipo inválido |
Erro do compilador C2337 | 'nome-do-atributo': atributo não encontrado |
Erro do compilador C2338 | (mensagem de erro do provedor externo) |
Erro do compilador C2339 | 'identificador': tipo inválido em IDL inserida |
Erro do compilador C2340 | 'identificador': 'static' pode ser usado somente dentro de uma definição de classe |
Erro do compilador C2341 | 'seção': o segmento deve ser definido usando #pragma data_seg, code_seg ou section antes de ser usado |
Erro do compilador C2342 | erro de sintaxe: qualificadores de tipo conflitantes |
Erro do compilador C2343 | 'seção': atributos de seção em conflito |
Erro do compilador C2344 | alinhar(número): o alinhamento deve ser potência de dois |
Erro do compilador C2345 | alinhar(número): valor de alinhamento ilegal |
Erro do compilador C2346 | função' não pode ser compilada como nativa: 'explicação' |
Erro do compilador C2347 | Obsoleto. |
Erro do compilador C2348 | 'tipo': não é uma agregação em estilo C, não pode ser exportada em IDL inserida |
Erro do compilador C2349 | 'função' não pode ser compilado como gerenciado: 'explicação'; use #pragma não gerenciado |
Erro do compilador C2350 | 'identificador' não é um membro estático |
Erro do compilador C2351 | sintaxe de inicialização de construtor de C++ obsoleta |
Erro do compilador C2352 | 'identificador': chamada inválida a função membro não estática |
Erro do compilador C2353 | a especificação de exceção não é permitida |
Erro do compilador C2354 | Obsoleto. |
Erro do compilador C2355 | 'this': é possível referenciar apenas dentro de funções membro não estáticas ou inicializadores de membros de dados não estáticos |
Erro do compilador C2356 | o segmento de inicialização não deve mudar durante a unidade de tradução |
Erro do compilador C2357 | 'identificador': precisa ser uma função do tipo 'tipo' |
Erro do compilador C2358 | 'identificador': uma propriedade estática não pode ser definida fora de uma definição de classe |
Erro do compilador C2359 | Obsoleto. |
Erro do compilador C2360 | inicialização de 'identificador' é ignorada pelo rótulo 'case' |
Erro do compilador C2361 | inicialização de 'identificador' é ignorada pelo rótulo 'default' |
Erro do compilador C2362 | inicialização do 'identificador' é ignorada pelo 'rótulo goto' |
Erro do compilador C2363 | a função de limite numérico intrínseco do compilador requer um argumento de literal de cadeia de caracteres |
Erro do compilador C2364 | 'tipo': tipo inválido para atributo personalizado |
Erro do compilador C2365 | 'membro1': redefinição; a definição anterior era 'membro2' |
Erro do compilador C2366 | 'identificador': redefinição; especificadores implementation_key diferentes |
Erro do compilador C2367 | Obsoleto. |
Erro do compilador C2368 | 'identificador': redefinição; especificadores de alocação diferentes |
Erro do compilador C2369 | 'identificador': redefinição; subscritos diferentes |
Erro do compilador C2370 | 'identificador': redefinição; classe de armazenamento diferente |
Erro do compilador C2371 | 'identificador': redefinição; tipos básicos diferentes |
Erro do compilador C2372 | 'identificador': redefinição; tipos de indireção diferentes |
Erro do compilador C2373 | 'identificador': redefinição; modificadores de tipo diferentes |
Erro do compilador C2374 | 'identificador': redefinição; várias inicializações |
Erro do compilador C2375 | 'identificador': redefinição; vínculo diferente |
Erro do compilador C2376 | ''identificador': redefinição; alocação com base diferente |
Erro do compilador C2377 | 'identificador': redefinição; typedef não pode ser sobrecarregado com nenhum outro símbolo |
Erro do compilador C2378 | 'identificador': redefinição; o símbolo não pode ser sobrecarregado com um typedef |
Erro do compilador C2379 | o parâmetro formal 'número' tem um tipo diferente quando promovido |
Erro do compilador C2380 | tipo(s) precedendo 'identificador' (construtor com tipo de retorno ou redefinição inválida do nome da classe atual?) |
Erro do compilador C2381 | 'identificador': redefinição; '__declspec(noreturn)' ou '[[noreturn]]' difere |
Erro do compilador C2382 | 'identificador': redefinição; especificações de exceção diferentes |
Erro do compilador C2383 | 'identificador': argumentos padrão não são permitidos nesse símbolo |
Erro do compilador C2384 | 'membro': não é possível aplicar thread_local ou __declspec(thread) a um membro de uma classe gerenciada/WinRT |
Erro do compilador C2385 | acesso ambíguo de 'membro' |
Erro do compilador C2386 | 'identificador': um símbolo com este nome já existe no escopo atual |
Erro do compilador C2387 | 'identificador': classe base ambígua |
Erro do compilador C2388 | 'identificador': um símbolo não pode ser declarado com __declspec(appdomain) e __declspec(process) |
Erro do compilador C2389 | 'operador': operando "nullptr" ilegal |
Erro do compilador C2390 | 'identificador': 'especificador' de classe de armazenamento incorreto |
Erro do compilador C2391 | 'identificador': 'friend' não pode ser usado durante definição de tipo |
Erro do compilador C2392 | 'membro1': tipos de retornos covariantes não são suportados em tipos gerenciados/WinRT, caso contrário 'membro2' seria substituído |
Erro do compilador C2393 | 'símbolo': o símbolo por appdomain não pode ser alocado no segmento 'segmento' |
Erro do compilador C2394 | 'type::operator operator': o operador CLR/WinRT não é válido. Pelo menos um parâmetro precisa ser dos seguintes tipos: 'T^', 'T^%', 'T^&', onde T = 'tipo' |
Erro do compilador C2395 | 'type::operator operator': o operador CLR/WinRT não é válido. Pelo menos um parâmetro deve ser dos seguintes tipos: 'T', 'T%', 'T&', 'T^', 'T^%', 'T^&', onde T = 'tipo' |
Erro do compilador C2396 | 'tipo1::operator tipo2': a função de conversão CLR/WinRT definida pelo usuário não é válida. Precisa converter de ou converter em: 'T^', 'T^%', 'T^&', onde T = 'tipo1' |
Erro do compilador C2397 | a conversão de 'tipo1' para 'tipo2' requer uma conversão de restrição |
Erro do compilador C2398 | Elemento 'número': conversão de 'tipo1' para 'tipo2' requer uma conversão de restrição |
Erro do compilador C2399 | Obsoleto. |
Confira também
Compilador C/C++ e erros e avisos das ferramentas de build
Erros do compilador C2001 - C3999, C7000 - C7999