在C ++中的每个案例步骤中使用自动中断switch语句

Switch statement with automatic break at each case step in C++

如果我们想要一个switch语句,在这里我们需要为每种情况运行一些指令,那么break我们需要这样做:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
switch (condition) {
   case (opt1):
      // do stuff
      break;
   case (opt2):
      // do stuff
      break;
   case (opt3):  
      // do stuff
      break;
   // ...
   default:
      // do stuff
}

有没有可能有一个互斥的开关,而不通过,在默认情况下,每个选项都应该中断,而不必显式地声明中断指令?如果C++中没有这个概念,是否可以用其他命令语言?


C也需要break,但如果你不把它放在上面,就对你大喊大叫。你需要用goto label;来明确地通过。

在C++中,没有办法做到这一点(当然,除了可怕的宏)。但是,clang得到了-Wimplicit-fallthrough的警告。然后,您可以插入[[clang::fallthrough]];,以消除针对故意失误的警告。

文档:http://clang.llvm.org/docs/attributereference.html fallthrough clang fallthrough


"没有自动坠落"在戈兰。https://golang.org/doc/effective_go.html开关