我正在使用QtTest,刚刚更新到Qt 5.9并有这种警告:
error: use of the 'fallthrough' attribute is a C++1z extension [-Werror,-Wc++1z-extensions]
它们都指向Q_FALLTHROUGH()
qtestmouse.h
所以显然我需要在QMAKE_CXXFLAGS
中添加一些东西,但无法找出确切的内容。
我可以pragma
忽略这些警告,但想更多地了解这个主题。
这很简单 - 答案在错误消息中,它说:
[-Werror,-Wc++1z-extensions]
这指定哪些警告标志生成了此诊断。 在我们的例子中,我们忽略-Werror
部分,因为我们不想关闭整个行为,但我们可以使用另一个标志的no-
形式关闭警告,即 -Wno-c++1z-extensions
.
(由于您拥有支持它的编译器和版本,Q_FALLTHROUGH()
正在扩展到 C++17 [[fallthrough]]
构造。