相关疑难解决方法(0)

如何告诉gcc在没有中断的情况下对switch/case语句发出警告(或失败)?

我有一个复杂的switch陈述,我忘了break在其中一个结尾处放一个case.这是非常合法的,因此我对下一个进行了反复尝试case.

如果我忽略break发表声明,有没有办法让gcc警告(甚至更好,失败)?

我意识到有许多有效的用例(我经常在我的代码中使用它们),正如这个问题所示,所以很明显这样的警告(或失败)需要一个简单的弃权,以便我可以很容易地说,"我做我想在这里堕落."

有没有办法告诉gcc这样做?

c++ gcc switch-statement gcc-warning

9
推荐指数
1
解决办法
3234
查看次数

如果切换案例失败,如何使 MSVC 发出警告或失败?

如果我的 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)

c++ warnings compiler-warnings visual-c++

5
推荐指数
1
解决办法
870
查看次数