The following builds in VS 2010:
class C1
{
private:
enum E {E_VAL};
static void methC1() {}
public:
class C2
{
public:
class C3
{
public:
void methC3()
{
int a=E_VAL; // this surprised me
methC1(); // and this too
}
};
};
};
int main()
{
C1::C2::C3 obj;
obj.methC3();
}
Is this standard? I saw this other SO post where an answer compares inner classes to friend classes, but a friend of a friend is not a friend, so wondering what standard says.