我正在使用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版
答案 0 :(得分:0)
从Qt 5.12开始,您可以使用配置标志CONFIG += c++17
在Qt 5.12之前,您需要通过qmake标志添加编译器标志:QMAKE_CXXFLAGS += -std=c++17
用于GCC和MinGW,QMAKE_CXXFLAGS += /std:c++latest
或QMAKE_CXXFLAGS += /std:c++17
<-取决于您使用的MSVC编译器。
此处是Qt qmake manual variable reference,以获取更多信息
有关任务QTBUG-67527的Gerrit代码审查,以获取更多信息
添加此标志后:
在项目上再次运行qmake
清理您的项目。 (如有必要,请删除阴影构建文件夹)