Пометка провала в C++
Атрибут fallthrough ставят перед
следующей веткой switch и говорят,
что провал между метками сделан намеренно.
Без такой пометки современные правила
предупреждают о рискованном переходе.
Запишем switch, где две метки
подряд печатают разные слова:
#include <iostream>
int main() {
int mode = 1;
switch (mode) {
case 1:
std::cout << "warm\n";
[[fallthrough]];
case 2:
std::cout << "run\n";
break;
default:
break;
}
return 0;
}
Для switch по 0 выведите
"a" в case 0, поставьте
[[fallthrough]] и в case 1
выведите "b".
При case 3 напечатайте "x",
разрешите провал атрибутом и в case 4
напечатайте "y" для того же
switch по целому аргументу.