Я использую 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]]
построить в вашем случае из-за компилятора и версии, которую вы поддерживаете.)
Других решений пока нет …