Erros do compilador C3000 a C3099
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 C3000 | 'symbol': o uso do modelo de classe requer a lista de argumentos de modelo. A dedução de argumento não é permitida no membro de dados não estáticos. |
Erro do compilador C3001 | “message”: esperado um nome de diretiva de OpenMP |
Erro do compilador C3002 | 'name1 name2': vários nomes de diretiva OpenMP |
Erro do compilador C3003 | “directive”: nome da diretiva OpenMP não permitido após as cláusulas da diretiva |
Erro do compilador C3004 | 'clause': cláusula não válida na diretiva OpenMP 'directive' |
Erro do compilador C3005 | 'message': token inesperado encontrado na diretiva “directive” do OpenMP |
Erro do compilador C3006 | A cláusula 'clause': na diretiva 'directive' do OpenMP não tem um argumento esperado |
Erro do compilador C3007 | A cláusula 'clause': na diretiva 'directive' do OpenMP não aceita um argumento |
Erro do compilador C3008 | O argumento 'argument': não tem um ')' de fechamento na diretiva 'directive' do OpenMP |
Erro do compilador C3009 | “label”: salto para o bloco estruturado OpenMP não permitido |
Erro do compilador C3010 | “label”: saída do bloco estruturado de OpenMP não permitido |
Erro do compilador C3011 | assembly embutido não permitido diretamente dentro de uma região parallel |
Erro do compilador C3012 | “function”: função intrínseca não permitida diretamente dentro de uma região parallel |
Erro do compilador C3013 | 'clause': a cláusula só pode aparecer uma vez na diretiva “directive” do OpenMP |
Erro do compilador C3014 | esperado um loop for seguindo a diretiva “directive” do OpenMP |
Erro do compilador C3015 | inicialização em instrução de OpenMP 'for' possui forma inadequada |
Erro do compilador C3016 | “identifier”: variável de índice na instrução OpenMP 'for' deve ter um tipo integral assinado |
Erro do compilador C3017 | o teste de terminação na instrução de OpenMP 'for' possui forma inadequada |
Erro do compilador C3018 | 'identifier': um teste ou incremento de 'for' do OpenMP precisa usar a variável de índice 'variable' |
Erro do compilador C3019 | incremento em instrução OpenMP 'for' tem uma forma inadequada |
Erro do compilador C3020 | “variable”: variável de índice de loop OpenMP 'for' não pode ser modificada no corpo do loop |
Erro do compilador C3021 | 'argument': o argumento está vazio na diretiva OpenMP 'directive' |
Erro do compilador C3022 | 'directive': tipo de agendamento inválido de 'directive' na diretiva 'directive' do OpenMP |
Erro do compilador C3023 | 'argument': token inesperado encontrado no argumento para a cláusula 'directive' de OpenMP |
Erro do compilador C3024 | 'schedule(runtime)': expressão chunk_size não é permitida |
Erro do compilador C3025 | 'clause': expressão integral esperada |
Erro do compilador C3026 | 'clause': a expressão de constante deve ser positiva |
Erro do compilador C3027 | 'clause': expressão aritmética ou de ponteiro esperada |
Erro do compilador C3028 | 'member': somente um membro de dados estático ou variável pode ser usado em uma cláusula de compartilhamento de dados |
Erro do compilador C3029 | 'symbol': só pode aparecer uma vez em cláusulas de compartilhamento de dados em uma diretiva OpenMP |
Erro do compilador C3030 | A variável 'identifier': na cláusula/diretiva 'directive' não pode ter um tipo de referência |
Erro do compilador C3031 | 'identifier': variável em cláusula 'reduction' deve possuir tipo aritmético escalar |
Erro do compilador C3032 | A variável 'identifier': na cláusula 'clause' não pode ter o tipo incompleto 'type' |
Erro do compilador C3033 | A variável 'identifier': na cláusula 'clause' não pode ter um tipo qualificado por const |
Erro do compilador C3034 | A diretiva 'directive' do OpenMP não pode ser aninhada diretamente na diretiva 'directive' |
Erro do compilador C3035 | diretiva de OpenMP 'ordered' deve ligar-se diretamente a uma diretiva 'for' ou 'parallel for' com a cláusula 'ordered' |
Erro do compilador C3036 | 'clause': token de operador inválido em cláusula de OpenMP 'reduction' |
Erro do compilador C3037 | 'identifier': a variável na cláusula 'clause' deve ser compartilhada no contexto delimitador |
Erro do compilador C3038 | 'identifier': a variável em cláusula 'private' não pode ser uma variável de reduction em contexto delimitador |
Erro do compilador C3039 | 'identifier': variável de índice na instrução 'for' OpenMP não pode ser uma variável de redução |
Erro do compilador C3040 | 'identifier': o tipo de variável na cláusula 'reduction' é incompatível com o operador de redução 'operator' |
Erro do compilador C3041 | 'identifier': a variável na cláusula 'copyprivate' precisa ser privada no contexto delimitador |
Erro do compilador C3042 | As cláusulas 'copyprivate' e 'nowait' não podem aparecer juntas na diretiva 'directive' de OpenMP |
Erro do compilador C3043 | A diretiva 'critical' do OpenMP não pode ser aninhada na diretiva 'critical' com o mesmo nome |
Erro do compilador C3044 | 'section': permitida apenas aninhada diretamente sob uma diretiva 'sections' de OpenMP |
Erro do compilador C3045 | Uma instrução composta esperada seguindo a diretiva de “seções” do OpenMP. Ausente '{' |
Erro do compilador C3046 | Bloco estruturado ausente em uma região de OpenMP '#pragma omp sections' |
Erro do compilador C3047 | Bloco estruturado em uma região de OpenMP 'sections' deve ser precedido por '#pragma omp section' (obsoleto no Visual Studio 2022.) |
Erro do compilador C3048 | Expressão após '#pragma omp atomic' possui forma inadequada |
Erro do compilador C3049 | 'argument': argumento inválido na cláusula 'default' do OpenMP |
Erro do compilador C3050 | 'class': uma ref class não pode herdar de 'identifier' |
Erro do compilador C3051 | Obsoleto. |
Erro do compilador C3052 | 'identifier': variável não aparece em uma cláusula de compartilhamento de dados sob uma cláusula default(none) |
Erro do compilador C3053 | 'identifier': 'threadprivate' é válido apenas para itens de dados globais ou estáticos |
Erro do compilador C3054 | Atualmente, não há suporte para '#pragma paralelo omp' em uma classe ou função genérica (obsoleto no Visual Studio 2022.) |
Erro do compilador C3055 | 'identifier': o símbolo não pode ser referenciado antes de ser usado na diretiva 'threadprivate' |
Erro do compilador C3056 | 'identifier': símbolo não está no mesmo escopo da diretiva 'threadprivate' |
Erro do compilador C3057 | 'identifier': a inicialização dinâmica de símbolos 'threadprivate' não é compatível atualmente |
Erro do compilador C3058 | 'identifier': símbolo não declarado como 'threadprivate' antes de ser usado na cláusula 'copyin' |
Erro do compilador C3059 | 'identifier': 'threadprivate' symbol não pode ser usado na cláusula 'clause' |
Erro do compilador C3060 | 'identifier': uma função friend pode não ser definida dentro de uma classe usando um nome qualificado (só pode ser declarada) |
Erro do compilador C3061 | Operador 'operator': não permitido na enumeração 'type' com o tipo subjacente 'type' |
Erro do compilador C3062 | 'identifier': o enumerador requer um valor, pois o tipo subjacente é 'type' |
Erro do compilador C3063 | operator 'operator': todos os operandos devem ter o mesmo tipo de enumeração |
Erro do compilador C3064 | 'identifier': deve ser um tipo simples ou resolver para um |
Erro do compilador C3065 | declaração de propriedade em escopo diferente de classe não é permitida |
Erro do compilador C3066 | há várias maneiras de chamar um objeto deste tipo com estes argumentos |
Erro do compilador C3067 | não é possível usar uma lista de inicializadores com o operador interno[] |
Erro do compilador C3068 | 'identifier': uma função 'naked' não pode conter objetos que exigiriam desenrolamento se uma exceção C++ ocorresse |
Erro do compilador C3069 | o operador 'operator': não permitido para tipos de enumeração |
Erro do compilador C3070 | 'identifier': a propriedade não tem um método 'set' |
Erro do compilador C3071 | o operador 'operator' só pode ser aplicado a uma instância de uma ref class ou de um tipo value |
Erro do compilador C3072 | o operador 'operator' não pode ser aplicado a uma instância de uma ref class. Use o operador unário '%' para converter uma instância de uma ref class em um tipo de identificador |
Erro do compilador C3073 | 'identifier': a ref class não possui um construtor de cópia definido pelo usuário |
Erro do compilador C3074 | não é possível inicializar uma matriz com um inicializador entre parênteses |
Erro do compilador C3075 | 'identifier': não é possível inserir uma instância de um tipo de referência, 'type', em um tipo de valor |
Erro do compilador C3076 | 'identifier': não é possível inserir uma instância de um tipo de referência, 'type', em um tipo nativo |
Erro do compilador C3077 | 'identifier': um finalizador só pode ser um membro de um tipo de referência |
Erro do compilador C3078 | o tamanho da matriz deve ser especificado em novas expressões |
Erro do compilador C3079 | não é possível usar uma lista de inicializadores como operando direito deste operador de atribuição |
Erro do compilador C3080 | 'finalizer': um finalizador não pode possuir um especificador de classe de armazenamento |
Erro do compilador C3081 | Obsoleto. |
Erro do compilador C3082 | Obsoleto. |
Erro do compilador C3083 | 'identifier': o símbolo à esquerda de um “::” deve ser um tipo |
Erro do compilador C3084 | 'identifier': um destruidor/finalizador não pode ser 'keyword' |
Erro do compilador C3085 | 'identifier': um construtor não pode ser 'keyword' |
Erro do compilador C3086 | não é possível localizar 'std::initializer_list': você precisa #include <initializer_list> |
Erro do compilador C3087 | 'identifier': chamada de 'declaration' já inicializa esse membro |
Erro do compilador C3088 | 'class': construtor de atributos deve possuir argumentos formais nomeados |
Erro do compilador C3089 | 'identifier': nome de parâmetro não corresponde a nenhum nome de membro de dados |
Erro do compilador C3090 | 'class': classe de atributo não pode ser um modelo |
Erro do compilador C3091 | 'class': classe de atributo não pode possuir classes base |
Erro do compilador C3092 | 'class': o membro de classe de atributo não pode ser um campo de bits, 'static' ou 'const' |
Erro do compilador C3093 | 'type': tipo não permitido para membro de classe de atributo 'member' |
Erro do compilador C3094 | 'attribute': o uso anônimo não é permitido |
Erro do compilador C3095 | 'attribute': o atributo não pode ser repetido |
Erro do compilador C3096 | 'attribute': atributo é permitido apenas em membros de dados de classes de atributo |
Erro do compilador C3097 | 'attribute': atributo deve ter escopo definido com 'assembly:' ou 'module:' |
Erro do compilador C3098 | 'identifier': atributo não possui construtores definidos pelo usuário |
Erro do compilador C3099 | 'keyword': use [System::AttributeUsageAttribute]/[Windows::Foundation::Metadata::AttributeUsageAttribute] para atributos gerenciados/WinRT |
Confira também
Compilador C/C++ e erros e avisos das ferramentas de build
Erros do compilador C2000 a C3999, C7000 a C7999