Microsoft C/C++-Compilerwarnungen C4800 bis C4999

Die Artikel in diesem Abschnitt beschreiben Microsoft C/C++-Compilerwarnungen C4800-C4999.

Wichtig

Die Visual Studio-Compiler und -Buildtools können vielen Arten von Fehlern und Warnungen generieren. Nachdem ein Fehler oder eine Warnung erkannt wurde, können die Buildtools Annahmen über den beabsichtigten Zweck des Codes machen, und sie versuchen, den Code weiterhin auszuführen, sodass mehrere Probleme gleichzeitig gemeldet werden können. Wenn die Tools allerdings von falschen Annahmen ausgehen, sind spätere Fehler oder Warnungen möglicherweise nicht auf das Projekt anwendbar. Wenn Sie Probleme im Projekt beheben, sollten Sie immer mit dem ersten gemeldeten Problem (Fehler oder Warnung) beginnen, und häufig einen Rebuild für das Projekt ausführen. Durch eine Fehlerbehebung können möglicherweise viele nachfolgende Fehler behoben werden.

Um Hilfe zu einer bestimmten Diagnosenachricht in Visual Studio zu erhalten, wählen Sie sie im Fenster Ausgabe aus, und drücken Sie die Taste F1. Visual Studio öffnet die Dokumentationsseite für diesen Fehler, sofern vorhanden. Sie können auch das Suchtool oben auf der Seite verwenden, um Artikel zu bestimmten Fehlern oder Warnungen zu finden. Oder durchsuchen Sie die Liste der Fehler und Warnungen nach Tool und Typ im Inhaltsverzeichnis auf dieser Seite.

Hinweis

Nicht jeder Visual Studio-Fehler oder jede Warnung ist dokumentiert. In vielen Fällen sind bereits alle verfügbaren Informationen in der Fehlermeldung enthalten. Wenn Sie diese Seite erreicht haben, nachdem Sie F1 gedrückt haben, und der Ansicht sind, dass die Fehlermeldung oder Warnmeldung zusätzliche Erläuterungen benötigt, teilen Sie uns dies mit. Mithilfe der Feedbackschaltflächen auf dieser Seite können Sie ein Dokumentationsproblem auf GitHub melden. Wenn Sie glauben, dass der Fehler oder die Warnung falsch ist oder Sie ein weiteres Problem mit dem Toolset gefunden haben, melden Sie ein Produktproblem auf der Developer Community-Website. Sie können auch innerhalb der IDE Feedback senden und Fehler eingeben. Wechseln Sie in Visual Studio zur Menüleiste, und wählen Sie Hilfe > Feedback senden > Ein Problem melden aus, oder senden Sie einen Vorschlag über Hilfe > Feedback senden > Vorschlag senden. Es wurden einige Themen zu Compilerfehlern erstellt, die nicht vom Compiler ausgegeben werden und Sie jetzt stattdessen zu dieser Seite umleiten.

In Microsoft Learn Q&A-Foren finden Sie möglicherweise zusätzliche Unterstützung für Fehler und Warnungen. Oder suchen Sie auf der Website der Visual Studio C++-Developer Community nach der Fehler- oder Warnungsnummer. Sie können auch Stack Overflow nach Lösungen durchsuchen.

Links zu zusätzlichen Hilfe- und Communityressourcen finden Sie in der Hilfe und Community für Visual C++.

Warnmeldungen

Warnung `Message`
Compilerwarnung (Ebene 4, deaktiviert) C4800 Implizite Konvertierung von 'type' zu bool. Mögliche Informationsverluste
Compilerwarnung C4801 Die Rückgabe als Verweis kann nicht überprüft werden: message
Compilerwarnung (Stufe 1) C4803 'method': Die Raise-Methode hat eine andere Speicherklasse als die des Ereignisses 'event'
Compilerwarnung (Stufe 1) C4804 'operation': unsichere Verwendung des Typs 'bool' in Betrieb
Compilerwarnung (Stufe 1) C4805 'operation': unsichere Kombination von Typ 'type1' und type 'type2' in einer Operation
Compilerwarnung (Stufe 1) C4806 'operation': unsichere Operation: kein Wert vom Typ 'type1' erweitert auf Typ 'type2' kann mit der angegebenen Konstante übereinstimmen
Compilerwarnung (Stufe 1) C4807 'operation': Unsichere Kombination von Typ 'type1' und signiertem Bitfeld des Typs 'type2'
Compilerwarnung (Stufe 1) C4808 case 'value' ist kein gültiger Wert für die switch Bedingung des Typs 'bool'
Compilerwarnung (Stufe 1) C4809 switch Anweisung hat redundante "default" Bezeichnung; alle möglichen "case" Bezeichnungen werden angegeben.
Compilerwarnung (Stufe 1) C4810 Wert von pragma pack(show) == n
Compilerwarnung (Stufe 1) C4811 Wert von pragma conform(forScope, show) == value
Compilerwarnung (Stufe 1) C4812 Veralteter Deklarationsstil: Verwenden Sie stattdessen 'new_syntax'.
Compilerwarnung (Stufe 1) C4813 'function': Eine Friend-Funktion einer lokalen Klasse muss bereits deklariert sein.
Compilerwarnung (Stufe 4) C4815 'object name': Array mit Größe 0 in Stapelobjekt hat keine Elemente (sofern das Objekt nicht ein Aggregat ist, das mit einem Aggregat initialisiert wurde).
Compilerwarnung (Stufe 4) C4816 'param': Parameter hat ein Array der Größe 0, das abgeschnitten wird (sofern das Objekt nicht als Verweis übergeben wird).
Compilerwarnung (Stufe 1) C4817 'member': Unzulässige Verwendung des Punkts (.) zum Zugreifen auf diesen Member. Compiler wurde durch '->' ersetzt.
Compilerwarnung (Stufe 1) C4819 Die Datei enthält ein Zeichen, das in der aktuellen Codepage (Nummer) nicht dargestellt werden kann. Speichern Sie die Datei im Unicode-Format, um Datenverluste zu vermeiden.
Compilerwarnung (Ebene 4, deaktiviert) C4820 'bytes' Bytes Abstand nach dem Konstrukt 'member_name'
Compilerwarnung (Stufe 1) C4821 Unicode-Codierungstyp konnte nicht bestimmt werden, speichern Sie die Datei mit Signatur (BOM).
Compilerwarnung (Ebene 1, deaktiviert) C4822 'member function': Lokale Klassenmemberfunktion enthält keinen Text.
Compilerwarnung (Stufe 3) C4823 'function': Verwendet Anheftungszeiger, aber die Semantik wird nicht aktiviert. Verwenden Sie ggf /EHa.
Compilerwarnung (Ebene 2, deaktiviert) C4826 Die Konvertierung von 'type1' zu 'type2' ist signaturerweitert. Dies kann zu unerwartetem Laufzeitverhalten führen
Compilerwarnung (Stufe 3) C4827 Eine öffentliche 'ToString' Methode mit 0 Parametern sollte als virtual und override markiert werden
Compilerwarnung (Stufe 1) C4828 Die Datei enthält ein Zeichen, das bei Offset 0xHexOffset beginnt. Dieses Zeichen ist im aktuellen (Quellzeichensatz codepage) unzulässig.
Compilerwarnung (Stufe 1) C4829 Möglicherweise falsche Parameter für main-Funktion. Betrachten Sie 'int main(Platform::Array<Platform::String^>^ argv)'
Compilerwarnung (Stufe 1) C4834 Der Rückgabewert einer Funktion mit dem "nodiscard"-Attribut wird verworfen.
Compilerwarnung (Stufe 1) C4835 'variable': Die Initialisierung für exportierte Daten wird erst ausgeführt, wenn der verwaltete Code zuerst in der Hostassembly ausgeführt wird.
Compilerwarnung (Ebene 4, deaktiviert) C4837 Trigraph erkannt: "??character" ersetzt durch "character"
Compilerwarnung (Stufe 1) C4838 Die Konvertierung von "type_1" in "type_2" erfordert eine einschränkende Konvertierung.
Compilerwarnung (Stufe 3) C4839 Nicht standardmäßige Verwendung der Klasse 'type' als Argument für eine variadic-Funktion.
Compilerwarnung (Stufe 4) C4840 Nicht portierbare Verwendung der Klasse 'type' als Argument für eine variadic-Funktion.
Compilerwarnung (Ebene 4, deaktiviert) C4841 „Nicht standardmäßige Erweiterung verwendet: zusammengesetzter Memberkennzeichner in offsetof benutzt
Compilerwarnung (Ebene 4, deaktiviert) C4842 das Ergebnis von 'offsetof' wird auf einen Typ mit mehrfacher Vererbung ist in verschiedenen Compiler-Versionen möglicherweise nicht konsistent
Compilerwarnung (Stufe 4) C4843 'type1': Ein Ausnahmehandler des Verweises zum Array oder Funktionstypen ist nicht erreichbar, verwenden Sie stattdessen 'type2'.
Compilerwarnung (Stufe 1) C4844 Die bevorzugte Syntax zum Deklarieren einer Modulschnittstelle lautet jetzt 'export modulemodule_name;'
Compilerwarnung (Stufe 4) C4845 '__declspec(no_init_all)' wird ignoriert, wenn '/d1initall[0|1|2|3]' in der Befehlszeile nicht angegeben wurde.
Compilerwarnung (Stufe 4) C4846 'value' ist kein gültiges Argument für '/d1initall': Befehlszeilenkennzeichnung wird ignoriert.
Compilerwarnung (Stufe 4) C4847 '__declspec(no_init_all)' kann nur auf eine Funktion, einen Klassentyp oder eine lokale Variable angewendet werden: ignoriert
Compilerwarnung (Stufe 1) C4848 Unterstützung für Standardattribute "no_unique_address" in C++17 und früher ist eine Anbietererweiterung
Compilerwarnung (Stufe 1) C4849 OpenMP-Klausel "clause", die in der Direktive directive ignoriert wird
Compilerwarnung (Ebene 1, Fehler) C4854 Der dereferenzierte NULL-Zeiger der Bindung auf den Verweis zeigt ein undefiniertes Verhalten.
Compilerwarnung (Ebene 1, deaktiviert) C4855 Die implizite Erfassung von 'this' über '[=]' ist in 'version' veraltet.
Compilerwarnung (Stufe 4) C4856 'value' ist kein gültiges Argument für '/d1initAll:FillPattern' (Wert muss zwischen 0 und 255 sein). Befehlszeilenkennzeichnung ignoriert.
Compilerwarnung (Stufe 1) C4857 Der C++-CLI-Modus unterstützt keine höheren C++-Versionen als C++ 17. Die Sprache wird auf /std:c++17 festgelegt.
Compilerwarnung (Stufe 1) C4858 Verwerfen des Rückgabewerts: function name
Compilerwarnung (Stufe 4) C4859 value“ ist kein gültiges Argument für „/presetWarn“: Dies muss ein Dezimalwert > 0 sein. Befehlszeilenkennzeichnung ignoriert.
Compilerwarnung (Stufe 4) C4860 object name“: Compiler hat „number“ Bytes Speicher mit Null initialisiert.
Compilerwarnung (Stufe 4) C4861 Compiler hat „number“ Bytes Speicher mit Null initialisiert.
Compilerwarnung (Stufe 4) C4866 Der Compiler kann für den Aufruf von operator_name keine Auswertungsreihenfolge von links nach rechts erzwingen.
Compilerwarnung (Ebene 1, Fehler) C4867 'function': Dem Funktionsaufruf fehlt die Argumentliste. Verwenden Sie 'call', um einen Zeiger auf den Member zu erstellen.
Compilerwarnung (Stufe 4) C4868 Der Compiler "file(line_number)" erzwingt möglicherweise nicht die Reihenfolge der Links-nach-rechts-Auswertung in geschweifter Initialisierungsliste
Compilerwarnung (Stufe 3) C4869 "nodiscard" kann nur auf Klassen, Enumerationen und Funktionen angewendet werden.
Compilerwarnung (Stufe 2) C4872 Gleitkommateilung durch Null, die beim Kompilieren des Aufrufdiagramms für concurrency::parallel_for_each bei location" erkannt wurde
Compilerwarnung (Stufe 1) C4880 Umwandlung von 'const type_1' zu 'type_2': Das Umwandeln der Constness eines Zeigers oder Verweises kann in einer eingeschränkten AMP-Funktion zu undefiniertem Verhalten führen.
Compilerwarnung (Stufe 4) C4881 Der Konstruktor und/oder der Destruktor wird nicht für tile_static variable 'variable-name' aufgerufen.
Compilerwarnung (Stufe 1) C4882 Das Übergeben von Funktionen mit Nicht-Const-Anrufoperatoren concurrency::parallel_for_each ist veraltet.
Compilerwarnung C4883 'function name': Die Funktionsgröße unterdrückt Optimierungen.
Compilerwarnung C4900 Zwischensprachkonflikt zwischen 'tool1' version 'version1' und 'tool2' version 'version2'
Compilerwarnung (Ebene 1, deaktiviert) C4905 Breites Zeichenfolgenliteral umgewandelt zu 'LPSTR'
Compilerwarnung (Ebene 1, deaktiviert) C4906 Zeichenfolgenliteral umgewandelt zu "LPWSTR"
Compilerwarnung (Fehler) C4907 Es könne nicht mehrere Aufrufkonventionen angegeben werden. Die letzte angegebene wird verwendet.
Compilerwarnung (Stufe 1) C4910 '<identifier>: "__declspec(dllexport)" und "extern" sind bei einer expliziten Instanziierung nicht miteinander kompatibel.
Compilerwarnung (Stufe 1) C4912 'attribute': Das Attribut besitzt ein nicht definiertes Verhalten für ein geschachteltes UDT.
Compilerwarnung (Stufe 4) C4913 Benutzerdefinierter binärer Operator "," ist vorhanden, die Überladung konnte aber alle Operanden nicht konvertieren. Es wurde der standardmäßig enthaltene binäre Operator "," verwendet.
Compilerwarnung (Stufe 1) C4916 um eine dispid zu haben muss 'description': über eine Schnittstelle eingeführt werden.
Compilerwarnung (Ebene 1, deaktiviert) C4917 'declarator': Eine GUID kann nur mit einer Klasse, einer Schnittstelle oder einem Namespace verbunden werden
Compilerwarnung (Stufe 4) C4918 'character': Unzulässiges Zeichen in der pragma-Optimierungsliste
Compilerwarnung (Stufe 1) C4920 Enumeration enum-name Member member_1=value_1 schon in Enumeration enum-name als member_2=value_2 gesehen
Compilerwarnung (Stufe 3) C4921 'description': Attributwert 'attribute' sollte nicht multipliziert werden
Compilerwarnung (Stufe 1) C4925 'method': Die dispinterface-Methode kann nicht von einem Skript aufgerufen werden.
Compilerwarnung (Stufe 1) C4926 'identifier': Symbol ist bereits definiert: Attribute werden ignoriert
Compilerwarnung (Stufe 1) C4927 Unzulässige Konvertierung. Mehrere benutzerdefinierte Konvertierungen wurden implizit übernommen.
Compilerwarnung (Ebene 1, deaktiviert) C4928 Unzulässige Kopierinitialisierung. Mehrere benutzerdefinierte Konvertierungen wurden implizit übernommen
Compilerwarnung (Stufe 1) C4929 'file': Die Typbibliothek enthält eine Union. Der embedded_idl-Qualifizierer wird ignoriert.
Compilerwarnung (Stufe 1) C4930 'prototype': Funktion mit Prototyp wurde nicht aufgerufen (war eine Variablendefinition gemeint?)
Compilerwarnung (Ebene 4, deaktiviert) C4931 Es wird angenommen, dass die Typbibliothek für number-Bit-Pointer erstellt wurde
Compilerwarnung (Stufe 4) C4932 __identifier(identifier) und __identifier(identifier) sind nicht zu unterscheiden.
Compilerwarnung (Stufe 1) C4934 '__delegate(multicast)' ist veraltet. Verwenden Sie stattdessen '__delegate'
Compilerwarnung (Stufe 1) C4935 Assembly-Zugriffsspezifizierer wurde von 'access' geändert.
Compilerwarnung (Ebene 1, Fehler) C4936 __declspec wird nur bei einer Kompilierung mit /clr oder /clr:pure unterstützt.
Compilerwarnung (Stufe 4) C4937 'text1' und 'text2' sind als Argumente für 'directive' nicht differenzierbar.
Compilerwarnung (Stufe 4) C4938 "var": Gleitkommareduktionsvariable kann zu inkonsistenten Ergebnissen führen unter /fp:strict oder #pragma fenv_access
Compilerwarnung C4939 #pragma vtordisp ist veraltet und wird in einer der nächsten Versionen von Visual C++ entfernt.
Compilerwarnung (Stufe 1) C4944 'symbol': Das Symbol kann nicht aus 'assembly1' importiert werden, da 'symbol' im aktuellen Gültigkeitsbereich bereits vorhanden ist
Compilerwarnung (Stufe 1) C4945 'symbol': Das Symbol kann nicht aus 'assembly1' importiert werden: Da 'symbol' bereits aus einer anderen Assembly 'assembly2' importiert wurde
Compilerwarnung (Ebene 1, deaktiviert) C4946 reinterpret_cast verwendet zwischen verwandten Klassen: 'class1' und 'class2'
Compilerwarnung (Stufe 1) C4947 'type_or_member': als veraltet markiert.
Compilerwarnung (Stufe 2) C4948 Rückgabetyp von 'accessor' stimmt nicht mit dem letzten Parametertyp des entsprechenden Setters überein
Compilerwarnung (Stufen 1 und 4) C4949 Pragmen 'managed' und 'unmanaged' sind nur dann sinnvoll, wenn sie mit '/clr[:option]' kompiliert werden.
Compilerwarnung (Ebene 1, Fehler) C4950 'type_or_member': als veraltet markiert.
Compilerwarnung (Stufe 1) C4951 'function' wurde bearbeitet, seit die Profildaten erfasst wurden. Die Funktionsprofildaten werden nicht verwendet.
Compilerwarnung (Stufe 1) C4952 'function': Es wurden keine Profildaten in der Programmdatenbank 'pgd-file' gefunden.
Compilerwarnung (Stufe 1) C4953 Inlinee 'function' wurde bearbeitet, seit die Konfigurationsdaten erfasst wurden. Die Profildaten werden nicht verwendet
Compilerwarnung C4954 'function': nicht profiliert (enthält __int64 Schalterausdruck)
Compilerwarnung C4955 'import2': Der Import wird ignoriert; wurde bereits aus 'import1' importiert.
Compilerwarnung (Ebene 1, Fehler) C4956 'type': Dieser Typ ist nicht überprüfbar
Compilerwarnung (Ebene 1, Fehler) C4957 'cast': Die explizite Umwandlung von' 'cast_from' zu 'cast_to' kann nicht überprüft werden
Compilerwarnung (Ebene 1, Fehler) C4958 'operation': Die Zeigerarithmetik kann nicht überprüft werden.
Compilerwarnung (Ebene 1, Fehler) C4959 'type' (nicht verwaltet) in /clr:safe kann nicht definiert werden, da durch den Zugriff auf die Member nicht überprüfbarer Code ausgegeben wird.
Compilerwarnung (Stufe 4) C4960 'function' ist zu groß, um ein Profil zu erstellen
Compilerwarnung (Stufe 1) C4961 In 'pgd-file' wurden keine Profildaten zusammengeführt, profilgesteuerte Optimierungen werden deaktiviert.
Compilerwarnung (Ebene 4, deaktiviert) C4962 'function': Profilgesteuerte Optimierungen wurden deaktiviert, da durch die Optimierungen eine Inkonsistenz zwischen den Profildaten verursacht wurde
Compilerwarnung (Stufe 1) C4963 'description': Es wurden keine Profildaten gefunden. Im instrumentierten Build wurden andere Compileroptionen verwendet.
Compilerwarnung (Stufe 1) C4964 Es wurden keine Optimierungsoptionen angegeben. Es werden keine Profilinformationen erfasst.
Compilerwarnung (Stufe 1) C4965 Implizites Boxing mit ganzer Zahl 0. Verwenden Sie "nullptr" oder eine explizite Umwandlung.
Compilerwarnung (Stufe 1) C4966 "function" hat __code_seg Anmerkung mit nicht unterstützten Segmentnamen, Anmerkung ignoriert
Compilerwarnung C4970 Delegatkonstruktor: Zielobjekt wird ignoriert, da 'type' statisch ist.
Compilerwarnung (Stufe 1) C4971 Die Argumentreihenfolge <target object>, <target function> für den Delegatkonstruktor ist veraltet, verwenden Sie <target function>, <target object="">
Compilerwarnung (Ebene 1, Fehler) C4972 Das direkte Ändern oder Behandeln des Ergebnisses eines Unboxing-Vorgangs als L-Wert kann nicht überprüft werden.
Compilerwarnung (Stufe 1) C4973 "symbol": als veraltet gekennzeichnet
Compilerwarnung (Stufe 1) C4974 "symbol": als veraltet gekennzeichnet
Compilerwarnung (Stufe 1) C4975 Modopt „[modifier]“ wurde für den formalen Parameter „parameter“ ignoriert.
Compilerwarnung (Stufe 1) C4976 ungültiger Wert 'value' für '/W'; vorausgesetzt, '1'
Compilerwarnung (Stufe 3) C4981 Warbird: Die als __forceinline markierte 'function'-Funktion ist nicht "inline", da sie Ausnahmesemantik enthält.
Compilerwarnung (Stufe 3) C4983 „/analyze:sarif:hashname“ wurde ignoriert, weil das Argument für „/analyze:log“ eine einzelne Datei und kein Verzeichnis ist.
Compilerwarnung C4984 'if constexpr' ist eine C++17-Spracherweiterung
Compilerwarnung (Stufe 4) C4985 'symbol_name': Attribute sind in vorheriger Deklaration nicht vorhanden.
Compilerwarnung (Ebene 4, deaktiviert) C4986 'declaration': Ausnahmespezifikation stimmt mit der vorherigen Deklaration nicht überein
Compilerwarnung (Ebene 4, deaktiviert) C4987 Nicht dem Standard entsprechende Erweiterung verwendet: 'throw (...)'
Compilerwarnung (Ebene 4, deaktiviert) C4988 'variable': Variable, die außerhalb des Bereichs Klasse/Funktion deklariert wurde
Compilerwarnung (Stufe 4) C4989 'type': Der Typ weist in Konflikt stehende Definitionen auf.
Compilerwarnung (Stufe 3) C4990 Warbird: message
Compilerwarnung (Stufe 3) C4991 Warbird: Die als __forceinline markierte 'function'-Funktion ist nicht "inline", da die Schutzstufe des Inlinees größer als das übergeordnete Element ist.
Compilerwarnung (Stufe 3) C4992 Warbird: Die als __forceinline markierte 'function-name' -Funktion ist nicht "inline", da sie eine Inlineassembly enthält, die nicht geschützt werden kann.
Compilerwarnung (Stufe 3) C4995 'function': der Name, der als #pragma markiert war, wurde verworfen
Compilerwarnung (Stufe 3) C4996 'deprecated-declaration': deprecation-message (oder "als veraltet markiert")
Compilerwarnung (Stufe 1) C4997 'class': Die Co-Klasse implementiert keine COM- oder Pseudoschnittstelle.
Compilerwarnung (Stufe 1) C4998 ERWARTUNGSFEHLER: expectation(value)

Weitere Informationen

C/C++-Compiler und -Buildtools: Fehler und Warnungen
Compilerwarnungen C4000 bis C5999