共用方式為


/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會199711L__cplusplus傳回預處理器的值巨集。 /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 中設定這個編譯器選項

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

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

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

另請參閱

/Zc (一致性)
/std (指定語言標準版本)
預先定義巨集