分享方式:


/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 (一致性)