/Zc:__cplusplus
(啟用更新 __cplusplus
的巨集)
編譯 /Zc:__cplusplus
程式選項可讓 __cplusplus
預處理器巨集報告最新C++語言標準支援的更新值。 根據預設,Visual Studio 一律會傳__cplusplus
回預處理器巨集的值199711L
。
語法
/Zc:__cplusplus
[-
]
備註
__cplusplus
預處理器巨集通常用來報告特定版本的C++標準支援。 由於許多現有的程式代碼似乎相依於這個巨集比 199711L
對的值,因此除非您使用 /Zc:__cplusplus
編譯程式選項明確選擇加入,否則編譯程式不會變更巨集的值。 此選項 /Zc:__cplusplus
可從 Visual Studio 2017 15.7 版開始使用,且預設為關閉。 在舊版的Visual Studio中,根據預設,或/Zc:__cplusplus-
如果已指定,Visual Studio會傳__cplusplus
回預處理器巨集的值199711L
。 /permissive-
選項不會啟用 /Zc:__cplusplus
。
/Zc:__cplusplus
啟用選項時,巨集所__cplusplus
報告的值取決於/std
版本選項設定。 下表顯示巨集的可能值:
/Zc:__cplusplus 選擇 |
/std 選擇 |
__cplusplus 值 |
---|---|---|
Zc:__cplusplus |
/std:c++14 (預設值) |
201402L |
Zc:__cplusplus |
/std:c++17 |
201703L |
Zc:__cplusplus |
/std:c++20 |
202002L |
Zc:__cplusplus |
/std:c++latest |
請參閱文字 |
Zc:__cplusplus- (停用) |
任何值 | 199711L |
未指定 | 任何值 | 199711L |
編譯程式不支援 C++98、C++03 或 C++11 的標準選項。 此選項 /std:c++20
可從 Visual Studio 2019 16.11 版開始使用。 具有 選項的 /std:c++latest
值__cplusplus
取決於 Visual Studio 的版本。 它一律至少高於 Visual Studio 版本所支援 __cplusplus
的最高標準值。
若要更精細地偵測編譯程式工具組的變更,請使用 _MSC_VER
預先定義的巨集。 此內建巨集的值會隨著 Visual Studio 2017 和更新版本中的每個工具組更新進行累加。 預先 _MSVC_LANG
定義的巨集會報告標準版本,無論 /Zc:__cplusplus
選項是啟用還是停用。 啟用 時 /Zc:__cplusplus
, __cplusplus
具有與 _MSVC_LANG
相同的值。
在 Visual Studio 中設定這個編譯器選項
開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性。
選取 [組態屬性]>[C/C++]>[命令列] 屬性頁。
將 或
/Zc:__cplusplus-
新增/Zc:__cplusplus
至 [其他選項:] 窗格。