Dans la partie de code suivante, j'utilise l'attribut standard [[fallthrough]]
de C ++ 1z pour documenter qu'une défaillance est souhaitée:
#include <iostream>
int main() {
switch (0) {
case 0:
std::cout << "a\n";
[[fallthrough]]
case 1:
std::cout << "b\n";
break;
}
}
Avec GCC 7.1, le code est compilé sans erreur. Cependant, le compilateur me met toujours en garde contre un échec:
warning: this statement may fall through [-Wimplicit-fallthrough=]
std::cout << "a\n";
~~~~~~~~~~^~~~~~~~
Pourquoi?