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

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

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

两种Transfer方法都声明如下:
Energy::Transfer(const Creatures& transferTo, (snip)

但是,关于名为ally的变量的声明,我得到以下警告:
 warning C4482: nonstandard extension used: enum 'MiddleEarth::Creatures' used in qualified name

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

最佳答案

MSDN page on the warning;



所以就你而言

MiddleEarth::Creatures::Elf

应该
MiddleEarth::Elf

08-16 18:03