odi*_*erd 5 c++ warnings compiler-warnings visual-c++
如果我的 switch 语句之一的 case 没有中断,我想收到警告/错误。这可能吗?
switch (i){
case 1:
cout << "one";
//forgot to break here, I want to be warned about this
case 2:
cout << "two";
break;
}
Run Code Online (Sandbox Code Playgroud)
在 2012 年原生会议上讨论了类似的 Clang 功能,但我需要它用于 MSVC2013 http://channel9.msdn.com/Events/GoingNative/GoingNative-2012/Clang-Defending-C-from-Murphy-s-Million-Monkeys
理想情况下,当两个连续的主体没有被中断分隔时,我想要一个警告,这样上面的例子就会失败,但这不会:
switch (i){
case 1:
cout << "one";
break;
case 2:
case 3:
cout << "not one";
break;
}
Run Code Online (Sandbox Code Playgroud)
Lig*_*ica -14
不。
的全部目的switch是您不必这样做,break但可以直接跳到下一个case。
当您真正想要的是一条语句时,编译器甚至提供禁止这样做的选项是没有意义的if。