/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 中設定這個編譯器選項
開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性。
選取 [組態屬性]>[C/C++]>[命令列] 屬性頁。
將 或
/Zc:externConstexpr-
新增/Zc:externConstexpr
至 [其他選項:] 窗格。