/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
至 [ 其他選項: ] 窗格。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應