編譯 /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至 [其他選項:] 窗格。