/Zc:externConstexpr
(外部 constexpr 変数の有効化)
/Zc:externConstexpr
コンパイラ オプションを指定すると、C++ 標準に準拠し、constexpr
変数の外部リンケージを許可するようコンパイラに指示が出されます。 既定では、extern
キーワードを指定した場合でも、Visual Studio で常に constexpr
変数の内部リンケージが設定されます。
構文
/Zc:externConstexpr
[-
]
解説
/Zc:externConstexpr
コンパイラ オプションを指定すると、コンパイラで extern constexpr
が使用され、宣言された変数に外部リンケージが適用されます。
以前のバージョンの Visual Studio では、既定で、または指定されている場合/Zc:externConstexpr-
は、キーワード (keyword)が使用されている場合extern
でも、Visual Studio は内部リンケージを変数にconstexpr
適用します。 /Zc:externConstexpr
オプションは、Visual Studio 2017 Update 15.6 以降で使用できます。 既定では無効になっています。
Visual Studio 2022 Update 17.6 の時点で、このオプションは /permissive-
両方 /Zc:externConstexpr
を /Zc:lambda
有効にします。 以前のバージョンでは、 /permissive-
どちらも有効にしませんでした。
ヘッダー ファイルに extern constexpr
を宣言した変数が含まれている場合、重複した宣言をリンクされたバイナリの単一インスタンス内にマージするには、__declspec(selectany)
とマークされている必要があります。 そうしないと、単一定義規則違反により、リンカー エラー (例: LNK2005) が表示されることがあります。
このコンパイラ オプションを Visual Studio で使用するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関する記事を参照してください。
[構成プロパティ]>[C/C++]>[コマンド ライン] プロパティ ページを選択します。
/Zc:externConstexpr
または/Zc:externConstexpr-
を [追加オプション] ペインに追加します。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示