【发布时间】:2011-10-27 13:54:20
【问题描述】:
根据 MSDN,Visual C++ 可以在何时发出C4062 warning
- 和枚举用于
switch和 - 该枚举的至少一个元素没有标签,并且
-
switch中没有default:标签
现在对我来说,这种情况当然值得警告 - 有问题的元素很可能处理不当。如果不需要对某些元素执行任何操作 - 开发人员可以提供空的 case 或 default。
这个警告默认关闭的原因是什么?
【问题讨论】:
-
一个疯狂的猜测是,启用它会破坏 Microsoft 标头中的代码。在我的一个中等大小的 C++ 项目上启用 /Wall 会产生来自 MS 标头的 9812 个警告 (!)。
-
标准中是否定义了任何警告,或者它们始终是实现定义的。
-
@rerun:好问题(其答案可能很微妙)。如果您对答案感兴趣,请单独提出问题。
-
我完全同意@AlexandreC。微软痴迷于向后兼容性,有时它可能是一个严重的 PITA。
-
@John Dibling:我试过
/Wall- 我不喜欢它。
标签: c++ visual-c++ compiler-construction switch-statement compiler-warnings