[英]VS2017 Cross platform project does not set C++17 as language standard
我正在使用VS 2017 v.15.9
開發跨平台應用程序。 目標系統上安裝了GCC v 8+
,根據文檔,它支持C++ 17
。
但由於某種原因, c++
語言標准在我的應用程序中堅決停留在C++ 14
上。
我轉到項目屬性 - > C/C++ - > 語言並將 C++ 語言標准明確設置為C++ 17
,它在選擇列表中可用,但這並沒有改變任何東西。
宏__cpluscplus
在許多標題中設置為201406L
,而不是201703L
,我需要打開C++ 17
提供的一些功能。
據我了解,這個宏是保留的,而且是由編譯器設置的? 在這種情況下,除了嘗試在 VS Project 設置中更改此設置(此設置可用)之外,還需要做什么?
有一些報告稱這個“錯誤”(未正確設置__cplusplus
宏的值)已得到修復。 但是,如果您的安裝似乎沒有該修復,那么您可以在編譯器的命令行上為每個項目顯式設置/Zc:__cplusplus
選項。
打開項目的“屬性”頁面(在“解決方案資源管理器”中右鍵單擊項目)並導航到“C/C++”->“命令行”並在“附加選項”編輯框中添加該開關,如下圖:
(此屏幕截圖實際上來自 VS-2019,但 IIRC,UI 與 VS-2017 中的非常相似。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.