Compartilhar via


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