/Zc:externConstexpr (啟用 extern constexpr 變數)

編譯 /Zc:externConstexpr 程式選項會告知編譯器符合 C++ 標準,並允許變數的外部 constexpr 連結。 根據預設,Visual Studio 一律會提供變數內部連結,即使您指定 extern 關鍵字也一 constexpr 樣。

語法

/Zc:externConstexpr[-]

備註

編譯 /Zc:externConstexpr 程式選項會使編譯器將外部連結套用至使用 extern constexpr 宣告的變數。

在舊版的 Visual Studio 中,根據預設或指定 , /Zc:externConstexpr- 即使 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 中設定這個編譯器選項

  1. 開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性

  2. 選取 [組態屬性]>[C/C++]>[命令列] 屬性頁。

  3. 將 或 /Zc:externConstexpr- 新增 /Zc:externConstexpr 至 [ 其他選項: ] 窗格。

另請參閱

auto 關鍵 字
permissive
/Zc (一致性)