В следующем фрагменте кода я использую стандартный атрибут [[fallthrough]]
из С++ 1z для документирования того, что требуется прохождение:
#include <iostream>
int main() {
switch (0) {
case 0:
std::cout << "a\n";
[[fallthrough]]
case 1:
std::cout << "b\n";
break;
}
}
С GCC 7.1 код компилируется без ошибок. Однако компилятор все еще предупреждает меня о провале:
warning: this statement may fall through [-Wimplicit-fallthrough=]
std::cout << "a\n";
~~~~~~~~~~^~~~~~~~
Почему?