如果开关盒掉落,如何让 MSVC 发出警告或失败?

问题描述 投票:0回答:3

如果我的 switch 语句之一有一个不中断的情况,我希望收到警告/错误。这可能吗?

switch (i){
case 1:
    cout << "one";
//forgot to break here, I want to be warned about this
case 2:
    cout << "two";
    break;
}

在 2012 年本地化会议上讨论了类似的 Clang 功能,但我需要在 MSVC2013 中使用它 http://channel9.msdn.com/Events/GoingNative/GoingNative-2012/Clang-Defending-C-from-Murphy-s-Million -猴子

理想情况下,当两个连续的主体没有被中断分开时,我想要一个警告,这样上面的例子就会失败,但这样不会:

switch (i){
case 1:
    cout << "one";
    break;
case 2:
case 3:
    cout << "not one";
    break;
}
c++ visual-c++ warnings compiler-warnings
3个回答
4
投票

MSVC 的 CppCoreCheck 添加了警告 C26819,它对未注释的失败发出警告。如果您之前没有使用过,请按以下步骤启用 CppCoreCheck

我意识到这是一篇七年前的帖子了。


0
投票

MS Visual Studio 2022(版本 17.4)在不使用 [[fallthrough]] 时添加

警告 C5262


-13
投票

没有。

switch
的全部目的是您没有
break
,但可以直接跳到下一个
case

当您真正想要的是

if
语句时,编译器甚至提供禁止这样做的选项是没有意义的。

© www.soinside.com 2019 - 2024. All rights reserved.