C ++ Принудительная ошибка во время компиляции / предупреждение о неявном провале в переключателе
switch
операторы могут быть очень полезными, но приводят к общей ошибке, когда программист забыл оператор break:
switch(val) {
case 0:
foo();
break;
case 1:
bar();
// oops
case 2:
baz();
break;
default:
roomba();
}
Вы не получите предупреждение, очевидно, так как иногда явно желателен провал. Хороший стиль кодирования предлагает комментировать, когда ваш провал является преднамеренным, но иногда этого недостаточно.
Я почти уверен, что ответ на этот вопрос - нет, но: есть ли способ (или предложенный в будущем) попросить компилятор выдать ошибку (или хотя бы предупреждение!), Если вашcase
не имеет хотя бы одного изbreak;
или что-то вроде// fallthru
? Было бы неплохо иметь опцию защитного программирования для использованияswitch
заявления.