Compiler Warning (level 3) C4240

nonstandard extension used : access to 'classname' now defined to be 'access specifier', previously it was defined to be 'access specifier'

The proposed C++ standard does not allow the access to a nested class to be changed; the Visual C++ compiler does allow this but also generates this warning.

The following is a code sample that generates this error:

class X {
private:
   class N;
public:
   class N {
   };
};