/Zc
(準拠)
コンパイラ オプションを /Zc
使用して、標準または Microsoft 固有のコンパイラ動作を指定します。
構文
/Zc:
option{,option ...}
コンマで区切ることにより、1 つの /Zc
コンパイラ オプションで複数の /Zc
オプションを設定できます。 同じコマンドで /Zc
オプションが有効または無効になっている場合は、最後に表示されるオプションが使用されます。
解説
Visual Studio で、標準と互換性のない C または C++ の拡張機能を実装している場合は、/Zc
準拠オプションを使用して、標準準拠または Microsoft 固有の動作を指定できます。 一部のオプションでは、既存のコードに対する大規模な破壊的変更を防ぐために、Microsoft 固有の動作を既定で使用します。 それ以外の場合、セキュリティ、パフォーマンス、または互換性における向上が、破壊的変更にかかるコストを上回ると思われるため、標準動作を既定で使用します。 各準拠オプションの既定の設定は、新しいバージョンの Visual Studio で変更できます。 各準拠オプションの詳細については、個別のオプションに関する記事を参照してください。 /permissive-
コンパイラ オプションは、既定では設定されていない準拠オプションを、準拠する設定に暗黙的に設定します。
/Zc
コンパイラ オプションを次に示します。
オプション | Behavior |
---|---|
/Zc:__cplusplus[-] |
マクロを __cplusplus 有効にして、サポートされている標準を報告します。 既定ではオフです。 |
/Zc:__STDC__ |
マクロで __STDC__ C 標準がサポートされていることを報告できるようにします。 既定ではオフです。 |
/Zc:alignedNew[-] |
C++17 のオーバーアラインされた動的割り当てを有効にします。 それ以降が指定されていない限り /std:c++17 、既定ではオフです。 |
/Zc:auto[-] |
新しい標準 C++ の意味を適用します auto 。 既定でオンになっています。 |
/Zc:char8_t[-] |
C++20 ネイティブ u8 リテラルのサポート const char8_t を有効または無効にします。 それ以降が指定されていない限り /std:c++20 、既定ではオフです。 |
/Zc:checkGwOdr[-] |
の下 /Gw に標準 C++ ODR 違反を強制します。 |
/Zc:enumTypes[-] |
型推論の標準 C++ 規則を enum 有効にします。 既定ではオフです。 |
/Zc:externC[-] |
関数に標準 C++ 規則を適用します extern "C" 。 指定されていない限り /permissive- 、既定ではオフです。 |
/Zc:externConstexpr[-] |
変数の外部リンケージを constexpr 有効にします。 既定ではオフです。 |
/Zc:forScope[-] |
標準 C++ for のスコープ規則を適用します。 既定でオンになっています。 |
/Zc:gotoScope[-] |
ローカル変数の初期化に関する標準 C++ goto 規則を適用します。 指定されていない限り /permissive- 、既定ではオフです。 |
/Zc:hiddenFriend[-] |
標準の C++ 非表示フレンド ルールを適用します。 指定されていない限り /permissive- 、既定ではオフです。 |
/Zc:implicitNoexcept[-] |
必要な関数で暗黙的 noexcept を有効にします。 既定でオンになっています。 |
/Zc:inline[-] |
参照されていない関数またはデータが COMDAT であるか、内部リンケージのみがある場合は削除します。 既定ではオフです。 |
/Zc:lambda[-] |
汎用ラムダでの準拠モードの構文チェック用に新しいラムダ プロセッサを有効にします。 それ以降が指定されていない限り /std:c++20 、既定ではオフです。 |
/Zc:noexceptTypes[-] |
C++17 規則を noexcept 適用します。 それ以降が指定されていない限り /std:c++17 、既定ではオフです。 |
/Zc:nrvo[-] |
省略可能なコピーと移動のエリシオンを有効にします。 、またはそれ/std:c++20 以降を指定しない限り/O2 /permissive- 、既定ではオフです。 |
/Zc:preprocessor[-] |
新しい準拠プリプロセッサを使用します。 それ以降が指定されていない限り /std:c11 、既定ではオフです。 |
/Zc:referenceBinding[-] |
UDT 一時は、非複合左辺値参照にバインドされません。 指定されていない限り /permissive- 、既定ではオフです。 |
/Zc:rvalueCast[-] |
標準 C++ の明示的な型変換規則を適用します。 指定されていない限り /permissive- 、既定ではオフです。 |
/Zc:sizedDealloc[-] |
C++14 グローバル サイズの割り当て解除関数を有効にします。 既定でオンになっています。 |
/Zc:strictStrings[-] |
文字列リテラルの変換またはwchar_t* 変換をchar* 無効にします。 指定されていない限り /permissive- 、既定ではオフです。 |
/Zc:static_assert[-] |
の厳密な取り扱い static_assert 。 指定されていない限り /permissive- 、既定ではオフです。 |
/Zc:templateScope[-] |
標準の C++ テンプレート パラメーターシャドウルールを適用します。 既定ではオフです。 |
/Zc:ternary[-] |
オペランド型に条件付き演算子ルールを適用します。 指定されていない限り /permissive- 、既定ではオフです。 |
/Zc:threadSafeInit[-] |
スレッド セーフなローカル静的初期化を有効にします。 既定でオンになっています。 |
/Zc:throwingNew[-] |
失敗した場合のスローを想定 operator new します。 既定ではオフです。 |
/Zc:tlsGuards[-] |
TLS 変数の初期化のためのランタイム チェックを生成します。 既定でオンになっています。 |
/Zc:trigraphs[-] |
トライグラフを有効にします (廃止、既定ではオフ)。 |
/Zc:twoPhase- |
不適合テンプレートの解析動作を使用します (指定されている場合 /permissive- にのみ適用され、既定では準拠します)。 |
/Zc:wchar_t[-] |
wchar_t はネイティブ型であり、typedef ではありません。 既定でオンになっています。 |
/Zc:zeroSizeArrayNew[-] |
オブジェクトの 0 サイズ配列のメンバー new /delete を呼び出します。 既定でオンになっています。 |
MSVC の準拠に関する問題について詳しくは、「非標準動作」をご覧ください。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示