【发布时间】:2022-12-10 13:44:13
【问题描述】:
我在自己的命名空间中有一些枚举,但我仍然收到关于“全局命名空间中的污染”的恼人警告。为什么我会收到此错误,因为它们甚至不在全局命名空间中?我怎样才能摆脱这个警告?确切的警告是:
C26812, The enum type 'Adventure_Game::itemType' is unscoped. Prefer 'enum class' over 'enum' (Enum.3).
我在头文件中的命名空间中有枚举声明,如下所示:
namespace Adventure_Game {
enum itemType { Consumable, Key };
enum equipType { Unarmed, Weapon, Shield, Armor };
struct invItem { string name = "(name)", desc = "(desc)"; itemType type; unsigned int amount = 0; float value = 0.0f; };
struct invEquip { string name = "(name)", desc = "(desc)"; equipType type; float low = 0.0f, high = 1.0f, weight = 0.0f, value = 0.0f; bool equip = false; };
}
我也尝试过使用枚举类,但我不想在这种情况下使用它们,因为它会破坏一切,而且我必须在任何地方都使用静态转换,这只会是一团糟。我真的很感激帮助处理这个烦人的警告。
谢谢 :)
【问题讨论】: