Sind innere Klassen in C ++ automatisch Freunde?

Wenn ich eine innere Klasse in C ++ definiere, ist sie automatisch ein Freund der Klasse, die sie enthält? Ist das zum Beispiel legal: class Outer { public: class Inner { public: void mutateOuter(Outer& o); }; private: int value; }; void Outer::Inner::mutateOuter(Outer& o) { o.value ++; //...