jak*_*kar 10 c++ visual-studio-2010 c++11
虽然使用枚举名称限定枚举值是无效的C++ 03,但根据我的理解,它是有效的C++ 11.尽管如此,MSVC 10还会针对以下内容生成警告C4482:
enum E { A, B };
int i = E::A; // warning C4482 (but valid C++11?)
Run Code Online (Sandbox Code Playgroud)
由于我们的大部分代码都使用C++ 11特性(特别是lambdas),因此禁用此警告似乎是安全的.我是对的,代码是有效的C++ 11吗?
注意:我没有编写有问题的代码,我宁愿不经历并更改每次出现的代码.
编辑:添加了一些相关链接.
由于我们的大部分代码都使用C++ 11特性(特别是lambdas),因此禁用此警告似乎是安全的.
如果您已经依赖于C++ 11功能,那么是的.C++ 11允许您使用以枚举名称为范围的常规枚举.微软有一段时间将其作为扩展,因此他们发出了关于非标准行为的警告.
所以你可以禁用它.