Standardmäßig deaktivierte Compilerwarnungen
Der Compiler unterstützt Warnungen, die standardmäßig deaktiviert sind, da die meisten Entwickler sie nicht als nützlich empfinden. In einigen Fällen warnen sie vor einer stilistischen Wahl oder vor gängigen Redewendungen im älteren Code. Weitere Warnungen beziehen sich auf die Verwendung einer Microsoft-Erweiterung für die Sprache. Einige Warnungen weisen auf einen Bereich hin, in dem Programmierer häufig falsche Annahmen treffen, was zu unerwartetem oder nicht definiertem Verhalten führen kann. Wenn alle diese Warnungen aktiviert sind, werden einige von ihnen möglicherweise mehrmals in Bibliotheksheadern angezeigt. Die C-Runtimebibliotheken und die C++-Standardbibliotheken sollen keine Warnungen nur auf Warnungsebene /W4
ausgeben.
Standardmäßig deaktivierte Warnungen aktivieren
Sie können Warnungen aktivieren, die normalerweise 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) wird 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 deaktivieren, indem Sie die/wd
Option verwenden. -
Diese Option aktiviert die Warnung nnnn auf Ebene L.
Standardmäßig deaktivierte Warnungen
Visual Studio 2015 und höhere Versionen
Die folgenden Warnungen sind in Visual Studio 2015 und höheren Versionen standardmäßig deaktiviert:
Warnung | Meldung |
---|---|
C4061 (Ebene 4) | Der Enumerator "identifier" in einem Switch der Enumeration "Enumeration" wird nicht explizit von einer Groß-/Kleinschreibungsbezeichnung behandelt. |
C4062 (Ebene 4) | Der Enumerator "Identifier" in einem Switch der Enumeration "Enumeration" wird nicht behandelt. |
C4165 (Ebene 1) | "HRESULT" wird in "bool" konvertiert; sind Sie sicher, dass Sie dies wünschen? |
C4191 (Stufe 3) | "Operator": unsichere Konvertierung von "type_of_expression" in "type_required" |
C4242 (Ebene 4) | "bezeichner": Konvertierung von "type1" in "type2", möglicher Datenverlust |
C4254 (Ebene 4) | "Operator": Konvertierung von "type1" in "type2", möglicher Datenverlust |
C4255 (Ebene 4) | "Funktion": Kein Funktionsprototyp angegeben: Konvertieren von "(()" in "(void)" |
C4263 (Ebene 4) | 'Funktion': Die Memberfunktion überschreibt keine Virtuelle Memberfunktion der Basisklasse |
C4264 (Ebene 1) | "virtual_function": Keine Überschreibung für virtuelle Memberfunktionen aus der Basisklasse verfügbar; Funktion ist ausgeblendet |
C4265 (Ebene 3) | 'Klasse': Die Klasse verfügt über virtuelle Funktionen, der Destruktor ist jedoch nicht virtuell. |
C4266 ( Ebene 4) | "Funktion": Keine Überschreibung für virtuelle Memberfunktion aus dem Basistyp verfügbar; Funktion ist ausgeblendet |
C4287 (Ebene 3) | "Operator": unsigned/negative konstante Übereinstimmung |
C4289 (Ebene 4) | Nicht standardmäßig verwendete Erweiterung : 'var': In der For-Schleife deklarierte Schleifensteuerungsvariable wird außerhalb des For-Schleifenbereichs verwendet. |
C4296 (Ebene 4) | 'Operator': Ausdruck ist immer false |
C4339 (Ebene 4) | 'type': Verwendung des 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: "Funktion" aufgerufen, aber in früheren Versionen wurde 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", nicht signierter/nicht signierter Konflikt |
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 hat sich aufgrund einer besseren Verpackung des Members "Member" möglicherweise gegenüber einer früheren Version des Compilers geändert. |
C4388 (Ebene 4) | Konflikt zwischen 'signed' und 'unsigned' |
C4412 (Ebene 2) | "funktion": Die Funktionssignatur enthält den Typ "type"; C++-Objekte sind nicht sicher, zwischen reinem Code und gemischten oder nativen Objekten zu übergeben. |
C4426 (Ebene 1) | Optimierungsflags, die nach dem Einschließen des Headers 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" auf "class2" kann in einigen Kontexten ein Fehler auftreten. |
C4444 (Ebene 3) | "__unaligned" der obersten Ebene wird in diesem Kontext nicht implementiert. |
C4464 (Ebene 4) | Relativer Includepfad enthält "..". |
C4471 (Ebene 4) | Eine Forwarddeklaration einer nicht erfassten Enumeration muss einen zugrunde liegenden Typ aufweisen (int angenommen) Perm |
C4472 (Ebene 1) | "Bezeichner" ist eine native 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': Typname überschreitet Metadatenlimit 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 Komma hat keine Wirkung; erwarteter Operator mit Nebeneffekt |
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 effekt "effekt" |
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 damit gemeint, "#if Bezeichner" zu verwenden? |
C4577 (Ebene 1) | "noexcept " wird ohne Ausnahmebehandlungsmodus verwendet. Die Beendigung bei Ausnahme ist nicht garantiert. Geben Sie /EHsc an. |
C4582 (Ebene 4) | 'type': Der 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": illegaler qualifizierter Name in der Memberdeklaration 14.3Perm |
C4598 (Ebene 1 und Stufe 3) | '#include 'Header': Headernummer im vorkompilierten Header stimmt nicht mit der aktuellen Kompilierung an dieser Position 14.3 überein. |
C4599 (Ebene 3) | 'Optionspfad': Befehlszeilenargumentnummer arg_number nicht mit dem vorkompilierten Header 14.3 übereinstimmt |
C4605 (Ebene 1) | "/D-Makro", das in der aktuellen Befehlszeile angegeben wurde, aber nicht angegeben wurde, als vorkompilierte Header erstellt wurden |
C4608 (Ebene 3) | "union_member" wurde bereits von einem anderen Union-Mitglied in der Initialisiererliste "union_member" Perm initialisiert. |
C4619 (Stufe 3) | #pragma Warnung: Es gibt keine Warnungsnummer "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. Zeichenfolge "digraph" wird nicht als alternatives Token für "char" interpretiert |
C4640 (Ebene 3) | "Instanz": Die Konstruktion eines lokalen statischen Objekts ist nicht threadsicher |
C4643 (Ebene 4) | Das Weiterleiten der Deklarierung von "Bezeichner" im Namespace std ist nach C++-Standard nicht zulä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 dem Einschließen einer vorkompilierten Headerzeile platziert wird, wird ignoriert. Fügen Sie Code zum vorkompilierten Header hinzu. 14.1 |
C4668 (Ebene 4) | "Symbol" ist nicht als Präprozessormakro definiert, es wird durch "0" durch "Anweisungen" ersetzt. |
C4682 (Ebene 4) | 'symbol': Kein direktionales Parameterattribute angegeben, standardmäßig [in] |
C4686 (Ebene 3) | "Benutzerdefinierter Typ": mögliche Verhaltensänderung, Änderung der UDT-Aufrufkonvention |
C4692 (Ebene 1) | "Funktion": Die Signatur eines nicht privaten Members enthält den privaten nativen Assemblytyp "native_type". |
C4710 (Ebene 4) | "Function": Funktion nicht inlined |
C4738 (Ebene 3) | Das 32-Bit-Gleitkommaergebnis wird im Speicher gespeichert. Möglicherweise kommt es zu einem Leistungsverlust |
C4746 | Der flüchtige Zugriff auf "Ausdruck" unterliegt der Einstellung /volatile:<iso|ms> . Erwägen Sie die Verwendung __iso_volatile_load/Store-Systemfunktionen. |
C4749 (Ebene 4) | bedingt unterstützt: offsetof auf den Nicht-Standardlayouttyp "type" angewendet |
C4767 (Ebene 4) | Der Abschnittsname "Symbol" ist länger als 8 Zeichen und wird vom Linker abgeschnitten. |
C4774 (Ebene 4) | 'Zeichenfolge': Die in der Argumentnummer erwartete Formatzeichenfolge ist kein Zeichenfolgenliteral |
C4777 (Ebene 4) | 'function' : Formatzeichenfolge erfordert ein Argument vom Typ "type1", aber variatische Argumentnummer hat den Typ "type2". |
C4786 (Ebene 3) | "Symbol": Der Objektname wurde in den Debuginformationen zu "Zahlenzeichen" abgeschnitten. |
C4800 (Ebene 4) | Implizite Konvertierung von "type" in bool. Möglicher Informationsverlust 16.0 |
C4820 (Ebene 4) | "Bytes"-Bytes-Auffüllung, die nach dem Konstrukt "member_name" hinzugefügt wurde |
C4822 (Ebene 1) | 'member': Die lokale Klassenmemberfunktion verfügt nicht über einen Textkörper |
C4826 (Ebene 2) | Die Konvertierung von "type1" in "type2" ist geschildert. Dies kann zu unerwartetem Laufzeitverhalten führen. |
C4837 (Ebene 4) | Trigraph erkannt: "?? Zeichen" durch "Zeichen" ersetzt |
C4841 (Ebene 4) | Nicht standardmäßige Erweiterung: Verbundelement-Designator, der in offsetof verwendet wird |
C4842 (Ebene 4) | das Ergebnis von "offsetof", das auf einen Typ mit mehrfacher Vererbung angewendet wird, ist nicht garantiert, dass es zwischen Compilerversionen konsistent ist. |
C4866 (Ebene 4) | Der Compiler "file(line-number)" erzwingt möglicherweise nicht die Auswertungsreihenfolge von links nach rechts für den Aufruf des Operator. |
C4868 (Ebene 4) | Der Compiler "file(line_number)" erzwingt möglicherweise nicht die Reihenfolge der Auswertung von links nach rechts in der geklammerten Initialisierungsliste. |
C4905 (Ebene 1) | Breites Zeichenfolgenliteral umgewandelt zu "LPSTR" |
C4906 (Ebene 1) | Zeichenfolgenliteral umgewandelt zu "LPWSTR" |
C4917 (Stufe 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 (Stufe 4) | Es wird angenommen, dass die Typbibliothek für Anzahl-Bit-Pointer erstellt wurde |
C4946 (Ebene 1) | reinterpret_cast zwischen verwandten Klassen verwendet: "class1" und "class2" |
C4962 | "Funktion": Profilgesteuerte Optimierungen deaktiviert, da Durch Optimierungen Profildaten inkonsistent wurden |
C4986 (Ebene 4) | 'symbol': Ausnahmespezifikation stimmt nicht mit vorheriger Deklaration überein |
C4987 (Ebene 4) | Es wurde eine nicht standardmäßige Erweiterung verwendet: 'throw (...)' |
C4988 (Ebene 4) | 'symbol': Variable, die außerhalb des Klassen-/Funktionsbereichs deklariert ist |
C5022 | 'type': Mehrere Verschiebungskonstruktoren angegeben |
C5023 | 'type': Mehrere angegebene Verschiebungszuweisungsoperatoren |
C5024 (Ebene 4) | 'type': Move-Konstruktor wurde implizit als gelöscht definiert. |
C5025 (Ebene 4) | 'type': Der Verschiebungszuweisungsoperator wurde implizit als gelöscht definiert. |
C5026 (Ebene 1 und Ebene 4) | 'type': Move-Konstruktor wurde implizit als gelöscht definiert. |
C5027 (Ebene 1 und Ebene 4) | 'type': Der Verschiebungszuweisungsoperator wurde implizit als gelöscht definiert. |
C5029 (Ebene 4) | Nicht standardmäßig verwendete Erweiterung: Ausrichtungsattribute in C++ gelten nur für Variablen, Datenmber und Tagtypen |
C5031 (Ebene 4) | #pragma warning(pop): Wahrscheinliche Nichtübereinstimmung, Popping-Warnzustand in unterschiedlicher Datei 14.1 gepusht |
C5032 (Ebene 4) | erkannt #pragma warnung (push) ohne entsprechende #pragma warning(pop) 14.1 |
Visual Studio 2017 und höhere Versionen
Die folgenden Warnungen sind in Visual Studio 2017 und höheren Versionen standardmäßig deaktiviert:
Warnung | Meldung |
---|---|
C5034 | Die Verwendung von intrinsischen "intrinsischen" bewirkt, dass der Funktionsname als Gastcode 15.3 kompiliert wird. |
C5035 | Die Verwendung des Features "Feature" bewirkt, dass der Funktionsname der Funktion als Gastcode 15.3 kompiliert wird |
C5036 (Ebene 1) | varargs-Funktionszeigerkonvertierung beim Kompilieren mit /hybrid:x86arm64 "type1" in "type2" 15.3 |
C5038 (Ebene 4) | Das Datenelement "member1" wird nach dem Datenmember "member2" 15.3 initialisiert. |
C5039 (Ebene 4) | "Function": Zeiger oder Verweis auf die potenziell ausgelöste Funktion, die an die externe C-Funktion unter -EHc übergeben wird. Nicht definiertes Verhalten kann auftreten, wenn diese Funktion eine Ausnahme auslöst. 15.5 |
C5041 (Ebene 4) | "member-name": Out-of-Line-Definition für den statischen Datenmember constexpr ist nicht erforderlich und in C++17 veraltet. 15.2 |
C5042 (Ebene 3) | "function": Funktionsdeklarationen im Blockbereich können in C++ nicht inline angegeben werden. Entfernen des Inlinebezeichners 15.5 |
C5045 | Der Compiler fügt Spectre-Entschärfung für die Arbeitsspeicherauslastung ein, wenn der /Qspectre-Switch 15.7 angegeben hat. |
Visual Studio 2019 und höhere Versionen
Die folgenden Warnungen sind in Visual Studio 2019 und höheren Versionen standardmäßig deaktiviert:
Warnung | Meldung |
---|---|
C5052 (Ebene 3) | Das Schlüsselwort "keyword-name" wurde in der C++- Version eingeführt und erfordert die Verwendung der Befehlszeilenoption "Option" 16.1 |
C5204 (Ebene 3) | Eine Klasse mit virtuellen Funktionen verfügt über einen nicht virtuellen trivialen Destruktor. 16.5 |
C5214 (Ebene 4) | Das Anwenden des Schlüsselworts auf einen Operanden mit einem flüchtigen qualifizierten Typ ist in C++20 16.7 veraltet. |
C5215 (Ebene 4) | "function-parameter" ein Funktionsparameter mit einem flüchtigen qualifizierten Typ ist in C++20 16.7 veraltet. |
C5216 (Ebene 4) | "Rückgabetyp" ein flüchtiger qualifizierter Rückgabetyp ist in C++20 16.7 veraltet. |
C5217 (Ebene 4) | Eine strukturierte Bindungsdeklaration, die volatile enthält, ist in C++20 16.7 veraltet. |
C5219 (Ebene 2) | implizite Konvertierung von "Typ-1" in "Typ-2", möglicher Datenverlust 16.7 |
C5220 (Ebene 4) | "Member": Ein nicht statischer Datenmember mit einem flüchtigen qualifizierten Typ bedeutet nicht mehr, dass Vom Compiler generierte Copy/Move-Konstruktoren und Copy/Move-Zuweisungsoperatoren sind nicht trivial 16.7 |
C5233 (Ebene 4) | Explizite Lambdaerfassung "Bezeichner" wird nicht verwendet 16.10 |
C5240 (Ebene 4) | 'attributname': Das Attribut wird in dieser syntaktischen Position 16.10 ignoriert. |
C5243 (Ebene 1) | "Typname": Die Verwendung der unvollständigen Klasse "Klassenname" kann aufgrund der ABI-Einschränkung16.10 zu einer potenziellen Verletzung einer Definitionsregel führen. |
C5245 (Ebene 4) | 'Funktion': Nicht referenzierte Funktion mit interner Verknüpfung wurde entfernt |
C5246 (Ebene 1) | "Member": Die Initialisierung eines Unterobjekts sollte in Klammern 16.10 umschlossen werden. |
C5247 (Ebene 1) | Abschnitt "Abschnittsname" ist für die dynamische C++-Initialisierung reserviert. Das manuelle Erstellen des Abschnitts beeinträchtigt die dynamische C++-Initialisierung und kann zu undefiniertem Verhalten 16.11 führen. |
C5248 (Ebene 1) | 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 im Verhältnis zu den vom Compiler generierten 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 | Meldung |
---|---|
C5249 (Ebene 1) | "Bitfeld" vom Typ "enumeration_name" hat benannte Enumeratoren mit Werten, die in der angegebenen Bitfeldbreite von "bitfield_width" nicht dargestellt werden können. 17.0 |
C5250 (Ebene 3) | "function_name": intrinsische Funktion nicht deklariert. 17.0 |
C5251 (Ebene 4) | Segmentname nach einschließlich Header 17.1 geändert |
C5254 (Ebene 4) | Sprachfeature "terse static assert" erfordert Compilerflag "/std:c++17" 17.1 |
C5256 (Ebene 1) | 'Enumeration': Eine nicht definierende Deklaration einer Enumeration mit einem festen zugrunde liegenden Typ ist nur als eigenständige Deklaration 17.2 zulässig. |
C5258 (Ebene 4) | Die explizite Erfassung von "Symbol" ist für diese Verwendung nicht erforderlich 17.2 |
C5259 (Ebene 4) | "specialized-type": Explizite Spezialisierung erfordert "template <> " 17.3 |
C5262 (Ebene 1, Fehler) | Implizite Falldurchfalle treten hier auf; Fehlt Ihnen eine break Aussage? Verwenden Sie [[fallthrough]] , wenn eine break Anweisung zwischen Fällen absichtlich weggelassen wird 17.4 |
C5263 (Ebene 4) | Das Aufrufen von "std::move " für ein temporäres Objekt verhindert kopiere elision 17.4 |
C5264 (Ebene 4) | 'variable-name': 'const'-Variable wird nicht verwendet 17.4 |
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.
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 | Meldung |
---|---|
C4768 | __declspec Attribute vor dem Ignorieren der Verknüpfungsspezifikation |
Diese Warnungen waren in Versionen des Compilers vor Visual Studio 2015 standardmäßig deaktiviert:
Warnung | Meldung |
---|---|
C4302 (Ebene 2) | 'Konvertierung': Abschneiden von "type1" in "type2" |
C4311 (Ebene 1) | 'variable': Zeigerabkürzung von "type" auf "type" |
C4312 (Ebene 1) | "Operation": Konvertierung von "type1" in "type2" mit größerer Größe |
C4319 (Stufe 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 | Meldung |
---|---|
C4431 (Ebene 4) | Fehlender Typspezifizierer - int wird angenommen. Hinweis: default-int wird von C++ nicht unterstützt |