C ++ Принудительная ошибка во время компиляции / предупреждение о неявном провале в переключателе

switch операторы могут быть очень полезными, но приводят к общей ошибке, когда программист забыл оператор break:

switch(val) {
    case 0:
        foo();
        break;
    case 1:
        bar();
        // oops
    case 2:
        baz();
        break;
    default:
        roomba();
}

Вы не получите предупреждение, очевидно, так как иногда явно желателен провал. Хороший стиль кодирования предлагает комментировать, когда ваш провал является преднамеренным, но иногда этого недостаточно.

Я почти уверен, что ответ на этот вопрос - нет, но: есть ли способ (или предложенный в будущем) попросить компилятор выдать ошибку (или хотя бы предупреждение!), Если вашcase не имеет хотя бы одного изbreak; или что-то вроде// fallthru? Было бы неплохо иметь опцию защитного программирования для использованияswitch заявления.

Ответы на вопрос(4)

Ваш ответ на вопрос