这是我想要做的事情:
enum MyEnum
{
ONE = 1, TWO, THREE
};
template<class T>
void func()
{
cout << T::TWO << endl;
}
int main()
{
func<MyEnum>();
};
代码可以正常工作,但我收到了一个警告:"warning C4482: nonstandard extension used: enum 'MyEnum' used in qualified name"。
我该如何在不收到警告的情况下进行操作?
enum E1 { ONE, TWO }; enum E2 { ONE, TWO };
这段代码会出现 “ONE
冲突声明”的错误,因为enum E1
中的值并没有进入命名空间E1
。你期望会发生什么呢? - user395760MyEnum
中定义了TWO
,但它不是您所展示的类或命名空间的一部分。枚举不声明作用域,因此不能使用作用域运算符进行解析。 - Zac Howlandclass
或struct
,而不是enum
。 - Zac Howland