'symbol' : member from enclosing class is not a type name, static, or an enumerator
Code within a nested class attempts to access a member of the enclosing class that is not a type name, a static member, or an enumerator.
Example
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 } }; };