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 module module_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