Erreurs du compilateur C2300 à C2399
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 C2300 | 'class' : n’a pas de destructeur appelé '~class' |
Erreur du compilateur C2301 | la partie gauche de '->~identifier' doit pointer vers un class/struct/union |
Erreur du compilateur C2302 | la partie gauche de '.~identifier' doit être de type classe/struct/union |
Erreur du compilateur C2303 | Impossible d’utiliser la gestion structurée des exceptions dans une coroutine |
Erreur du compilateur C2304 | 'keyword' ne peut pas être utilisé à l’intérieur d’un bloc d’interception |
Erreur du compilateur C2305 | 'file' ne contient pas d’informations de débogage pour ce module |
Erreur du compilateur C2306 | 'file' ne contient pas les informations de débogage les plus récentes pour ce module |
Erreur du compilateur C2307 | pragma directive doit être déplacée en dehors de la fonction si la compilation incrémentielle est activée |
Erreur du compilateur C2308 | concaténation de chaînes incompatibles |
Erreur du compilateur C2309 | le gestionnaire de l’interception attendait une déclaration d’exception entre parenthèses |
Erreur du compilateur C2310 | les gestionnaires des interceptions doivent spécifier un seul type |
Erreur du compilateur C2311 | 'type' : est intercepté par '...' sur la ligne number |
Erreur du compilateur C2312 | 'type1' : est intercepté par 'type2' sur la ligne number |
Erreur du compilateur C2313 | 'type1' : est intercepté par référence ('type2') sur la ligne number |
Erreur du compilateur C2314 | le mot clé 'keyword1' est déconseillé : utilisez plutôt 'keyword2' |
Erreur du compilateur C2315 | 'type1' : référence interceptée par 'type2' sur la ligne number |
Erreur du compilateur C2316 | 'type' : ne peut pas être intercepté en tant que destructeur et/ou le constructeur de copie est inaccessible ou supprimé |
Erreur du compilateur C2317 | bloc 'try' commençant ligne 'number' n’a pas de gestionnaires de l’interception |
Erreur du compilateur C2318 | aucun bloc try associé à ce gestionnaire catch |
Erreur du compilateur C2319 | 'try/catch' doit être suivi(e) d’une instruction composée. Accolade '{' manquante |
Erreur du compilateur C2320 | s’attendait à ce que ':' suive le spécifieur d’accès 'specifier' |
Erreur du compilateur C2321 | 'identifier' est un mot clé qui ne peut pas être utilisé dans ce contexte |
Erreur du compilateur C2322 | 'identifier' : adresse de dllimport 'identifier' n’est pas statique |
Erreur du compilateur C2323 | 'identifier' : les fonctions non-membres new ou delete d’un opérateur ne peuvent pas être déclarées statiques ou dans un espace de noms autre que l’espace de noms global |
Erreur du compilateur C2324 | 'identifier' : inattendu à droite de '::~' |
Erreur du compilateur C2325 | 'type1' : type inattendu à droite de '->~' : 'type2' attendu |
Erreur du compilateur C2326 | 'declarator' : la fonction ne peut pas accéder à 'identifier' |
Erreur du compilateur C2327 | 'identifier' : n’est pas un nom de type, statique ou énumérateur |
Erreur du compilateur C2328 | 'keyword' : le mot clé n’est pas encore pris en charge |
Erreur du compilateur C2329 | 'identifier' : __ptr64 non disponible pour les pointeurs vers les fonctions |
Erreur du compilateur C2330 | 'implementation_key( )' n’est valide que dans une région limitée par #pragma start_map_region/stop_map_region |
Erreur du compilateur C2331 | l’accès à 'identificateur' maintenant défini comme 'accessibility1', précédemment il a été défini comme 'accessibility2' |
Erreur du compilateur C2332 | 'typedef' : nom de balise manquant |
Erreur du compilateur C2333 | 'function' : erreur dans la déclaration de la fonction ; corps de la fonction ignoré |
Erreur du compilateur C2334 | jetons inattendus avant 'token' ; corps apparent de la fonction ignoré |
Erreur du compilateur C2335 | 'identifier' : impossible de définir un type dans une liste de paramètres de fonction |
Erreur du compilateur C2336 | 'type' : type non conforme |
Erreur du compilateur C2337 | 'attribute' : attribut introuvable |
Erreur du compilateur C2338 | (message d’erreur du fournisseur externe) |
Erreur du compilateur C2339 | 'identifier' : type non conforme dans un IDL incorporé |
Erreur du compilateur C2340 | 'identifier' : 'static' peut uniquement être utilisé dans une définition de classe |
Erreur du compilateur C2341 | 'section' : le segment doit être défini à l’aide de #pragma data_seg, code_seg ou section avant d’être utilisé |
Erreur du compilateur C2342 | erreur de syntaxe : conflit entre qualificateurs de type |
Erreur du compilateur C2343 | 'section' : conflit entre les attributs de la section |
Erreur du compilateur C2344 | align(number) : l’alignement doit être une puissance de deux |
Erreur du compilateur C2345 | align(number) : valeur d’alignement non conforme |
Erreur du compilateur C2346 | 'function' ne peut pas être compilé comme natif : 'explanation' |
Erreur du compilateur C2347 | Obsolète. |
Erreur du compilateur C2348 | 'type' : n’est pas un agrégat de style C, ne peut pas être exporté dans un IDL incorporé |
Erreur du compilateur C2349 | 'function' ne peut pas être compilé comme code managé : 'explanation' ; utilisez #pragma unmanaged à la place |
Erreur du compilateur C2350 | 'identifier' n’est pas un membre static |
Erreur du compilateur C2351 | syntaxe obsolète d'initialisation d'un constructeur C++ |
Erreur du compilateur C2352 | 'identifier' : appel non conforme d’une fonction membre non static |
Erreur du compilateur C2353 | la spécification de l’exception n’est pas autorisée |
Erreur du compilateur C2354 | Obsolète. |
Erreur du compilateur C2355 | 'this' : ne peut être référencé qu’à l'intérieur de fonctions membres non static ou d'initialiseurs de données membres non static |
Erreur du compilateur C2356 | un segment d’initialisation ne doit pas changer durant une unité de traduction |
Erreur du compilateur C2357 | 'identifier' : doit être une fonction du type 'type' |
Erreur du compilateur C2358 | 'identifier' : une propriété statique ne peut pas être définie en dehors d’une définition de classe |
Erreur du compilateur C2359 | Obsolète. |
Erreur du compilateur C2360 | l’initialisation de 'identifier' est ignorée par l’étiquette 'case' |
Erreur du compilateur C2361 | l’initialisation de 'identifier' est ignorée par l’étiquette 'default' |
Erreur du compilateur C2362 | l’initialisation de 'identifier' est ignorée par 'goto label' |
Erreur du compilateur C2363 | une fonction de limite numérique intrinsèque de compilateur nécessite un argument de littéral de chaîne |
Erreur du compilateur C2364 | 'type' : type d’attribut personnalisé non conforme |
Erreur du compilateur C2365 | 'member1' : redéfinition ; la précédente définition était 'member2' |
Erreur du compilateur C2366 | 'identifier' : redéfinition ; spécificateurs implementation_key différents |
Erreur du compilateur C2367 | Obsolète. |
Erreur du compilateur C2368 | 'identifier' : redéfinition ; spécificateurs d’allocation différents |
Erreur du compilateur C2369 | 'identifier' : redéfinition ; indices différents |
Erreur du compilateur C2370 | 'identifier' : redéfinition ; classe de stockage différente |
Erreur du compilateur C2371 | 'identifier' : redéfinition ; types de base différents |
Erreur du compilateur C2372 | 'identifier' : redéfinition ; types d’indirection différents |
Erreur du compilateur C2373 | 'identifier' : redéfinition ; modificateurs de type différents |
Erreur du compilateur C2374 | 'identifier' : redéfinition ; initialisation multiple |
Erreur du compilateur C2375 | 'identifier' : redéfinition ; liaison différente |
Erreur du compilateur C2376 | 'identifier' : redéfinition ; allocation de base différente |
Erreur du compilateur C2377 | 'identifier' : redéfinition ; un typedef ne peut pas être surchargé avec un autre symbole |
Erreur du compilateur C2378 | 'identifier' : redéfinition ; un symbole ne peut pas être surchargé avec un typedef |
Erreur du compilateur C2379 | le paramètre formel number a un type différent lorsqu’il est promu |
Erreur du compilateur C2380 | type(s) précédant 'identifier' (constructeur avec type de retour ou redéfinition non conforme d’un nom de classe actif ?) |
Erreur du compilateur C2381 | 'identifier' : redéfinition. '__declspec(noreturn)' ou '[[noreturn]]' est différent |
Erreur du compilateur C2382 | 'identifier' : redéfinition ; spécifications des exceptions différentes |
Erreur du compilateur C2383 | 'identifier' : les arguments par défaut ne sont pas autorisés sur ce symbole |
Erreur du compilateur C2384 | 'member' : impossible d’appliquer thread_local ou __declspec(thread) à un membre d’une classe managée/WinRT |
Erreur du compilateur C2385 | accès ambigu de 'member' |
Erreur du compilateur C2386 | 'identifier' : un symbole avec ce nom existe déjà dans la portée actuelle |
Erreur du compilateur C2387 | 'identifier' : classe de base ambiguë |
Erreur du compilateur C2388 | 'identifier' : un symbole ne peut pas être déclaré avec __declspec(appdomain) et __declspec(process) |
Erreur du compilateur C2389 | 'operator' : opérande 'nullptr' non conforme |
Erreur du compilateur C2390 | 'identifier' : classe de stockage incorrecte 'specifier' |
Erreur du compilateur C2391 | 'identifier' : 'friend' ne peut pas être utilisé dans la définition d'un type |
Erreur du compilateur C2392 | 'member1' : les types de retour covariants ne sont pas pris en charge dans les types managés/WinRT, dans le cas contraire, 'member2' est substitué |
Erreur du compilateur C2393 | 'symbol' : un symbole par appdomain ne peut pas être alloué dans le segment 'segment' |
Erreur du compilateur C2394 | 'type::operator operator' : opérateur CLR/WinRT non valide. Au moins l’un des paramètres doit avoir les types suivants : 'T^', 'T^%', 'T^&', où T = 'type' |
Erreur du compilateur C2395 | 'type::operator operator' : opérateur CLR/WinRT non valide. Au moins l’un des paramètres doit avoir les types suivants : 'T', 'T%', 'T&', 'T^', 'T^%', 'T^&', où T = 'type' |
Erreur du compilateur C2396 | 'type1::operator type2' : la fonction de conversion CLR/WinRT définie par l’utilisateur n'est pas valide. La conversion doit être opérée depuis ou vers : 'T^', 'T^%', 'T^&', où T = 'type1' |
Erreur du compilateur C2397 | la conversion de 'type1' en 'type2', nécessite une conversion restrictive |
Erreur du compilateur C2398 | Élément 'number' : la conversion de 'type1' en 'type2' nécessite une conversion étroite |
Erreur du compilateur C2399 | Obsolète. |
Voir aussi
Erreurs et avertissements du compilateur C/C++ et des outils de génération
Erreurs du compilateur C2001 – C3999, C7000 – C7999