Erreurs du compilateur C2500 à C2599

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 C2500 'identifier1' : 'identifier2' est déjà une classe de base directe
Erreur du compilateur C2501 'identifier' : '__declspec(specifier)' ne peut s'appliquer qu'aux structs, unions, classes ou membres de champ de bit non signés
Erreur du compilateur C2502 'identifier' : modificateurs d'accès sur la classe de base trop nombreux
Erreur du compilateur C2503 'class' : les classes de base ne peuvent pas contenir de tableaux de taille zéro
Erreur du compilateur C2504 'class' : classe de base non définie
Erreur du compilateur C2505 'symbol' : '__declspec(specifier)' ne peut s'appliquer qu'aux déclarations ou définitions d'objets globaux ou de membres de données statiques
Erreur du compilateur C2506 'member' : '__declspec(specifier)' ne peut pas être appliqué à ce symbole
Erreur du compilateur C2507 'identifier' : modificateurs virtuels sur la classe de base trop nombreux
Erreur du compilateur C2508 'identifier' : '__declspec(specifier1)' ne peut pas être combiné à '__declspec(specifier2)'
Erreur du compilateur C2509 'identifier' : fonction membre non déclarée dans 'class'
Erreur du compilateur C2510 'identifier' : la classe/struct/union doit figurer à gauche de '::'
Erreur du compilateur C2511 'identifier' : impossible de trouver la fonction membre surchargée dans 'class'
Erreur du compilateur C2512 'identifier' : aucun constructeur par défaut approprié disponible
Erreur du compilateur C2513 '*type' : aucune variable déclarée avant '='
Erreur du compilateur C2514 'class' : la classe n'a aucun constructeur
Erreur du compilateur C2515 'identifier' : 'vtguard' ne peut s'appliquer qu'aux définitions ou déclarations de classe
Erreur du compilateur C2516 'class' : classe de base non légale
Erreur du compilateur C2517 'identifier' : la partie à droite de '::' n’est pas définie
Erreur du compilateur C2518 mot clé 'keyword' illégal dans la liste de classes de base ; ignoré
Erreur du compilateur C2519 'identifier' : les attributs WinRT ne peuvent contenir que des champs publics
Erreur du compilateur C2520 'class' : aucun constructeur non explicite disponible pour la conversion implicite
Erreur du compilateur C2521 un destructeur/finaliseur n'accepte pas d'arguments
Erreur du compilateur C2522 'identifier' : impossible d'utiliser l'identificateur de surcharge pour 'identifier1', car il est déjà spécifié pour 'identifier2'
Erreur du compilateur C2523 'class::~identifier' : incohérence de balise destructeur/finaliseur
Erreur du compilateur C2524 'identifier' : un destructeur/finaliseur doit avoir une liste de paramètres 'void'
Erreur du compilateur C2525 'identifier' : le paramètre 'identifier1' est nommé 'identifier2' sur la fonction de base et doit avoir une correspondance dans une implémentation publiée
Erreur du compilateur C2526 'identifier1' : une fonction de liaison C ne peut pas retourner de classe C++ 'identifier2'
Erreur du compilateur C2527 'identifier' : DefaultOverload ne peut pas être spécifié à la fois sur 'function1' et 'function2'. Supprimer une spécification ou renommer la fonction pendant l’implémentation
Erreur du compilateur C2528 'identifier' : le pointeur vers la référence est illégal
Erreur du compilateur C2529 'identifier' : la référence à la référence est illégale
Erreur du compilateur C2530 'identifier' : les références doivent être initialisées
Erreur du compilateur C2531 'identifier' : référence illégale à un champ de bit
Erreur du compilateur C2532 'identifier' : modificateur illégal pour la référence
Erreur du compilateur C2533 'identifier' : type de retour non autorisé pour les constructeurs
Erreur du compilateur C2534 'identifier' : le constructeur ne peut pas retourner de valeur
Erreur du compilateur C2535 'identifier' : fonction membre déjà définie ou déclarée
Erreur du compilateur C2536 Obsolète.
Erreur du compilateur C2537 'specifier' : spécification illégale de liaison
Erreur du compilateur C2538 Obsolète.
Erreur du compilateur C2539 Obsolète.
Erreur du compilateur C2540 expression non constante limitée par tableau
Erreur du compilateur C2541 'identifier' : impossible de supprimer des objets qui ne sont pas des pointeurs
Erreur du compilateur C2542 'identifier' : l'objet de classe n'a pas de constructeur pour l'initialisation
Erreur du compilateur C2543 ']' attendu pour l'opérateur '[]'
Erreur du compilateur C2544 ')' attendu pour l'opérateur '()'
Erreur du compilateur C2545 'operator' : impossible de trouver l'opérateur surchargé
Erreur du compilateur C2546 'identifier' : si un type est défini à la fois dans un PIA et dans un non-PIA, le PIA doit être référencé au préalable
Erreur du compilateur C2547 'identifier' : tous les paramètres d'une méthode publiée doivent être nommés de manière explicite dans la déclaration
Erreur du compilateur C2548 'function' : paramètre par défaut manquant pour le paramètre paramètre
Erreur du compilateur C2549 une conversion définie par l'utilisateur ne peut pas spécifier de type de retour
Erreur du compilateur C2550 'identifier' : les listes d'initialiseurs de constructeur ne sont autorisées que dans les définitions de constructeurs
Erreur du compilateur C2551 le type 'void *' nécessite un cast explicite
Erreur du compilateur C2552 'identifier' : les éléments non agrégés ne peuvent pas être initialisés avec une liste d'initialiseurs
Erreur du compilateur C2553 « type derived_class::function » : le remplacement du type de retour de fonction virtuelle diffère du « type base_class::function »
Erreur du compilateur C2555 'derived_class::function' : l’annulation du type de retour de fonction virtuelle diffère et n’est pas une covariante de 'base_class::function'
Erreur du compilateur C2556 « type1 class::function » : une fonction surchargée diffère uniquement de « type2 class::function » par son type de retour
Erreur du compilateur C2557 'identifier' : impossible d’initialiser des membres privés et protégés sans un constructeur
Erreur du compilateur C2558 classe 'class' : pas de constructeur de copie disponible ou le constructeur de copie est déclaré 'explicit'
Erreur du compilateur C2559 'identifier' : impossible de surcharger une fonction membre sans qualificateur ref avec une fonction membre dotée de qualificateur ref
Erreur du compilateur C2560 'identifier' : impossible de surcharger une fonction membre dotée de qualificateur ref avec une fonction membre sans qualificateur ref
Erreur du compilateur C2561 'function' : la fonction doit retourner une valeur
Erreur du compilateur C2562 'function' : la fonction 'void' qui retourne une valeur
Erreur du compilateur C2563 incompatibilité dans la liste de paramètres formels
Erreur du compilateur C2564 Obsolète.
Erreur du compilateur C2565 'identifier' : le qualificateur ref est illégal pour les constructeurs/destructeurs
Erreur du compilateur C2566 fonction surchargée dans l’expression conditionnelle
Erreur du compilateur C2567 impossible d’ouvrir les métadonnées dans 'filename', possible_reason
Erreur du compilateur C2568 'identifier' : impossible de résoudre la surcharge de fonction
Erreur du compilateur C2569 'identifier' : l’enum/union ne peut pas être utilisée comme classe de base
Erreur du compilateur C2570 'identifier' : l’union ne peut pas avoir de classes de base
Erreur du compilateur C2571 'identifier' : une fonction virtuelle ne peut pas figurer dans l'union 'union'
Erreur du compilateur C2572 'function' : redéfinition de l'argument par défaut ; nombre de paramètre
Erreur du compilateur C2573 'class' : impossible de supprimer les pointeurs vers les objets de ce type ; la classe n’a aucune surcharge de non-positionnement pour 'operator delete'. Utilisez ::delete ou ajoutez 'operator delete(void*)' à la classe
Erreur du compilateur C2574 'destructor' : ne peut pas être déclaré statique
Erreur du compilateur C2575 'identifier' : seules les fonctions et bases membres peuvent être virtuelles
Erreur du compilateur C2576 'identifier' : ne peut pas introduire une nouvelle méthode virtuelle en tant que 'public'. Envisagez de rendre la méthode non virtuelle ou modifiez l'accessibilité à 'internal' ou 'protected private'
Erreur du compilateur C2577 'identifier' : un destructeur/finaliseur ne peut pas avoir de type de retour
Erreur du compilateur C2578 'class' : le type ne peut pas avoir de constructeur 'protected' ou 'protected public'
Erreur du compilateur C2579 impossible de résoudre le type type (décalage). Il est attendu dans nom de fichier
Erreur du compilateur C2580 'identifier' : plusieurs versions de fonctions de membres spéciales par défaut ne sont pas autorisées
Erreur du compilateur C2581 'type' : la fonction statique 'operator =' est illégale
Erreur du compilateur C2582 la fonction 'operator operator' n’est pas disponible dans 'type'
Erreur du compilateur C2583 'identifier' : pointeur 'const/volatile' 'this' illégal pour les constructeurs/destructeurs
Erreur du compilateur C2584 'class' : la base directe 'base_class2' est inaccessible ; il existe déjà une base 'base_class1'
Erreur du compilateur C2585 la conversion explicite vers 'type' est ambiguë
Erreur du compilateur C2586 syntaxe de conversion définie par l'utilisateur incorrecte : indirections illégales
Erreur du compilateur C2587 'identifier' : utilisation illégale d'une variable locale comme paramètre par défaut
Erreur du compilateur C2588 '::~identifier' : destructeur/finaliseur global illégal
Erreur du compilateur C2589 'identifier' : jeton illégal à droite de '::'
Erreur du compilateur C2590 'identifier' : seul un constructeur peut avoir une liste d'initialiseurs de base/membre
Erreur du compilateur C2591 ExclusiveTo ne peut pas utiliser 'type' comme argument. Seule une 'ref class' est un argument valide
Erreur du compilateur C2592 'class' : 'base_class2' est héritée de 'base_class1' et ne peut pas être spécifiée de nouveau
Erreur du compilateur C2593 'operator identifier' est ambigu
Erreur du compilateur C2594 'operator' : conversions ambiguës de 'type1' en 'type2'
Erreur du compilateur C2595 'identifier' Un type d'attribut WinRT doit être sealed
Erreur du compilateur C2596 'identifier' Un champ d'attribut WinRT peut uniquement être de type 'public enum class', 'int', 'unsigned int', 'bool', 'Platform::Type', 'Platform::String' ou 'Windows::Foundation::HResult'
Erreur du compilateur C2597 référence illégale au membre 'identifier' non statique
Erreur du compilateur C2598 la spécification de la liaison doit figurer au niveau de l’étendue globale
Erreur du compilateur C2599 'identifier' : la déclaration anticipée d'un enum managée/WinRT n'est pas autorisée

Voir aussi

Erreurs et avertissements du compilateur C/C++ et des outils de génération
Erreurs du compilateur C2000 - C3999, C7000 - C7999