Erreurs du compilateur C3000 à C3099
Les articles de cette section de la documentation décrivent un sous-ensemble de messages d’erreur générés par le compilateur.
Important
Les compilateurs et outils de génération Visual Studio peuvent signaler de nombreux types d’erreurs et d’avertissements. Une fois qu’une erreur ou un avertissement a été détecté, les outils de génération peuvent faire des hypothèses sur l’intention du code, et tenter de poursuivre leur tâche, pour signaler un plus grand nombre de problèmes en même temps. Si les outils suivent une hypothèse incorrecte, les erreurs ou avertissements ultérieurs peuvent ne pas s'appliquer à votre projet. Lors de la résolution de problèmes dans votre projet, démarrez toujours par la première erreur ou le premier avertissement signalé et effectuez régulièrement une régénération. Un seul correctif peut permettre d’éliminer de nombreuses erreurs à venir.
Pour obtenir de l’aide sur un message de diagnostic particulier dans Visual Studio, sélectionnez-le dans la fenêtre Sortie, puis appuyez sur la touche F1. Visual Studio ouvre la page de documentation relative à cette erreur, le cas échéant. Vous pouvez également utiliser l’outil de recherche en haut de la page pour rechercher des articles sur des erreurs ou des avertissements spécifiques. Vous pouvez également parcourir la liste des erreurs et des avertissements par outil et par type dans la table des matières de cette page.
Remarque
Les erreurs et les avertissements Visual Studio ne sont pas documentés en totalité. Dans de nombreux cas, le message de diagnostic fournit toutes les informations disponibles. Si vous êtes arrivé sur cette page quand vous avez utilisé F1, et si vous pensez que le message d’erreur ou d’avertissement nécessite une explication supplémentaire, faites-le nous savoir. Vous pouvez utiliser les boutons de commentaires de cette page pour signaler un problème de documentation sur GitHub. Si vous pensez que l’erreur ou l’avertissement est incorrect, ou si vous avez trouvé un autre problème relatif à l’ensemble d’outils, signalez un problème de produit sur le site Developer Community. Vous pouvez également envoyer des commentaires et entrer des bogues dans l’IDE. Dans Visual Studio, accédez à la barre de menus, puis choisissez Aide > Envoyer des commentaires > Signaler un problème, ou envoyez une suggestion via Aide > Envoyer des commentaires > Envoyer une suggestion. Certaines rubriques d’erreur du compilateur qui ne sont pas émises par le compilateur ont été créées et redirigent maintenant vers cette page à la place.
Vous trouverez peut-être une aide supplémentaire sur les erreurs et les avertissements dans les forums de Q&A Microsoft Learn. Vous pouvez également rechercher le numéro d’erreur ou d’avertissement sur le site Developer Community de Visual Studio C++. Vous pouvez également effectuer des recherches sur Stack Overflow pour trouver des solutions.
Pour obtenir des liens vers d’autres ressources d’aide et de communauté, consultez Aide et communauté Visual C++.
Messages d’erreur
Erreur | Message |
---|---|
Erreur du compilateur C3000 | « symbole » : l’utilisation d’un modèle de classe nécessite une liste d’arguments du modèle. La déduction d’argument n’est pas autorisée dans un membre de données non statique. |
Erreur du compilateur C3001 | « message » : un nom de directive OpenMP est attendu |
Erreur du compilateur C3002 | « nom1 nom2 » : plusieurs noms de directive OpenMP |
Erreur du compilateur C3003 | « directive » : nom de directive OpenMP non autorisé après des clauses directive |
Erreur du compilateur C3004 | « clause » : clause non valide sur la directive OpenMP « directive » |
Erreur du compilateur C3005 | « message » : jeton inattendu rencontré dans la directive OpenMP « directive » |
Erreur du compilateur C3006 | « clause » : un argument attendu est manquant dans la clause sur la directive OpenMP « directive » |
Erreur du compilateur C3007 | « clause »: la clause sur la directive OpenMP « directive » ne prend pas d’argument |
Erreur du compilateur C3008 | « argument » : une parenthèse fermante ’)’ est manquante sur la directive OpenMP « directive » |
Erreur du compilateur C3009 | « étiquette » : saut dans le bloc structuré OpenMP non autorisé |
Erreur du compilateur C3010 | « étiquette » : saut en dehors du bloc structuré OpenMP non autorisé |
Erreur du compilateur C3011 | assembly inline non autorisé directement dans une région parallèle |
Erreur du compilateur C3012 | « fonction » : fonction intrinsèque non autorisée directement dans une région parallèle |
Erreur du compilateur C3013 | « clause » : la clause ne peut apparaître qu’une seule fois dans la directive OpenMP « directive » |
Erreur du compilateur C3014 | boucle for attendue à la suite de la directive OpenMP « directive » |
Erreur du compilateur C3015 | forme incorrecte de l'initialisation dans l'instruction 'for' OpenMP |
Erreur du compilateur C3016 | « identificateur » : la variable d’index de l’instruction OpenMP « for » doit être de type intégral signé |
Erreur du compilateur C3017 | forme incorrecte du test de fin dans l'instruction 'for' OpenMP |
Erreur du compilateur C3018 | « identificateur » : le test ou l’incrément de l’instruction OpenMP « for » doivent utiliser la variable d’index « variable » |
Erreur du compilateur C3019 | Forme incorrecte de l’incrément dans l’instruction OpenMP « for » |
Erreur du compilateur C3020 | « variable » : la variable d’index de la boucle OpenMP « for » ne peut pas être modifiée dans le corps de la boucle |
Erreur du compilateur C3021 | « argument » : l’argument est vide dans la directive OpenMP « directive » |
Erreur du compilateur C3022 | « directive » : type de planification de « directive » non valide dans la directive OpenMP « directive » |
Erreur du compilateur C3023 | « argument » : jeton inattendu rencontré dans l’argument de la clause OpenMP « directive » |
Erreur du compilateur C3024 | « schedule(runtime) » : l’expression chunk_size n’est pas autorisée |
Erreur du compilateur C3025 | « clause » : expression intégrale attendue |
Erreur du compilateur C3026 | « clause » : l’expression de la constante doit être positive |
Erreur du compilateur C3027 | « clause » : expression arithmétique ou de pointeur attendue |
Erreur du compilateur C3028 | « membre » : seul un membre de données variable ou statique peut être utilisé dans une clause de partage de données |
Erreur du compilateur C3029 | « symbole » : ne peut figurer qu’une seule fois dans les clauses de partage de données d’une directive OpenMP |
Erreur du compilateur C3030 | « identificateur » : la variable de la clause/directive « directive » ne peut pas avoir un type référence |
Erreur du compilateur C3031 | « identificateur » : la variable de la clause « reduction » doit avoir un type arithmétique scalaire |
Erreur du compilateur C3032 | « identificateur » : la variable de la clause « clause » ne peut pas avoir un type incomplet « type » |
Erreur du compilateur C3033 | « identificateur » : la variable de la clause « clause » ne peut pas avoir un type qualifié const |
Erreur du compilateur C3034 | La directive OpenMP « directive » ne peut pas être imbriquée directement dans la directive « directive » |
Erreur du compilateur C3035 | La directive 'ordered' OpenMP doit être liée directement à une directive 'for' ou 'parallel for' avec la clause 'ordered' |
Erreur du compilateur C3036 | « clause » : jeton d’opérateur non valide dans la clause OpenMP « reduction » |
Erreur du compilateur C3037 | « identificateur » : la variable de la clause « clause » doit être partagée dans un contexte englobant |
Erreur du compilateur C3038 | « identificateur » : la variable de la clause « private » ne peut pas être une variable de réduction dans un contexte englobant |
Erreur du compilateur C3039 | « identificateur » : la variable d’index de l’instruction OpenMP « for » ne peut pas être une variable de réduction |
Erreur du compilateur C3040 | « identificateur » : le type de la variable de la clause « reduction » est incompatible avec l’opérateur de réduction « opérateur » |
Erreur du compilateur C3041 | « identificateur » : la variable de la clause « copyprivate » doit être privée dans un contexte englobant |
Erreur du compilateur C3042 | Les clauses « copyprivate » et « nowait » ne peuvent pas figurer en même temps dans la directive OpenMP « directive » |
Erreur du compilateur C3043 | la directive 'critical' OpenMP ne peut pas être imbriquée dans une directive 'critical' du même nom |
Erreur du compilateur C3044 | « section » : autorisée seulement si elle est imbriquée directement sous une directive OpenMP « sections » |
Erreur du compilateur C3045 | Instruction composée attendue à la suite de la directive 'sections' OpenMP. Accolade '{' manquante |
Erreur du compilateur C3046 | Bloc structuré manquant dans une région '#pragma omp sections' OpenMP |
Erreur du compilateur C3047 | Un bloc structuré d’une région OpenMP « sections » doit être précédé de « #pragma omp section » (obsolète dans Visual Studio 2022). |
Erreur du compilateur C3048 | Forme incorrecte de l'expression placée à la suite de '#pragma omp atomic' |
Erreur du compilateur C3049 | « argument » : argument non valide dans la clause OpenMP « default » |
Erreur du compilateur C3050 | « classe » : une classe ref ne peut pas hériter de « identificateur » |
Erreur du compilateur C3051 | Obsolète. |
Erreur du compilateur C3052 | « identificateur » : la variable n’apparaît pas dans une clause de partage de données sous une clause default(none) |
Erreur du compilateur C3053 | « identificateur » : « threadprivate » est valide seulement pour des éléments de données globaux ou statiques |
Erreur du compilateur C3054 | « #pragma omp parallel » n’est actuellement pas pris en charge dans une classe ou une fonction générique (obsolète dans Visual Studio 2022). |
Erreur du compilateur C3055 | « identificateur » : impossible de référencer le symbole avant qu’il ne soit utilisé dans la directive « threadprivate » |
Erreur du compilateur C3056 | « identificateur » : le symbole n’est pas dans la même portée avec la directive « threadprivate » |
Erreur du compilateur C3057 | « identificateur » : l’initialisation dynamique des symboles « threadprivate » n’est actuellement pas prise en charge |
Erreur du compilateur C3058 | « identificateur » : symbole non déclaré en tant que « threadprivate » avant d’être utilisé dans la clause « copyin » |
Erreur du compilateur C3059 | « identificateur » : le symbole « threadprivate » ne peut pas être utilisé dans la clause « clause » |
Erreur du compilateur C3060 | « identificateur » : une fonction friend ne peut pas être définie dans une classe en utilisant un nom qualifié (elle peut seulement être déclarée) |
Erreur du compilateur C3061 | Opérateur « opérateur » : non autorisé sur une énumération « type » avec le type sous-jacent « type » |
Erreur du compilateur C3062 | « identificateur » : l’énumérateur requiert une valeur, car le type sous-jacent est « type » |
Erreur du compilateur C3063 | Opérateur « opérateur » : tous les opérandes doivent avoir le même type d’énumération |
Erreur du compilateur C3064 | « identificateur » : doit être un type simple ou être résolu en un type simple |
Erreur du compilateur C3065 | la déclaration de propriété au niveau d'une portée sans classe n'est pas autorisée |
Erreur du compilateur C3066 | Il existe plusieurs moyens d’appeler un objet de ce type avec ces arguments. |
Erreur du compilateur C3067 | Une liste d’initialiseurs ne peut pas être utilisée avec l’opérateur intégré operator[] |
Erreur du compilateur C3068 | « identificateur » : une fonction « naked » ne peut pas contenir d’objets qui requièrent un déroulement si une exception C++ se produisait |
Erreur du compilateur C3069 | Opérateur « operateur » : non autorisé pour un type énumération |
Erreur du compilateur C3070 | « identificateur » : la propriété n’a pas de méthode « set » |
Erreur du compilateur C3071 | L’opérateur « opérateur » peut être appliqué seulement à une instance d’une classe ref ou d’un type valeur |
Erreur du compilateur C3072 | L’opérateur « opérateur » ne peut pas être appliqué à une instance d’une classe ref. Utilisez l’opérateur unaire « % » pour convertir une instance d’une classe ref en un type handle |
Erreur du compilateur C3073 | « identificateur » : la classe ref n’a pas de constructeur de copie défini par l’utilisateur |
Erreur du compilateur C3074 | Un tableau ne peut pas être initialisé avec un initialiseur entre parenthèses |
Erreur du compilateur C3075 | « identificateur » : vous ne pouvez pas incorporer une instance d’un type référence, « type », dans un type valeur |
Erreur du compilateur C3076 | « identificateur » : vous ne pouvez pas incorporer une instance d’un type référence, « type », dans un type natif |
Erreur du compilateur C3077 | « identificateur » : un finaliseur peut être membre seulement d’un type référence |
Erreur du compilateur C3078 | La taille du tableau doit être spécifiée dans de nouvelles expressions |
Erreur du compilateur C3079 | Une liste d’initialiseurs ne peut pas être utilisée en tant qu’opérande droit de cet opérateur d’affectation |
Erreur du compilateur C3080 | « finaliseur » : un finaliseur ne peut pas avoir de spécificateur de classe de stockage |
Erreur du compilateur C3081 | Obsolète. |
Erreur du compilateur C3082 | Obsolète. |
Erreur du compilateur C3083 | « identificateur » : le symbole situé à gauche de « :: » doit être un type |
Erreur du compilateur C3084 | « identificateur » : un destructeur/finaliseur ne peut pas être « mot clé » |
Erreur du compilateur C3085 | « identificateur » : un constructeur ne peut pas être « mot clé » |
Erreur du compilateur C3086 | Impossible de trouver « std::initializer_list » : vous devez utiliser #include <initializer_list> |
Erreur du compilateur C3087 | « identificateur » : l’appel de « déclaration » initialise déjà ce membre |
Erreur du compilateur C3088 | « classe » : le constructeur d’attribut doit avoir des arguments formels nommés |
Erreur du compilateur C3089 | « identificateur » : le nom du paramètre ne correspond à aucun nom de membre de données |
Erreur du compilateur C3090 | « classe » : la classe d’attributs ne peut pas être un modèle |
Erreur du compilateur C3091 | « classe » : la classe d’attributs ne peut pas avoir de classes de base |
Erreur du compilateur C3092 | « classe » : un membre de classe d’attributs ne peut pas être un champ de bits, « static » ou « const » |
Erreur du compilateur C3093 | « type » : type non autorisé pour le membre de classe d’attributs « membre » |
Erreur du compilateur C3094 | « attribut » : utilisation anonyme non autorisée |
Erreur du compilateur C3095 | « attribut » : l’attribut ne peut pas être répété |
Erreur du compilateur C3096 | « attribut » : l’attribut est autorisé seulement sur les membres de données des classes d’attributs |
Erreur du compilateur C3097 | « attribut » : l’étendue de l’attribut doit être délimitée avec « assembly: » ou « module: » |
Erreur du compilateur C3098 | « identificateur » : l’attribut n’a pas de constructeurs définis par l’utilisateur |
Erreur du compilateur C3099 | « mot clé » : utilisez [System::AttributeUsageAttribute]/[Windows::Foundation::Metadata::AttributeUsageAttribute] pour les attributs gérés/WinRT |
Voir aussi
Erreurs et avertissements du compilateur C/C++ et des outils de génération
Erreurs du compilateur C2000 - C3999, C7000 - C7999