![](/img/trans.png)
[英]Should we use lifetime extension of a temporary in C++17 and later?
[英]Suppressing “use of the 'X' attribute is a C++17 extension” warnings
我正在使用Qt Creator,並且我的.pro文件中有CONFIG += c++17
,並且在適當的地方使用了nodiscard
屬性。 但是,編譯器仍會不必要地警告use of the '[[nodiscard]]' attribute is a C++17 extension
。
有沒有一種方法可以消除該特定警告? 甚至所有類型為“ X是C ++ XX擴展名”的警告? 我到處都在尋找將標志包含在CXXFLAGS
而沒有成功的標志。
我正在使用Qt Creator版本4.9.2和g ++版本8.3.0
從Qt 5.12開始,您可以使用配置標志CONFIG += c++17
在Qt 5.12之前,您需要通過qmake標志添加編譯器標志:GCC和MinGW的QMAKE_CXXFLAGS += -std=c++17
和QMAKE_CXXFLAGS += /std:c++latest
或QMAKE_CXXFLAGS += /std:c++17
< -取決於您使用的MSVC編譯器。
這是Qt qmake手動變量參考,以獲取更多信息
有關任務QTBUG-67527的 Gerrit代碼審查,甚至更多信息
添加此標志后:
再次在項目上運行qmake
清理您的項目。 (如有必要,請刪除陰影構建文件夾)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.