No código a seguir, uso o [[fallthrough]]
atributo padrão do C ++ 1z para documentar que uma falha é desejada:
#include <iostream>
int main() {
switch (0) {
case 0:
std::cout << "a\n";
[[fallthrough]]
case 1:
std::cout << "b\n";
break;
}
}
Com o GCC 7.1, o código é compilado sem erros. No entanto, o compilador ainda me avisa sobre uma queda:
warning: this statement may fall through [-Wimplicit-fallthrough=]
std::cout << "a\n";
~~~~~~~~~~^~~~~~~~
Por quê?