Compiler Error C2327

'symbol' : member from enclosing class is not a type name, static, or an enumerator

From within a nested class, you attempted to access a member of the enclosing class that was not a type name, a static member, or an enumerator.

The following is an example of this error:

int x;
class enclose 
{
public:
   int x;
   static int s;
   class inner 
   {
      void f()
      {
         x = 1;      // error; enclose::x is not static
         s = 1;      // ok; enclose::s is static
         ::x = 1;    // ok; ::x refers to global
      }
   };
};