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