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.