Are inner classes in C++ automatically friends?
问题 If I define an inner class in C++, is it automatically a friend of the class that contains it? For example, is this legal: class Outer { public: class Inner { public: void mutateOuter(Outer& o); }; private: int value; }; void Outer::Inner::mutateOuter(Outer& o) { o.value ++; // Legal? Or not? } I ask because on some compilers I\'ve tried (VS2003) this code won\'t work, but I\'ve heard at least anecdotally that it does work on some compilers. I can\'t find a relevant section in the C++ spec