warning C4482: nonstandard extension used: enum used in qualified name

Compiler Error: C4482
今天遇到一个奇怪的Compiler Warning:

XXX.h(54) : warning C4482: nonstandard extension used: enum 'NameSpaceX::EnumNameY::EnumValueZ' used in qualified name

后来查了一下MSDN,找到了原因:

http://msdn2.microsoft.com/en-us/library/ms173704.aspx

Compiler Warning (level 1) C4482


Error Message 
nonstandard extension used: enum 'enum' used in qualified name


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

For more information on CLR enums, see enum class. For more information about native enums, see C++ Enumeration Declarations.

Example
The following sample generates C4482.

// C4482.cpp
// compile with: /c /W1
struct S {
   enum E { a };
};

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

原文地址:https://www.cnblogs.com/wenshanzh/p/2773248.html