Standardmäßig deaktivierte Compilerwarnungen
Der Compiler unterstützt Warnungen, die standardmäßig deaktiviert sind, da die meisten Entwickler sie nicht hilfreich finden. In einigen Fällen warnen sie vor einer stilistischen Auswahl oder vor allgemeinen Idioms im älteren Code. Andere Warnungen beziehen sich auf die Verwendung einer Microsoft-Erweiterung auf die Sprache. Einige Warnungen weisen auf einen Bereich hin, in dem Programmierer häufig falsche Annahmen machen, was zu unerwartetem oder nicht definierten Verhalten führen kann. Wenn alle diese Warnungen aktiviert sind, werden einige dieser Warnungen möglicherweise mehrmals in Bibliotheksheadern angezeigt. Die C-Laufzeitbibliotheken und die C++-Standardbibliotheken sollen keine Warnungen nur auf Warnungsebene /W4
ausgeben.
Standardmäßig deaktivierte Warnungen aktivieren
Sie können Warnungen aktivieren, die normalerweise standardmäßig deaktiviert sind, indem Sie eine der folgenden Optionen verwenden:
#pragma warning(default :
warning_number)
Die angegebene Warnung (warning_number) ist auf der Standardebene aktiviert. Dokumentation für die Warnung enthält die Standardebene der Warnung.
#pragma warning(
:
warning_level warning_number)
Die angegebene Warnung (warning_number) ist auf der angegebenen Ebene (warning_level) aktiviert.
-
/Wall
aktiviert alle Warnungen, die standardmäßig deaktiviert sind. Wenn Sie diese Option verwenden, können Sie einzelne Warnungen mithilfe der/wd
Option deaktivieren. -
Diese Option aktiviert Warnung nnnn auf Ebene L.
Warnungen, die standardmäßig deaktiviert sind
Visual Studio 2015 und höhere Versionen
Die folgenden Warnungen sind in Visual Studio 2015 und höheren Versionen standardmäßig deaktiviert:
Warnung | `Message` |
---|---|
C4061 (Ebene 4) | Enumerator 'Identifier' in einem Switch der Enumeration 'Enumeration' wird nicht explizit von einer Groß-/Kleinschreibungsbezeichnung behandelt. |
C4062 (Ebene 4) | Der Enumerator "Identifier" in einem Enumerationswechsel wird nicht behandelt. |
C4165 (Ebene 1) | "HRESULT" wird in "bool" konvertiert; sind Sie sicher, dass dies der Gewünschte ist? |
C4191 (Ebene 3) | "operator": unsichere Konvertierung von "type_of_expression" in "type_required" |
C4242 (Ebene 4) | 'identifier': Konvertierung von 'type1' zu 'type2', Datenverlust ist möglich |
C4254 (Ebene 4) | "operator": Konvertierung von "type1" in "type2", mögliche Datenverluste |
C4255 (Ebene 4) | 'function': Kein Funktionsprototyp angegeben: '()' wird in '(void)' konvertiert |
C4263 (Ebene 4) | 'function': Memberfunktion überschreibt keine virtuelle Memberfunktion einer Basisklasse |
C4264 (Ebene 1) | 'virtual_function': Keine Außerkraftsetzung für virtuelle Memberfunktion aus der Basisklasse verfügbar; Funktion ist ausgeblendet. |
C4265 (Ebene 3) | "Klasse": Klasse verfügt über virtuelle Funktionen, aber Destruktor ist nicht virtuell |
C4266 (Ebene 4) | 'function': Keine Außerkraftsetzung für virtuelle Memberfunktion vom Basistyp'; Funktion ist ausgeblendet. |
C4287 (Ebene 3) | 'operator': Konflikt zwischen vorzeichenloser und negativer Konstante |
C4289 (Ebene 4) | nicht standardmäßige Erweiterung verwendet : 'var': In der Forschleife deklarierte Schleifensteuerungsvariable wird außerhalb des For-Loop-Bereichs verwendet. |
C4296 (Ebene 4) | 'operator': Ausdruck ist immer falsch. |
C4339 (Ebene 4) | 'type' : Die Verwendung eines nicht definierten Typs, der in CLR-Metadaten erkannt wurde . Die Verwendung dieses Typs kann zu einer Laufzeit-Ausnahme führen. |
C4342 (Ebene 1) | Verhaltensänderung: 'function' wird aufgerufen, in früheren Versionen wurde jedoch ein Memberoperator aufgerufen. |
C4350 (Ebene 1) | Verhaltensänderung: 'member1' wird anstelle von 'member2' aufgerufen |
C4355 | "this": Wird in der Basisliste für den Memberinitialisierer verwendet |
C4365 (Ebene 4) | "action": Konvertierung von "type_1" in "type_2", signiert/nicht signierte Übereinstimmung |
C4370 (Ebene 3) | Durch bessere Verpackung wurde das Klassenlayout geändert, das vorher eine andere Compilerversion hatte |
C4371 (Ebene 3) | 'Klassenname': Das Layout der Klasse wurde möglicherweise aufgrund einer besseren Verpackung des Members "member" von einer früheren Version des Compilers geändert. |
C4388 (Ebene 4) | Konflikt zwischen 'signed' und 'unsigned' |
C4412 (Ebene 2) | 'funktion': Funktionssignatur enthält typ 'type'; C++-Objekte sind unsicher, um zwischen reinem Code und gemischten oder nativen Objekten zu übergeben. |
C4426 (Ebene 1) | Optimierungskennzeichnungen, die nach dem Einschließen der Kopfzeile geändert wurden, können auf #pragma optimize() 14.1 zurückzuführen sein. |
C4435 (Ebene 4) | 'class1' : Das Objektlayout unter /vd2 ändert sich aufgrund der virtuellen Basis "Class2". |
C4437 (Ebene 4) | dynamic_cast von der virtuellen Basis "Class1" bis "Class2" können in einigen Kontexten fehlschlagen. |
C4444 (Ebene 3) | Die oberste Ebene "__unaligned" wird in diesem Kontext nicht implementiert. |
C4464 (Ebene 4) | Der relative Includepfad enthält "..". |
C4471 (Ebene 4) | Eine Vorwärtsdeklaration einer nicht bereichsbezogenen Aufzählung muss einen zugrunde liegenden Typ aufweisen (int angenommen) Perm |
C4472 (Ebene 1) | "Identifier" ist eine systemeigene Enumeration: Fügen Sie einen Zugriffsbezeichner (privat/öffentlich) hinzu, um eine verwaltete Enumeration zu deklarieren. |
C4514 (Ebene 4) | “function“: Nicht referenzierte Inlinefunktion wurde entfernt |
C4536 (Ebene 4) | 'Typname': Der Typname überschreitet den Metadatengrenzwert von 'Limit'-Zeichen. |
C4545 (Ebene 1) | Ausdruck vor dem Komma wird als Funktion ausgewertet, der eine Argumentliste fehlt |
C4546 (Ebene 1) | Funktionsaufruf vor dem Komma ohne Argumentliste |
C4547 (Ebene 1) | “operator“: Operator vor dem Komma hat keine Auswirkungen; Operator mit Nebeneffekten erwartet |
C4548 (Ebene 1) | Ausdruck vor dem Komma hat keine Auswirkung; es wurde ein Ausdruck mit Nebeneffekt erwartet |
C4549 (Ebene 1) | "operator1": Operator vor Komma hat keine Wirkung; haben Sie "operator2" beabsichtigt? |
C4555 (Ebene 1) | Der Ausdruck hat keine Auswirkungen; Ausdruck mit Nebeneffekten erwartet |
C4557 (Ebene 3) | “__assume“ enthält den Effekt “effect“ |
C4571 (Ebene 4) | Informational: Catch(...)-Semantik seit Visual C++ 7.1 geändert; Strukturierte Ausnahmen (SEH) werden nicht mehr abgefangen |
C4574 (Ebene 4) | "Bezeichner" ist als "0" definiert: Haben Sie "#if Bezeichner" verwendet? |
C4577 (Ebene 1) | "noexcept " wird ohne Ausnahmebehandlungsmodus verwendet. Die Beendigung bei Ausnahme wird nicht garantiert. Geben Sie /EHsc an. |
C4582 (Ebene 4) | "type": Konstruktor wird nicht implizit aufgerufen |
C4583 (Ebene 4) | "type": Destruktor wird nicht implizit aufgerufen |
C4587 (Ebene 1) | “anonymous_structure“: Verhaltensänderung: Konstruktor wird nicht mehr implizit aufgerufen |
C4588 (Ebene 1) | “anonymous_structure“: Verhaltensänderung: Destruktor wird nicht mehr implizit aufgerufen |
C4596 (Ebene 4) | "Bezeichner": unzulässiger qualifizierter Name in der Mitgliedsdeklaration 14.3 Perm |
C4598 (Ebene 1 und Ebene 3) | '#include "Header": Kopfzeilennummer in der vorkompilierten Kopfzeile stimmt nicht mit der aktuellen Kompilierung an dieser Position 14.3 überein. |
C4599 (Ebene 3) | 'Optionspfad': Die Befehlszeilenargumentnummer arg_number stimmt nicht mit der vorkompilierten Kopfzeile 14.3 überein. |
C4605 (Ebene 1) | '/Dmacro' wurde in der aktuellen Befehlszeile angegeben. Diese Angabe ist aber nicht beim Erstellen des vorkompilierten Headers erfolgt. |
C4608 (Ebene 3) | "union_member" wurde bereits von einem anderen Unionsmitglied in der Initialisierungsliste "union_member" perm initialisiert. |
C4619 (Ebene 3) | #pragma Warnung: Es gibt keine Warnnummer "Zahl" |
C4623 (Ebene 4) | 'Abgeleitete Klasse': Der Standardkonstruktor konnte nicht generiert werden, da auf einen Basisklassen-Standardkonstruktor nicht zugegriffen werden kann |
C4625 (Ebene 4) | 'Abgeleitete Klasse': Der Kopierkonstruktor konnte nicht generiert werden, da auf einen Basisklassen-Kopierkonstruktor nicht zugegriffen werden kann |
C4626 (Ebene 4) | 'Abgeleitete Klasse': Der Zuweisungsoperator konnte nicht generiert werden, da auf einen Basisklassen-Zuweisungsoperator nicht zugegriffen werden kann |
C4628 (Ebene 1) | 'digraphs' werden mit '-Ze' nicht unterstützt. Zeichensequenz 'digraph' wird nicht als alternatives Token für 'char' interpretiert |
C4640 (Ebene 3) | 'instanz': Das Erstellen eines lokalen statischen Objekts ist nicht threadsicher. |
C4643 (Ebene 4) | Die Weiterleitung mit Deklaration von 'identifier' im Namespace „std“ ist gemäß C++-Standard unzulässig. 15.8 |
C4647 (Ebene 3) | Verhaltensänderung: __is_pod(type) hat in früheren Versionen einen anderen Wert. |
C4654 (Ebene 4) | Code, der vor der Aufnahme einer vorkompilierten Kopfzeile platziert wird, wird ignoriert. Fügen Sie Code zum vorkompilierten Header hinzu. 14.1 |
C4668 (Ebene 4) | "Symbol" ist nicht als Präprozessormakro definiert und ersetzt durch "0" für "Direktiven" |
C4682 (Ebene 4) | 'symbol' : kein direktionales Parameter-Attribut angegeben, standardmäßig auf [in] |
C4686 (Ebene 3) | "benutzerdefinierter Typ": mögliche Verhaltensänderung, Änderung der UDT-Rückgabeaufrufkonvention |
C4692 (Ebene 1) | 'Funktion': Die Signatur eines nicht privaten Mitglieds enthält den privaten nativen Assemblytyp "native_type" |
C4710 (Ebene 4) | 'funktion': Funktion nicht inlined |
C4738 (Ebene 3) | Das 32-Bit-Gleitkommaergebnis wird im Speicher gespeichert. Möglicherweise kommt es zu einem Leistungsverlust |
C4746 | flüchtiger Zugriff auf 'expression' unterliegt der /volatile:<iso|ms>-Einstellung; verwenden Sie stattdessen die systeminternen __iso_volatile_load/store-Funktionen |
C4749 (Ebene 4) | bedingt unterstützt: Offsetof auf nicht standardmäßigen Layouttyp 'type' angewendet |
C4767 (Ebene 4) | Der Abschnittsname "Symbol" ist länger als 8 Zeichen und wird vom Linker abgeschnitten. |
C4774 (Ebene 4) | 'string' : Die in Argument number erwartete Formatzeichenfolge ist kein Zeichenfolgenliteral. |
C4777 (Ebene 4) | 'function': Formatzeichenfolge 'string' erfordert ein Argument vom Typ 'type1', aber variadisches Argument weist den Typ 'type2' auf. |
C4786 (Ebene 3) | 'symbol' : Objektname wurde in den Debuginformationen auf 'Zahl' Zeichen abgeschnitten. |
C4800 (Ebene 4) | Implizite Konvertierung von 'type' in bool. Mögliche Informationsverluste 16.0 |
C4820 (Ebene 4) | 'bytes' Bytes Abstand nach dem Konstrukt 'member_name' |
C4822 (Ebene 1) | "member": Lokale Klassenmememmfunktion verfügt nicht über einen Textkörper. |
C4826 (Ebene 2) | Die Konvertierung von 'type1' zu 'type2' ist signaturerweitert. Dies kann zu unerwartetem Laufzeitverhalten führen |
C4837 (Ebene 4) | Trigraph erkannt: "?? character" ersetzt durch "character" |
C4841 (Ebene 4) | nicht standardmäßige Erweiterung verwendet: Verbundelement-Kennzeichner, der im Offsetof verwendet wird |
C4842 (Ebene 4) | Das Ergebnis von "offsetof", das auf einen Typ angewendet wird, der mehrere Vererbung verwendet, ist nicht garantiert, dass es zwischen Compilerversionen konsistent ist. |
C4866 (Ebene 4) | Der Compiler "file(line-number)" erzwingt möglicherweise nicht die Reihenfolge der Links-nach-rechts-Auswertung für den Aufruf an den Operator. |
C4868 (Ebene 4) | Der Compiler "file(line_number)" erzwingt möglicherweise nicht die Reihenfolge der Links-nach-rechts-Auswertung in geschweifter Initialisierungsliste |
C4905 (Ebene 1) | Breites Zeichenfolgenliteral umgewandelt zu "LPSTR" |
C4906 (Ebene 1) | Zeichenfolgenliteral umgewandelt zu "LPWSTR" |
C4917 (Ebene 1) | 'deklarator': Eine GUID kann nur einer Klasse, Schnittstelle oder einem Namespace zugeordnet werden. |
C4928 (Ebene 1) | Unzulässige Kopierinitialisierung. Mehrere benutzerdefinierte Konvertierungen wurden implizit übernommen |
C4931 (Ebene 4) | Es wird angenommen, dass die Typbibliothek für number-Bit-Pointer erstellt wurde |
C4946 (Ebene 1) | reinterpret_cast zwischen verwandten Klassen verwendet: "Klasse1" und "Klasse2" |
C4962 | 'Funktion': Profilgeführte Optimierungen sind deaktiviert, da Optimierungen dazu geführt haben, dass Profildaten inkonsistent wurden. |
C4986 (Ebene 4) | 'symbol': Ausnahmespezifikation stimmt nicht mit der vorherigen Deklaration überein. |
C4987 (Ebene 4) | Es wurde eine nicht standardmäßige Erweiterung verwendet: 'throw (...)' |
C4988 (Ebene 4) | 'symbol': Variable außerhalb des Klassen-/Funktionsbereichs deklariert |
C5022 | 'type': mehrere Bewegungskonstruktoren angegeben |
C5023 | 'type': mehrere Bewegungszuweisungsoperatoren angegeben |
C5024 (Ebene 4) | 'type': Bewegungskonstruktor wurde implizit als gelöscht definiert |
C5025 (Ebene 4) | 'type': Der Operator zum Verschieben einer Zuweisung wurde implizit als gelöscht definiert. |
C5026 (Ebene 1 und Ebene 4) | 'type': Bewegungskonstruktor wurde implizit als gelöscht definiert |
C5027 (Ebene 1 und Ebene 4) | 'type': Der Operator zum Verschieben einer Zuweisung wurde implizit als gelöscht definiert. |
C5029 (Ebene 4) | Es wird eine nicht standardmäßige Extension verwendet: Die Ausrichtungsattribute in C++ gelten nur für Variablen, Datenmember und Tagtypen. |
C5031 (Ebene 4) | #pragma Warnung(Pop): Wahrscheinlicher Konflikt, Warnzustand wird in unterschiedlicher Datei 14.1 verschoben. |
C5032 (Ebene 4) | #pragma Warnung(Push) ohne entsprechende #pragma Warnung(pop) 14.1 erkannt |
Visual Studio 2017 und höhere Versionen
Die folgenden Warnungen sind in Visual Studio 2017 und höheren Versionen standardmäßig deaktiviert:
Warnung | `Message` |
---|---|
C5034 | Die Verwendung systeminterner "systeminterner" bewirkt, dass Funktionsfunktionsname als Gastcode 15.3 kompiliert wird. |
C5035 | Die Verwendung des Features "Feature" bewirkt, dass Funktionsfunktionsname als Gastcode 15.3 kompiliert wird. |
C5036 (Ebene 1) | varargs-Funktionszeigerkonvertierung beim Kompilieren mit /hybrid:x86arm64 'type1' in 'type2' 15.3 |
C5038 (Ebene 4) | "member1" wird nach dem Datenmitglied "member2" 15.3 initialisiert. |
C5039 (Ebene 4) | 'Function': Zeiger oder Verweis auf potenziell auslösende Funktion, die an die externe C-Funktion übergeben wird, unter -EHc . Nicht definiertes Verhalten kann auftreten, wenn diese Funktion eine Ausnahme auslöst. 15.5 |
C5041 (Ebene 4) | 'member-name': Out-of-line definition for constexpr static data member is not needed and is deprecated in C++17. 15.2 |
C5042 (Ebene 3) | 'function': Funktionsdeklarationen im Blockbereich können in C++ nicht inline angegeben werden; Entfernen des Inlinebezeichners 15.5 |
C5045 | Compiler fügt spectre mitigation for memory load ein, wenn /Qspectre switch specified 15.7 |
Visual Studio 2019 und höhere Versionen
Die folgenden Warnungen sind in Visual Studio 2019 und höheren Versionen standardmäßig deaktiviert:
Warnung | `Message` |
---|---|
C5052 (Ebene 3) | Das Schlüsselwort "Schlüsselwortname" wurde in C++ -Version eingeführt und erfordert die Verwendung der Befehlszeilenoption "Option" 16.1. |
C5204 (Ebene 3) | Eine Klasse mit virtuellen Funktionen weist einen nicht virtuellen trivialen Destruktor auf. 16.5 |
C5214 (Ebene 4) | Das Anwenden eines Schlüsselworts auf einen Operanden mit einem veränderlich qualifizierten Typ ist in C++20 16.7 veraltet. |
C5215 (Ebene 4) | Ein Funktionsparameter mit einem veränderlich qualifizierten Typ ist in C++20 16.7 veraltet. |
C5216 (Ebene 4) | "Rückgabetyp" ein veränderlich qualifizierter Rückgabetyp ist in C++20 16.7 veraltet. |
C5217 (Ebene 4) | Eine strukturierte Bindungsdeklaration, die veränderliche Deklaration enthält, ist in C++20 16.7 veraltet. |
C5219 (Ebene 2) | implizite Konvertierung von 'type-1' in 'type-2', mögliche Datenverluste 16.7 |
C5220 (Ebene 4) | "member": Ein nicht statisches Datenelement mit einem veränderlich qualifizierten Typ impliziert nicht mehr, dass Compiler generierte Copy/Move-Konstruktoren und Copy/Move-Zuordnungsoperatoren sind nicht trivial 16.7 |
C5233 (Ebene 4) | Der explizite Lambda-Erfassungsbezeichner wird 16.10 nicht verwendet. |
C5240 (Ebene 4) | 'Attributname': Das Attribut wird an dieser syntaktischen Position 16.10 ignoriert. |
C5243 (Ebene 1) | 'Type-name': Die Verwendung unvollständiger Klasse "Klassenname" kann aufgrund der ABI-Einschränkung 16.10 zu einer möglichen Verletzung einer Definitionsregel führen. |
C5245 (Ebene 4) | „function“: Eine nicht referenzierte Funktion mit interner Verknüpfung wurde entfernt. |
C5246 (Ebene 1) | 'member': Die Initialisierung eines Unterobjekts sollte in geschweifte Klammern 16.10 eingeschlossen werden. |
C5247 (Ebene 1) | Der Abschnitt "Abschnittsname" ist für die dynamische C++-Initialisierung reserviert. Das manuelle Erstellen des Abschnitts beeinträchtigt die dynamische C++-Initialisierung und kann zu nicht definierten Verhalten 16.11 führen. |
C5248 (Ebene 1) | Der Abschnitt "Abschnittsname" ist für die dynamische C++-Initialisierung reserviert. Variable, die manuell in den Abschnitt eingefügt wird, kann optimiert werden, und ihre Reihenfolge relativ zu compilergenerierten dynamischen Initialisierern ist nicht angegeben 16.11 |
Visual Studio 2022 und höhere Versionen
Die folgenden Warnungen sind in Visual Studio 2022 und höheren Versionen standardmäßig deaktiviert:
Warnung | `Message` |
---|---|
C5249 (Ebene 1) | „bitfeld“ vom Typ „enumeration_name“ weist benannte Enumeratoren mit Werten auf, die nicht in der angegebenen Bit-Feldbreite von „bitfield_width“ dargestellt werden können. 17.0 |
C5250 (Ebene 3) | „function_name“: Intrinsische Funktion nicht deklariert. 17.0 |
C5251 (Ebene 4) | Segmentname geändert, nachdem Kopfzeile 17.1 eingeschlossen wurde |
C5254 (Ebene 4) | sprachfeature 'terse static assert' erfordert Compilerflagge '/std:c++17' 17.1 |
C5256 (Ebene 1) | 'Enumeration': Eine nicht definierende Deklaration einer Aufzählung mit einem festen zugrunde liegenden Typ ist nur als eigenständige Deklaration 17.2 zulässig. |
C5258 (Ebene 4) | Für diese Verwendung 17.2 ist keine explizite Erfassung von "Symbol" erforderlich. |
C5259 (Ebene 4) | 'specialized-type': Explizite Spezialisierung erfordert 'template <> ' 17.3 |
C5262 (Ebene 1, Fehler) | Hier erfolgt ein impliziter Fall-Through. Fehlt eine break -Anweisung? Verwenden, [[fallthrough]] wenn eine break Anweisung zwischen den Fällen 17.4 absichtlich weggelassen wird |
C5263 (Ebene 4) | Das Aufrufen von "std::move " für ein temporäres Objekt verhindert das Kopieren von Elision 17.4 |
C5264 (Ebene 4) | 'Variable-Name': "Const"-Variable wird nicht 17.4 verwendet . |
C5266 (Ebene 4) | Der Qualifizierer "Const" für den Rückgabetyp hat keine Auswirkung 17,6. |
C5267 (Ebene 4) | Definition des impliziten Kopierkonstruktors/Zuordnungsoperators für "type" ist veraltet, da er über einen vom Benutzer bereitgestellten Zuordnungsoperator/Kopierkonstruktor 17.7 verfügt. |
14.1 Diese Warnung ist ab Visual Studio 2015 Update 1 verfügbar.
14.3 Diese Warnung ist ab Visual Studio 2015 Update 3 verfügbar.
15.2 Diese Warnung ist ab Visual Studio 2017, Version 15.2, verfügbar.
15.3 Diese Warnung ist ab Visual Studio 2017, Version 15.3, verfügbar.
15.5 Diese Warnung ist ab Visual Studio 2017, Version 15.5, verfügbar.
15.7 Diese Warnung ist ab Visual Studio 2017, Version 15.7, verfügbar.
15.8 Diese Warnung ist ab Visual Studio 2017, Version 15.8, verfügbar.
16.0 Diese Warnung ist ab Visual Studio 2019 RTM verfügbar.
16.5 Diese Warnung ist ab Visual Studio 2019, Version 16.5, verfügbar.
16.7 Diese Warnung ist ab Visual Studio 2019, Version 16.7, verfügbar.
16.10 Diese Warnung ist ab Visual Studio 2019, Version 16.10, verfügbar.
16.11 Diese Warnung ist ab Visual Studio 2019, Version 16.11, verfügbar.
17.0 Diese Warnung ist ab Visual Studio 2022, Version 17.0, verfügbar.
17.1 Diese Warnung ist ab Visual Studio 2022, Version 17.1, verfügbar.
17.2 Diese Warnung ist ab Visual Studio 2022, Version 17.2, verfügbar.
17.3 Diese Warnung ist ab Visual Studio 2022, Version 17.3, verfügbar.
17.4 Diese Warnung ist ab Visual Studio 2022, Version 17.4, verfügbar.
17.5 Diese Warnung ist ab Visual Studio 2022, Version 17.5, verfügbar.
17.6 Diese Warnung ist ab Visual Studio 2022, Version 17.6, verfügbar.
17.7 Diese Warnung ist ab Visual Studio 2022, Version 17.7, verfügbar.
Perm Diese Warnung ist deaktiviert, es sei denn, die /permissive-
Compileroption ist festgelegt.
Warnungen in früheren Versionen standardmäßig deaktiviert
Diese Warnung war in Visual Studio 2015, Version 15.3, standardmäßig deaktiviert und in Visual Studio 2015, Version 15.5, aktiviert:
Warnung | `Message` |
---|---|
C4768 | __declspec Attribute vor der Verknüpfungsspezifikation werden ignoriert. |
Diese Warnungen waren in Versionen des Compilers vor Visual Studio 2015 standardmäßig deaktiviert:
Warnung | `Message` |
---|---|
C4302 (Ebene 2) | 'conversion': Verkürzung von 'type1' zu 'type2' |
C4311 (Ebene 1) | 'Variable': Zeigerabkürzung von 'type' auf 'type' |
C4312 (Ebene 1) | 'operation': Konvertierung von 'type1' zu größerem 'type2' |
C4319 (Ebene 1) | "operator": Null, die 'type1' auf 'type2' mit größerer Größe erweitert |
Diese Warnung war in Versionen des Compilers vor Visual Studio 2012 standardmäßig deaktiviert:
Warnung | `Message` |
---|---|
C4431 (Ebene 4) | Fehlender Typspezifizierer - int wird angenommen. Hinweis: default-int wird von C++ nicht unterstützt |