gpt4 book ai didi

c++ - 禁用 MSVC 警告 C4482 是否安全?

转载 作者:可可西里 更新时间:2023-11-01 16:05:47 26 4
gpt4 key购买 nike

虽然用枚举名称限定枚举值在 C++03 中是无效的,但据我所知,它在 C++11 中是有效的。尽管如此,MSVC 10 仍会针对以下内容生成警告 C4482:

enum E { A, B };

int i = E::A; // warning C4482 (but valid C++11?)

由于我们的大部分代码都使用了 C++11 功能(尤其是 lambda),因此禁用此警告似乎是安全的。我认为该代码是有效的 C++11 对吗?

注意:我没有编写有问题的代码,我宁愿不经历并更改每一次出现的代码。

编辑:添加了一些相关链接。

最佳答案

Since much of our code uses C++11 features (especially lambdas), it seems safe to disable this warning.

如果您已经依赖于 C++11 功能,那么是的。 C++11 确实允许您使用枚举名称范围内的常规枚举。 Microsoft 将此作为扩展有一段时间了,因此他们发出了有关非标准行为的警告。

所以你可以禁用它。

请注意,像 VC2010 这样的旧版编译器并没有发出警告,而是引发了编译错误 C2653(带有消息“...不是类或命名空间名称”)。

关于c++ - 禁用 MSVC 警告 C4482 是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7757707/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com