禁止显示“使用'X'属性是C ++ 17扩展名”警告

时间:2019-07-16 02:24:09

标签: c++ qt g++

我正在使用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版

1 个答案:

答案 0 :(得分:0)

从Qt 5.12开始,您可以使用配置标志CONFIG += c++17

在Qt 5.12之前,您需要通过qmake标志添加编译器标志:QMAKE_CXXFLAGS += -std=c++17用于GCC和MinGW,QMAKE_CXXFLAGS += /std:c++latestQMAKE_CXXFLAGS += /std:c++17 <-取决于您使用的MSVC编译器。

此处是Qt qmake manual variable reference,以获取更多信息

有关任务QTBUG-67527的Gerrit代码审查,以获取更多信息

添加此标志后:

  1. 在项目上再次运行qmake

  2. 清理您的项目。 (如有必要,请删除阴影构建文件夹)

  3. 重建项目