gpt4 book ai didi

c++ - 如何在不收到编译器警告的情况下使用 C++ 枚举

转载 作者:太空宇宙 更新时间:2023-11-03 10:30:51 26 4
gpt4 key购买 nike

我需要传达一个相同的枚举被传递给多个调用。所以我这样做:

MiddleEarth::Creatures ally = MiddleEarth::Creatures::Elf;

myEnergy->Transfer(ally, 10);
myLives->Transfer(ally, 1);

两种传输方法声明如下:

Energy::Transfer(const Creatures& transferTo, (snip)

但是,我在声明名为 ally 的变量时收到以下警告:

 warning C4482: nonstandard extension used: enum 'MiddleEarth::Creatures' used in qualified name

我做错了什么?如何重写我的代码以使其不生成编译器警告?

最佳答案

来自MSDN page on the warning ;

When you refer to an enum inside a type, you do not need to specify the name of the enum.

int i = S::E::a; // C4482
int j = S::a; // OK

所以在你的情况下;

MiddleEarth::Creatures::Elf

应该是

MiddleEarth::Elf

关于c++ - 如何在不收到编译器警告的情况下使用 C++ 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17285393/

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