Partager via


Avertissements du compilateur Microsoft C/C++ C4400 à C4599

Les articles de cette section décrivent les messages d’avertissement du compilateur Microsoft C/C++ C4400 à C4599.

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’avertissement

Avertissement Message
Avertissement du compilateur (niveau 1) C4600 #pragma « macro name » : chaîne valide non vide attendue
Avertissement du compilateur (niveau 4) C4400 « type » : les qualificateurs const/volatile pour ce type ne sont pas pris en charge
Avertissement du compilateur (niveau 1) C4401 « bitfield » : le membre est un champ de bits
Avertissement du compilateur (niveau 1) C4402 doit utiliser l'opérateur PTR
Avertissement du compilateur (niveau 1) C4403 opérateur PTR non conforme
Avertissement du compilateur (niveau 3) C4404 point dans la directive ignoré
Avertissement du compilateur (niveau 1) C4405 « identifier » : cet identificateur est un mot réservé
Avertissement du compilateur (niveau 1) C4406 opérande sur directive ignoré
Avertissement du compilateur (niveau 1) C4407 cast entre différentes représentations du pointeur en membre, le compilateur peut générer du code incorrect
Avertissement du compilateur (niveau 4) C4408 le « struct|union » anonyme n'a déclaré aucune donnée membre
Avertissement du compilateur (niveau 1) C4409 taille d'instruction non conforme
Avertissement du compilateur (niveau 1) C4410 taille d'opérande non conforme
Avertissement du compilateur (niveau 1) C4411 « identifier » : le symbole se résout en registre de déplacement
Avertissement du compilateur (niveau 2) C4412 « function » : la signature de fonction contient le type « type »; le passage d'objets C++ n'est pas sécurisé entre le code pure et le code mixte ou natif.
Avertissement du compilateur C4413 « classname::member » : le membre de référence est initialisé en temporaire qui ne persiste pas après l'arrêt du constructeur
Avertissement du compilateur (niveau 3) C4414 « function » : saut de type short vers la fonction converti en near
Avertissement du compilateur (niveau 1) C4415 duplicate __declspec(code_seg(« name »))
Avertissement du compilateur (niveau 1) C4416 __declspec(code_seg(...)) contient une chaîne vide : ignoré
Avertissement du compilateur (niveau 1) C4417 une instanciation explicite du modèle ne peut pas avoir __declspec(code_seg(...)) : ignoré
Avertissement du compilateur (niveau 1) C4418 __declspec(code_seg(...)) ignoré sur un enum
Avertissement du compilateur (niveau 3) C4419 « symbol » n'a pas d'effet lorsqu'il est appliqué à la classe ref « class » privée.
Avertissement du compilateur (niveau 1) C4420 « checked_operator » : opérateur non disponible, remplacé par « operator » ; le contrôle à l'exécution peut être compromis
Avertissement du compilateur (niveau 3) C4421 « parameter » : un paramètre de référence sur une fonction pouvant être reprise est potentiellement risqué
Avertissement du compilateur (niveau 3) C4423 « std::bad_alloc » : sera intercepté par la classe (« type ») à la ligne number
Avertissement du compilateur (niveau 3) C4424 interception de « type1 » précédée par « type3 » à la ligne number ; il peut en résulter un comportement imprévisible si l'exception 'std::bad_alloc' est levée
Avertissement du compilateur (niveau 1) C4425 Une annotation SAL ne peut pas être appliquée à « … »
Avertissement du compilateur (niveau 1) C4426 indicateurs d'optimisation modifiés après l'ajout de l'en-tête, peut être dû à #pragma optimize()
Avertissement du compilateur (niveau 1) C4427 « operator » : dépassement en division constante, comportement indéfini
Avertissement du compilateur (niveau 4) C4429 nom de caractère universel éventuellement incomplet ou incorrectement formé
Avertissement du compilateur (erreur) C4430 spécificateur de type manquant - int est pris en compte par défaut. Note : C++ ne prend pas en charge default-int
Avertissement du compilateur (niveau 4) C4431 spécificateur de type manquant - int est pris en compte par défaut. Remarque : C ne prend plus en charge int par défaut
Avertissement du compilateur (niveau 4) C4434 un constructeur static doit avoir un accès privé ; établissement d'un accès privé
Avertissement du compilateur (niveau 4) C4435 « derived_class » : la disposition des objets sous /vd2 sera modifiée en raison de la base virtuelle « base_class »
Avertissement du compilateur (niveau 1) C4436 le dynamic_cast de la base virtuelle « base_class » en « derived_class » dans le constructeur ou le destructeur risque d'échouer avec un objet partiellement construit
Avertissement du compilateur (niveau 4) C4437 le dynamic_cast de la base virtuelle « base_class » en « derived_class » risque d'échouer dans certains contextes
Avertissement du compilateur C4438 « function » : ne peut pas être appelée en toute sécurité dans le mode /await:clrcompat. Si « function » appelle dans le CLR, cela peut résulter en une corruption de tête CLR
Avertissement du compilateur (erreur) C4439 « function » : une définition de fonction avec un type managé dans la signature doit avoir une convention d'appel __clrcall
Avertissement du compilateur (niveau 1) C4440 redéfinition de convention d’appel de « calling_convention1 » en « calling_convention2 » ignoré
Avertissement du compilateur (niveau 1) C4441 convention d’appel de « calling_convention1 » ignoré, « calling_convention2 » utilisé à la place
Avertissement du compilateur (niveau 1) C4442 marque de fin null incorporée à un argument __annotation. La valeur sera tronquée.
Avertissement du compilateur (niveau 1) C4443 le paramètre pragma attendu doit être « 0 », « 1 » ou « 2 »
Avertissement du compilateur (niveau 3) C4444 « identifier » : « __unaligned » de niveau supérieur n'est pas implémenté dans ce contexte
Avertissement du compilateur (niveau 1) C4445 « function »: dans un type WinRT ou managé, une méthode virtuelle ne peut pas être privée
Avertissement du compilateur (niveau 1) C4446 « type » : impossible de mapper le membre « name1 » en ce type en raison d'un conflit avec le nom de type. La méthode a été renommée en « name2 »
Avertissement du compilateur (niveau 1) C4447 Signature « main » trouvée sans modèle de thread. Considérez l’utilisation de « int main(Platform::Array<<Platform::String^>>^ argv) ».
Avertissement du compilateur C4448 « type1 » n’a pas d’interface par défaut spécifiée dans les métadonnées. Choix : « type2 », qui peut échouer lors du runtime.
Avertissement du compilateur C4449 « type » : un type unsealed doit être marqué en tant que « [WebHostHidden] »
Avertissement du compilateur C4450 « type1 » doit être marqué en tant que « [WebHostHidden] », car il dérive de « type2 »
Avertissement du compilateur (niveau 4) C4451 « classname1::member » : l'utilisation de la classe ref « classname2::member » dans ce contexte peut entraîner un marshaling non conforme de l'objet d'un contexte à l'autre
Avertissement du compilateur (niveau 1) C4452 « identifier » : le type public ne peut pas être dans la portée globale. Il doit figurer dans un espace de noms qui est un enfant du nom du fichier .winmd de sortie.
Avertissement du compilateur (niveau 1) C4453 « type » : un type « [webHostHidden] » ne doit pas être utilisé sur la surface publiée d'un type public qui n'est pas « [WebHostHidden] »
Avertissement du compilateur (niveau 1) C4454 « function » est surchargé par plus que le nombre de paramètres d'entrée sans aucun [DefaultOverload] spécifié. Sélection de « declaration » comme surcharge par défaut
Avertissement du compilateur (niveau 1) C4455 « operator operator » : les identificateurs de suffixe littéral ne commençant pas par un trait de soulignement sont réservés
Avertissement du compilateur (niveau 4) C4456 la déclaration de « identifier » masque la déclaration locale précédente
Avertissement du compilateur (niveau 4) C4457 la déclaration de « identifier » masque le paramètre de fonction
Avertissement du compilateur (niveau 4) C4458 la déclaration de « identifier » masque le membre de classe
Avertissement du compilateur (niveau 4) C4459 la déclaration de « identifier » masque la déclaration globale
Avertissement du compilateur (niveau 4) C4460 L’opérateur «  WinRT|managed» « operator » a un paramètre passé par référence. L’opérateur «  WinRT|managed» « operator » a une sémantique différente de celle de l'opérateur C++ « cpp_operator », vouliez-vous effectuer un passage par valeur ?
Avertissement du compilateur (niveau 1) C4461 « classname » : cette classe a un finaliseur « !finalizer » mais pas de destructeur « ~dtor »
Avertissement du compilateur (niveau 1, erreur) C4462 « type » : impossible de déterminer le GUID du type. Le programme risque d'échouer au moment de l'exécution.
Avertissement du compilateur (niveau 4) C4463 dépassement de capacité ; attribution de « value » à un champ de bits qui ne peut contenir que des valeurs comprises entre « min_value » et « max_value »
Avertissement du compilateur (niveau 4) C4464 le chemin include relatif contient « .. »
Avertissement du compilateur C4466 Impossible d'effectuer l'élision du tas de la coroutine
Avertissement du compilateur (niveau 1) C4467 L'utilisation d'attributs ATL est déconseillée
Avertissement du compilateur (niveau 1) C4468 L’attribut [[fallthrough]] doit être suivi d'une étiquette case ou d'une étiquette default
Avertissement du compilateur (niveau 1) C4470 pragmas de contrôle à virgule flottante ignorés sous /clr
Avertissement du compilateur (niveau 4) C4471 « enumeration » : une déclaration anticipée d'une énumération non délimitée doit avoir un type sous-jacent (int pris par défaut)
Avertissement du compilateur (niveau 1) C4472 « identifier » est un enum natif : ajoutez un spécificateur d'accès (private/public) pour déclarer un enum « WinRT|managed »
Avertissement du compilateur (niveau 1) C4473 « function » : nombre insuffisant d'arguments passés pour la chaîne de format
Avertissement du compilateur (niveau 3) C4474 « function » : trop d'arguments passés pour la chaîne de format
Avertissement du compilateur (niveau 3) C4475 « function » : le modificateur de longueur « modifier » ne peut pas être utilisé avec le caractère de champ de type « character » dans le spécificateur de format
Avertissement du compilateur (niveau 3) C4476 « function » : caractère de champ de type « character » inconnu dans le spécificateur de format
Avertissement du compilateur (niveau 1) C4477 « function » : la chaîne de format « string » requiert un argument de type « type » mais l’argument variadique number a le type « type »
Avertissement du compilateur (niveau 1) C4478 « function » : les espaces réservés positionnels et non positionnels ne peuvent pas se trouver dans la même chaîne de format
Avertissement du compilateur (erreur) C4480 extension non standard utilisée : spécification du type sous-jacent pour l'enum « enumeration »
Avertissement du compilateur (niveau 4) C4481 extension non standard utilisée : spécificateur de substitution « keyword »
Avertissement du compilateur C4482 extension non standard utilisée : enum « enumeration » utilisé dans le nom qualifié
Avertissement du compilateur (niveau 1, erreur) C4483 erreur de syntaxe : mot clé C++ attendu
Avertissement du compilateur (erreur) C4484 « override_function » : correspond à la méthode de classe ref de base « base_class_function », mais n'est pas marqué comme « virtual », « new » ou « override » ; « new » (et non « virtual ») est pris par défaut
Avertissement du compilateur (erreur) C4485 « override_function » : correspond à la méthode de classe ref de base « base_class_function », mais n'est pas marqué comme « new » ou « override » ; « new » (et « virtual ») est pris par défaut
Avertissement du compilateur (niveau 1) C4486 « function » : une méthode virtuelle privée d'une classe ref ou d'une classe value doit être marquée comme « sealed »
Avertissement du compilateur (niveau 4) C4487 « derived_class_function » : correspond à la méthode héritée non-virtuelle « base_class_function » mais n’est pas marquée explicitement comme « new »
Avertissement du compilateur (niveau 1) C4488 « function » : requiert le mot clé « keyword » pour implémenter la méthode d’interface « interface_method »
Avertissement du compilateur (niveau 1) C4489 « specifier » : non autorisé sur la méthode d'interface « method »; les spécificateurs de substitution sont uniquement autorisés sur les méthodes des classes ref et value
Avertissement du compilateur (niveau 1) C4490 « override » : utilisation incorrecte du spécificateur de substitution; « function » ne correspond pas à une méthode de classe ref de base
Avertissement du compilateur (niveau 1) C4491 « name » : format de version IDL non conforme
Avertissement du compilateur (niveau 1, erreur) C4492 « function1 »: correspond à la méthode de classe ref « function2 », mais n'est pas marqué comme « override »
Avertissement du compilateur (niveau 3, erreur) C4493 l'expression delete est sans effet, car le destructeur de « type » n'a pas d'accessibilité « public »
Avertissement du compilateur (niveau 1) C4494 « function » : ignore __declspec(allocator) car le type de retour de la fonction n'est pas un pointeur ni une référence
Avertissement du compilateur C4495 extension non standard « __super » utilisée : remplacez-la par le nom de la classe de base explicite
Avertissement du compilateur C4496 extension non standard « for each » utilisée : remplacez-la par une instruction ranged-for
Avertissement du compilateur C4497 extension non standard « sealed » utilisée : remplacez-la par « final »
Avertissement du compilateur C4498 extension non standard utilisée : « extension »
Avertissement du compilateur (niveau 4) C4499 « function » : une sérialisation explicite ne peut pas avoir de classe de stockage (ignoré)
Avertissement du compilateur (niveau 1) C4502 « linkage specification » nécessite l'utilisation du mot clé « extern » et doit précéder tous les autres spécificateurs
Avertissement du compilateur (niveau 1) C4503 « identifier » : longueur du nom décoré dépassée, le nom a été tronqué
Avertissement du compilateur (niveau 4) C4505 « function » : la fonction locale non référencée a été supprimée
Avertissement du compilateur (niveau 1) C4506 aucune définition pour la fonction inline « function »
Avertissement du compilateur (niveau 1) C4508 « function » : la fonction doit retourner une valeur ; type de retour « void » pris par défaut
Avertissement du compilateur C4509 extension non standard utilisée : « function » utilise SEH et « object » a un destructeur
Avertissement du compilateur (niveau 4) C4510 « class » : le constructeur par défaut a été implicitement défini comme étant supprimé
Avertissement du compilateur (niveau 3) C4511 « class » : le constructeur de copie a été implicitement défini comme étant supprimé
Avertissement du compilateur (niveau 4) C4512 « class »  : l'opérateur d'assignation a été implicitement défini comme étant supprimé
Avertissement du compilateur (niveau 4) C4513 « class » : le destructeur a été implicitement défini comme étant supprimé
Avertissement du compilateur (niveau 4) C4514 « function » : la fonction inline non référencée a été supprimée
Avertissement du compilateur (niveau 4) C4515 « namespace » : l'espace de noms s'utilise lui-même
Avertissement du compilateur (niveau 4) C4516 « class::symbol » : les déclarations d'accès sont déconseillées ; les déclarations using de membres constituent un meilleur choix
Avertissement du compilateur (niveau 4) C4517 les déclarations d'accès sont déconseillées ; les déclarations using de membres constituent un meilleur choix
Avertissement du compilateur (niveau 1) C4518 « specifier » : classe de stockage ou spécificateur(s) de type inattendu(es) ; ignoré(es)
Avertissement du compilateur (erreur) C4519 arguments template par défaut autorisés uniquement sur un modèle de classe
Avertissement du compilateur (niveau 3) C4521 « class » : plusieurs constructeurs de copie spécifiés
Avertissement du compilateur (niveau 3) C4522 « class » : plusieurs opérateurs d'assignation spécifiés
Avertissement du compilateur (niveau 3) C4523 « class » : plusieurs destructeurs spécifiés
Avertissement du compilateur (niveau 1) C4526 « function »: les fonctions membres static ne peuvent pas substituer la fonction virtual « virtual function » substitution ignorée, la fonction virtual sera masquée
Avertissement du compilateur (niveau 1) C4530 Gestionnaire d'exceptions C++ utilisé, mais les sémantiques de déroulement n'ont pas été activées. Spécifiez /EHsc
Avertissement du compilateur (niveau 1) C4531 La gestion des exceptions C++ n’est pas disponible sur Windows CE. Utilisez la gestion structurée des exceptions
Avertissement du compilateur (niveau 1) C4532 « continue » : le saut hors du bloc « __finally/finally » a un comportement indéfini lors de la gestion du bloc de fin
Avertissement du compilateur (niveau 1) C4533 L’initialisation de « variable » est ignorée par « goto label »
Avertissement du compilateur (niveau 3) C4534 « constructor » ne sera pas un constructeur par défaut pour l’identificateur « class/struct » à cause de l’argument par défaut
Avertissement du compilateur (niveau 3) C4535 l’appel de _set_se_translator() requiert /EHa
Avertissement du compilateur (niveau 4) C4536 « typename » : le nom de type dépasse la limite métadonnées de « character_limit » caractères
Avertissement du compilateur (niveau 1) C4537 « object » : « . » appliqué à un type non UDT
Avertissement du compilateur (niveau 3) C4538 « type » : les qualificateurs const/volatile pour ce type ne sont pas pris en charge
Avertissement du compilateur (niveau 1) C4540 dynamic_cast est utilisé pour convertir en une base ambiguë ou inaccessible ; le test d'exécution échouera (« type1 » à « type2 »)
Avertissement du compilateur (niveau 1) C4541 « identifier » utilisé sur un type polymorphe « type » avec /GR- ; risque de comportement imprévisible
Avertissement du compilateur (niveau 1) C4542 Génération ignorée du fichier texte injecté fusionné, impossible d'écrire le fichier filetype : « issue » : message
Avertissement du compilateur (niveau 3) C4543 Texte injecté supprimé par l'attribut « no_injected_text »
Avertissement du compilateur (niveau 1) C4544 « declaration » : argument modèle par défaut ignoré sur cette déclaration de modèle
Avertissement du compilateur (niveau 1) C4545 l’expression avant la virgule correspond à une fonction qui n’a pas de liste d’arguments
Avertissement du compilateur (niveau 1) C4546 l’appel de fonction avant la virgule n’a pas de liste d’arguments
Avertissement du compilateur (niveau 1) C4547 « operator » : l'opérateur avant la virgule n'a pas d'effet; opérateur avec effet secondaire attendu
Avertissement du compilateur (niveau 1) C4548 l'expression avant la virgule n'a pas d'effet ; expression avec effet secondaire attendu
Avertissement du compilateur (niveau 1) C4549 « operator » : l'opérateur avant la virgule n'a pas d'effet ; souhaitiez-vous utiliser « operator » ?
Avertissement du compilateur (niveau 1) C4550 l'expression évalue une fonction dans laquelle manque une liste d'arguments
Avertissement du compilateur (niveau 1) C4551 liste d'arguments manquante dans l'appel de fonction
Avertissement du compilateur (niveau 1) C4552 « operator » : l'opérateur n'a pas d'effet; opérateur avec effet secondaire attendu
Avertissement du compilateur (niveau 1) C4553 « operator » : l'opérateur n'a pas d'effet ; souhaitiez-vous utiliser « operator » ?
Avertissement du compilateur (niveau 3) C4554 C4554 « operator » : vérifiez si la priorité des opérateurs n'est pas une cause possible d'erreur ; utilisez des parenthèses pour rendre les priorités plus claires
Avertissement du compilateur (niveau 1) C4555 l'expression n'a pas d'effet ; attendue expression avec effets secondaires
Avertissement du compilateur (niveau 1) C4556 la valeur de l’argument immédiat intrinsèque « value » est hors de portée « lower_bound - upper_bound »
Avertissement du compilateur (niveau 3) C4557 « __assume » contient l'effet « effect »
Avertissement du compilateur (niveau 1) C4558 la valeur de l’opérande « value » est hors de portée « lower_bound - upper_bound »
Avertissement du compilateur (niveau 4) C4559 « function »' : redéfinition ; la fonction gagne __declspec(modifier)
Avertissement du compilateur (niveau 1) C4561 « __fastcall » incompatible avec l'option « /clr » : conversion en « __stdcall »
Avertissement du compilateur (niveau 4) C4562 les fonctions entièrement prototypées sont requises avec l'option « /clr » : conversion de « () » en « (void) »
Avertissement du compilateur (niveau 4) C4564 la méthode « method » de la classe « classname » définit le paramètre par défaut non pris en charge « parameter »
Avertissement du compilateur (niveau 4) C4565 « function » : redéfinition ; le symbole était déclaré précédemment avec __declspec(%s)
Avertissement du compilateur (niveau 1) C4566 le caractère représenté par le nom de caractère universel « char » ne peut pas être représenté dans la page de codes actuelle (number)
Avertissement du compilateur (niveau 1) C4568 « function » : aucun membre ne correspond à la signature de la substitution explicite
Avertissement du compilateur (niveau 3) C4569 « function » : aucun membre ne correspond à la signature de la substitution explicite
Avertissement du compilateur (niveau 3) C4570 « type » : n'est pas explicitement déclaré comme abstract mais comporte des fonctions abstract
Avertissement du compilateur (niveau 4) C4571 Informations : la sémantique catch(...) a changé depuis Visual C++ 7.1 ; les exceptions structurées (SEH) ne sont plus interceptées
Avertissement du compilateur (niveau 1) C4572 l'attribut [ParamArray] est déconseillé sous /clr, utilisez « ... » à la place
Avertissement du compilateur (niveau 1) C4573 l'utilisation de « lambda function » exige que le compilateur capture « ceci », ce qui n'est pas autorisé par le mode de capture par défaut actuel
Avertissement du compilateur (niveau 4) C4574 « identifier » est défini comme étant « 0 » : voulez-vous utiliser « identifier #if » ?
Avertissement du compilateur (niveau 1) C4575 « __vectorcall » incompatible avec l'option « /clr » : conversion en « __stdcall »
Avertissement du compilateur (niveau 1, erreur) C4576 un type entre parenthèses suivi d'une liste d'initialiseurs est une syntaxe de conversion de type explicite non standard
Avertissement du compilateur (niveau 1, éteint) C4577 « noexcept » utilisé sans mode de gestion d'exceptions spécifié. L'arrêt en cas d'exception n'est pas garanti. Spécifiez /EHsc
Avertissement du compilateur (niveau 1, erreur) C4578 « abs»  : conversion de « type1 » en « type2 », perte de données possible (Vouliez-vous appeler « function » ou convertir en #include <cmath> ?)
Avertissement du compilateur (niveau 3) C4580 [attribute] est déconseillé ; spécifiez System::Attribute ou Platform::Metadata comme classe de base à la place
Avertissement du compilateur (niveau 1) C4581 comportement déconseillé : « string » remplacé par « string » pour traiter l'attribut
Avertissement du compilateur (niveau 4) C4582 « type » : le constructeur n'est pas appelé de manière implicite
Avertissement du compilateur (niveau 4) C4583 « type » : le destructeur n’est pas appelé de manière implicite
Avertissement du compilateur (niveau 1) C4584 « class1 »: la classe de base « class2 »est déjà une classe de base de « class3 »
Avertissement du compilateur (niveau 1, erreur) C4585 « class1 » : une classe « public ref class » WinRT doit être sealed ou dériver d'une classe unsealed existante
Avertissement du compilateur (niveau 1, erreur) C4586 « type » : un type public ne peut pas être déclaré dans un espace de noms de niveau supérieur appelé « Windows »
Avertissement du compilateur (niveau 1) C4587 « anonymous_structure » : changement de comportement : le constructeur n'est plus appelé de manière implicite
Avertissement du compilateur (niveau 1) C4588 « anonymous_structure » : changement de comportement : le destructeur n'est plus appelé de manière implicite
Avertissement du compilateur (niveau 4) C4589 Le constructeur de la classe abstraite « class1 » ignore l'initialiseur pour la classe de base virtuelle « class2 »
Avertissement du compilateur (niveau 1) C4591 « constexpr » la limite de profondeur d’appel de number a dépassé (/constexpr:depth<NUMBER>)
Avertissement du compilateur (niveau 3) C4592 « function » : l’évaluation d’appel « constexpr » a échoué; la fonction sera appelée à l’exécution
Avertissement du compilateur (niveau 1) C4593 « function » : l’évaluation d’appel « constexpr » a dépassé la limite d’étapes « limit »; utilisez /constexpr:steps<NUMBER> pour augmenter la limite
Avertissement du compilateur (niveau 3) C4594 « type » : le destructeur ne sera pas appelé implicitement si une exception est levée
Avertissement du compilateur (niveau 1) C4595 « type » : changement de comportement : le destructeur ne sera plus appelé implicitement si une exception est levée
Avertissement du compilateur (niveau 4) C4596 « identifier » : nom qualifié non conforme dans une déclaration de membre
Avertissement du compilateur (erreur) C4597 comportement non défini : offsetof appliqué à un membre d'une base virtuelle
Avertissement du compilateur (niveaux 1 et 3) C4598 « #include header » : le numéro d’en-tête number dans l’en-tête précompilé ne correspond pas à la compilation actuelle à cette position
Avertissement du compilateur (niveau 3) C4599 « flag path » : l’argument de ligne de commande numéro number ne correspond pas à l’en-tête précompilé

Voir aussi

Erreurs et avertissements du compilateur C/C++ et des outils de génération
Avertissements du compilateur C4000 à C5999