C ++ Fehler / Warnung zur Kompilierungszeit bei implizitem Durchfall in Schalter erzwingen

switch -Anweisungen können sehr nützlich sein, führen jedoch zu einem häufigen Fehler, bei dem ein Programmierer eine break-Anweisung vergessen hat:

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

Sie erhalten offensichtlich keine Warnung, da manchmal ein Durchfallen ausdrücklich erwünscht ist. Ein guter Codierungsstil empfiehlt zu kommentieren, wenn Ihr Fall-Through absichtlich ist, aber manchmal ist das nicht ausreichend.

Ich bin mir ziemlich sicher, dass die Antwort auf diese Frage Nein lautet, aber: Gibt es derzeit (oder in Zukunft) eine Möglichkeit, den Compiler aufzufordern, einen Fehler (oder zumindest eine Warnung!) Auszulösen, wenn Ihrcase hat nicht mindestens eines vonbreak; oder so etwas wie// fallthru? Es wäre schön, eine defensive Programmieroption für die Verwendung von @ zu habeswitch Anweisungen.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage