/Zc (Konformität)

Verwenden Sie die /Zc Compileroptionen, um standard- oder microsoftspezifisches Compilerverhalten anzugeben.

Syntax

/Zc:option{,option ...}

Sie können mehrere /Zc Optionen festlegen, die durch Kommas in einer einzelnen /Zc Compileroption getrennt sind. Wenn eine /Zc Option im selben Befehl aktiviert und deaktiviert ist, wird die zuletzt angezeigte Option verwendet.

Hinweise

Wenn Visual Studio eine Erweiterung für C oder C++ implementiert hat, die nicht mit dem Standard kompatibel ist, können Sie eine /Zc Konformitätsoption verwenden, um standardkonformes oder microsoftspezifisches Verhalten anzugeben. Bei einigen Optionen ist das microsoftspezifische Verhalten der Standard, um zu verhindern, dass änderungen an vorhandenem Code in großem Maßstab abgebrochen werden. In anderen Fällen ist der Standardwert das Standardverhalten, bei dem Verbesserungen bei Sicherheit, Leistung oder Kompatibilität die Kosten für die Unterbrechung von Änderungen überwiegen. Die Standardeinstellung jeder Konformitätsoption kann sich in neueren Versionen von Visual Studio ändern. Weitere Informationen zu jeder Konformitätsoption finden Sie im Artikel zu der jeweiligen Option. Die /permissive- Compileroption legt implizit die Konformitätsoptionen fest, die standardmäßig nicht auf ihre konformen Einstellungen festgelegt sind.

Hier sind die /Zc Compileroptionen:

Option Behavior
/Zc:__cplusplus[-] Aktivieren Sie das __cplusplus Makro, um den unterstützten Standard zu melden. Standardmäßig deaktiviert.
/Zc:__STDC__ Aktivieren Sie das Makro, um den __STDC__ C-Standard zu melden, wird unterstützt. Standardmäßig deaktiviert.
/Zc:alignedNew[-] Aktivieren Sie die überbündige dynamische Zuordnung von C++17. Standardmäßig deaktiviert, es sei denn /std:c++17 , oder höher ist angegeben.
/Zc:auto[-] Erzwingen Sie die neue Standard-C++-Bedeutung für auto. Standardmäßig aktiviert.
/Zc:char8_t[-] Aktivieren oder deaktivieren Sie die systemeigene u8 C++20-Literalunterstützung als const char8_t. Standardmäßig deaktiviert, es sei denn /std:c++20 , oder höher ist angegeben.
/Zc:checkGwOdr[-] Erzwingen von Standard-C++-ODR-Verstößen unter /Gw.
/Zc:enumTypes[-] Standard-C++-Regeln für enum Typabzug aktivieren. Standardmäßig deaktiviert.
/Zc:externC[-] Erzwingen sie Standard-C++-Regeln für extern "C" Funktionen. Standardmäßig deaktiviert, es sei denn /permissive- , es wird angegeben.
/Zc:externConstexpr[-] Aktivieren Sie die externe Verknüpfung für constexpr Variablen. Standardmäßig deaktiviert.
/Zc:forScope[-] Erzwingen von Standard-C++ for -Bereichsregeln. Standardmäßig aktiviert.
/Zc:gotoScope[-] Erzwingen Sie Standard-C++ goto -Regeln für die lokale Variableninitialisierung. Standardmäßig deaktiviert, es sei denn /permissive- , es wird angegeben.
/Zc:hiddenFriend[-] Erzwingen Sie standardmäßige C++-Regeln für ausgeblendete Freunde. Standardmäßig deaktiviert, es sei denn /permissive- , es wird angegeben.
/Zc:implicitNoexcept[-] Aktivieren Sie implizit noexcept für erforderliche Funktionen. Standardmäßig aktiviert.
/Zc:inline[-] Entfernen Sie nicht referenzierte Funktionen oder Daten, wenn sie COMDAT sind oder nur über interne Verknüpfungen verfügen. Standardmäßig deaktiviert.
/Zc:lambda[-] Aktivieren Sie den neuen Lambda-Prozessor für syntaktische Überprüfungen im Konformitätsmodus in generischen Lambdas. Standardmäßig deaktiviert, es sei denn /std:c++20 , oder höher ist angegeben.
/Zc:noexceptTypes[-] Erzwingen Sie C++17-Regeln noexcept . Standardmäßig deaktiviert, es sei denn /std:c++17 , oder höher ist angegeben.
/Zc:nrvo[-] Optionales Kopieren und Verschieben von Elisionen aktivieren. Standardmäßig deaktiviert, es sei denn /O2, /permissive-oder /std:c++20 höher ist angegeben.
/Zc:preprocessor[-] Verwenden Sie den neuen konformen Präprozessor. Standardmäßig deaktiviert, es sei denn /std:c11 , oder höher ist angegeben.
/Zc:referenceBinding[-] Eine temporäre UDT-Bindung wird nicht an einen nicht zusammenhängenden lvalue-Verweis gebunden. Standardmäßig deaktiviert, es sei denn /permissive- , es wird angegeben.
/Zc:rvalueCast[-] Erzwingen sie explizite C++-Typkonvertierungsregeln. Standardmäßig deaktiviert, es sei denn /permissive- , es wird angegeben.
/Zc:sizedDealloc[-] Aktivieren Sie C++14 globale Deallocation-Funktionen. Standardmäßig aktiviert.
/Zc:strictStrings[-] Deaktivieren Sie Zeichenfolgenliteral in char* oder wchar_t* Konvertierung. Standardmäßig deaktiviert, es sei denn /permissive- , es wird angegeben.
/Zc:static_assert[-] strikte Handhabung von static_assert. Standardmäßig deaktiviert, es sei denn /permissive- , es wird angegeben.
/Zc:templateScope[-] Erzwingen von Standard-C++-Vorlagenparameter-Schattenregeln. Standardmäßig deaktiviert.
/Zc:ternary[-] Erzwingen sie Regeln für bedingte Operatoren für Operandentypen. Standardmäßig deaktiviert, es sei denn /permissive- , es wird angegeben.
/Zc:threadSafeInit[-] Aktivieren Sie die threadsichere lokale statische Initialisierung. Standardmäßig aktiviert.
/Zc:throwingNew[-] Gehen Sie davon aus, dass operator new Fehler ausgelöst werden. Standardmäßig deaktiviert.
/Zc:tlsGuards[-] Generieren Sie Laufzeitüberprüfungen für die TLS-Variableninitialisierung. Standardmäßig aktiviert.
/Zc:trigraphs[-] Aktivieren Sie Trigraphen (veraltet, standardmäßig deaktiviert).
/Zc:twoPhase- Verwenden Sie das Nichtkonforming von Vorlagenanalyseverhalten (gilt nur, wenn /permissive- angegeben wird, was standardmäßig konform ist).
/Zc:wchar_t[-] wchar_t ist ein systemeigener Typ, kein Typedef. Standardmäßig aktiviert.
/Zc:zeroSizeArrayNew[-] Rufen Sie member new/delete für 0-size arrays of objects auf. Standardmäßig aktiviert.

Weitere Informationen zu Konformitätsproblemen in MSVC finden Sie unter "Nicht standardmäßiges Verhalten".

Siehe auch

MSVC-Compileroptionen
Syntax für die MSVC-Compilerbefehlszeile