Partager via


Erreurs du compilateur C2800 à C2899

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 C2800 'L’opérateur operator' ne peut pas être surchargé
Erreur du compilateur C2801 Le 'membre' doit être un membre non static
Erreur du compilateur C2802 le membre static 'opérateur operator' n'a aucun paramètre formel
Erreur du compilateur C2803 'L’opérateur operator' doit avoir au moins un paramètre de type classe
Erreur du compilateur C2804 trop de paramètres pour l'opérateur binaire 'opérateur operator'
Erreur du compilateur C2805 trop de paramètres pour l'opérateur binaire 'opérateur operator'
Erreur du compilateur C2806 trop de paramètres pour l'opérateur binaire 'opérateur operator'
Erreur du compilateur C2807 le second paramètre formel du suffixe 'opérateur operator' doit être 'int'
Erreur du compilateur C2808 trop de paramètres pour l'opérateur unaire ''opérateur operator'
Erreur du compilateur C2809 'L’opérateur operator' n’a pas de paramètres formels
Erreur du compilateur C2810 'interface' : une interface ne peut hériter que d'une autre interface
Erreur du compilateur C2811 'type1' : ne peut pas hériter de 'type2', une classe ref ne peut hériter qu’d’une classe ref ou d’une classe d’interface
Erreur du compilateur C2812 #import n'est pas pris en charge avec /clr:pure et /clr:safe
Erreur du compilateur C2813 #import n'est pas pris en charge avec /MP
Erreur du compilateur C2814 'membre' : un type natif ne peut pas être imbriqué dans un type managé ou WinRT 'classe'
Erreur du compilateur C2815 'operator delete' : le premier paramètre formel doit être 'void *', mais 'type' a été utilisé
Erreur du compilateur C2816 il manque une ')' de fin dans l'appel de la macro de type fonction 'identificateur'
Erreur du compilateur C2817 le type de retour de 'operator delete' doit être 'void'
Erreur du compilateur C2818 l'application de 'operator ->' surchargé est récurrente à travers le type 'class'
Erreur du compilateur C2819 le type 'class' n'a pas d'opérateur 'operator ->' de membre surchargé
Erreur du compilateur C2820 Obsolète.
Erreur du compilateur C2821 le premier paramètre formel de 'operator new' doit être 'size_t'
Erreur du compilateur C2822 le déroulement local n'est pas pris en charge sur cette plateforme
Erreur du compilateur C2823 un typedef template/generic non conforme
Erreur du compilateur C2824 le type de retour de 'operator new' doit être 'void *'
Erreur du compilateur C2825 'identificateur' doit être une classe ou un espace de noms lorsqu'il est suivi par '::'
Erreur du compilateur C2826 Obsolète.
Erreur du compilateur C2827 'L’opérateur operator' ne peut pas être globalement substitué par une forme unaire
Erreur du compilateur C2828 'L’opérateur operator'' ne peut pas être globalement substitué par une forme binaire
Erreur du compilateur C2829 'L’opérateur operator' ne peut pas avoir une liste de paramètres de variable
Erreur du compilateur C2830 seuls les paramètres de positionnement de 'operator new' peuvent avoir des valeurs par défaut
Erreur du compilateur C2831 'L’opérateur operator' ne peut pas avoir de paramètres par défaut
Erreur du compilateur C2832 'identificateur' : un type de référence ne peut pas être initialisé par une valeur
Erreur du compilateur C2833 'L’opérateur token' n'est pas un opérateur ou type reconnu
Erreur du compilateur C2834 'L’opérateur operator' doit être qualifié globalement (obsolète dans Visual Studio 2022.)
Erreur du compilateur C2835 une conversion définie par l'utilisateur 'type' n'accepte pas de paramètres formels
Erreur du compilateur C2836 'identificateur' : seule une donnée membre non static d'une union peut avoir un initialiseur de membre par défaut
Erreur du compilateur C2837 'fonction' : impossible d'utiliser les directives OpenMP et #pragma loop(hint_parallel) dans la même fonction
Erreur du compilateur C2838 « identifier » : nom qualifié non conforme dans une déclaration de membre
Erreur du compilateur C2839 type de retour 'type' non valide pour l'opérateur surchargé 'operator ->'
Erreur du compilateur C2840 l'argument de type word de l'instruction n'est pas une constante
Erreur du compilateur C2841 l'argument du registre n'est pas une constante
Erreur du compilateur C2842 'class' : un type managé/WinRT ne peut pas définir son propre 'operator new' ou 'operator delete'
Erreur du compilateur C2843 'membre' : ne peut pas prendre l'adresse d'une donnée membre non static ni d'une méthode de type managé/WinRT
Erreur du compilateur C2844 'identificateur' : ne peut pas être membre de l’interface 'interface'
Erreur du compilateur C2845 'type' : opération arithmétique de pointeur non autorisée sur ce type
Erreur du compilateur C2846 'interface' : une interface ne peut pas avoir de constructeur
Erreur du compilateur C2847 ne peut pas appliquer sizeof à un type 'class' managé/WinRT
Erreur du compilateur C2848 'classe' : un type géré/WinRT ne peut pas être membre d'une union
Erreur du compilateur C2849 'interface' : une interface ne peut pas avoir de destructeur
Erreur du compilateur C2850 'construire' : uniquement autorisé au niveau de la portée du fichier ; ne peut pas être dans une construction imbriquée
Erreur du compilateur C2851 'énumération' : une énumération WinRT public peut uniquement utiliser 'int' ou 'unsigned int' comme type de base
Erreur du compilateur C2852 'identificateur' : seules les données membres peuvent être initialisées dans une classe
Erreur du compilateur C2853 'identificateur' : une donnée membre non static ne peut pas avoir un type contenant 'auto'
Erreur du compilateur C2854 erreur de syntaxe dans #pragma hdrstop
Erreur du compilateur C2855 option de ligne de commande 'option' non cohérente avec l'en-tête précompilé
Erreur du compilateur C2856 #pragma hdrstop ne peut pas se trouver dans un bloc #if
Erreur du compilateur C2857 L'instruction '#include' spécifiée avec l'option de ligne de commande /Ycfilename n'a pu être trouvée dans le fichier source
Erreur du compilateur C2858 L’option de ligne de commande '/Yc (/Fdfilename)' incohérente avec l’en-tête précompilé, qui a utilisé '/Fdfilename' (Obsolète dans Visual Studio 2022.)
Erreur du compilateur C2859 filename ne correspond pas au fichier filetype utilisé lors de la création de cet en-tête précompilé, recréez l'en-tête précompilé.
Erreur du compilateur C2860 « void » ne peut pas être utilisé en tant que paramètre de fonction sauf pour « (void) »
Erreur du compilateur C2861 'déclaration' : impossible de définir une fonction membre d'interface
Erreur du compilateur C2862 'interface' : une interface ne peut avoir que des membres publics
Erreur du compilateur C2863 'interface' : une interface ne peut pas avoir de fonctions friend
Erreur du compilateur C2864 'identifier' : une donnée membre statique/une variable modèle avec un initialiseur de classe doit avoir un type entier const non volatile
Erreur du compilateur C2865 'opérateur' : comparaison illégale pour le pointeur/handle d’objet
Erreur du compilateur C2866 Obsolète.
Erreur du compilateur C2867 'identificateur' : n’est pas un espace de noms
Erreur du compilateur C2868 'identificateur' : syntaxe non conforme pour l’utilisation de la déclaration ; nom qualifié attendu
Erreur du compilateur C2869 'identificateur' : déjà défini comme espace de noms
Erreur du compilateur C2870 'identificateur' : la définition d'un espace de noms doit apparaître soit au niveau de la portée du fichier soit immédiatement au sein d'une autre définition d'espace de noms
Erreur du compilateur C2871 'identificateur' : un espace de noms avec ce nom n'existe pas
Erreur du compilateur C2872 'identificateur' : symbole ambigu
Erreur du compilateur C2873 'symbole' : un symbole ne peut pas être utilisé dans une déclaration d’utilisation
Erreur du compilateur C2874 la déclaration d’utilisation provoque une déclaration multiple de 'identificateur'
Erreur du compilateur C2875 la déclaration d’utilisation provoque une déclaration multiple de 'class::identifier' (obsolète dans Visual Studio 2022.)
Erreur du compilateur C2876 'classe::membre' : toutes les surcharges ne sont pas accessibles
Erreur du compilateur C2877 'membre' n’est pas accessible à partir de 'classe'
Erreur du compilateur C2878 ''identificateur' : espace de noms ou nom de classe inexistant
Erreur du compilateur C2879 'identificateur' : seul un espace de noms existant peut être renommé par une définition d'alias d'espace de noms
Erreur du compilateur C2880 __swi ou __hvc requiert une constante valide comme premier argument (numéro de SWI)
Erreur du compilateur C2881 'identificateur' : est déjà utilisé comme alias pour 'classe'
Erreur du compilateur C2882 'identificateur' : utilisation non conforme d'un identificateur d'espace de noms dans l'expression
Erreur du compilateur C2883 'fonction' : la déclaration de fonction est en conflit avec 'identificateur' introduite par l’utilisation de la déclaration
Erreur du compilateur C2884 'identificateur' : introduit par des conflits de déclaration d’utilisation avec la fonction locale '%$pS'
Erreur du compilateur C2885 'classe::identificateur' : non une déclaration d’utilisation valide à l’étendue non de classe
Erreur du compilateur C2886 'class::identifier' : le symbole ne peut pas être utilisé dans une déclaration de membre à l’aide de la déclaration
Erreur du compilateur C2887 __swi ou __hvc ne peut pas avoir plus de cinq arguments (numéro de SWI, r0 - r3)
Erreur du compilateur C2888 'identificateur' : le symbole ne peut pas être défini dans l’espace de noms 'namespace'
Erreur du compilateur C2889 'classe' : un type de classe managé/WinRT ne peut pas être une classe de base virtuelle
Erreur du compilateur C2890 'classe' : une classe de référence ne peut avoir qu'une classe de base sans interface
Erreur du compilateur C2891 'paramètre' : impossible d'obtenir l'adresse d'un paramètre de modèle
Erreur du compilateur C2892 la classe locale ne doit pas avoir de modèles membres
Erreur du compilateur C2893 La spécialisation du modèle de fonction 'modèle' a échouée
Erreur du compilateur C2894 les modèles ne peuvent pas être déclarés comme ayant une liaison 'C'
Erreur du compilateur C2895 'déclaration' : impossible d'instancier explicitement un modèle de fonction déclaré avec dllimport
Erreur du compilateur C2896 'function1' : impossible d’utiliser le modèle de fonction/générique 'function2' comme argument de fonction (obsolète dans Visual Studio 2022.)
Erreur du compilateur C2897 Un destructeur/finaliseur ne peut pas être un modèle de fonction
Erreur du compilateur C2898 'déclaration' : les modèles de fonction membre ne peuvent pas être virtuels
Erreur du compilateur C2899 Obsolète.

Voir aussi

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