    #include <iostream>
    using namespace std;
     
    class Outer {
    public:
    class Inner {
    public:
    void mutateOuter(Outer& o);
    };
     
    private:
    int value;
    };
     
    void Outer::Inner::mutateOuter(Outer& o) {
    o.value ++; // Legal? Or not?
    }
     
    int main() {
    Outer zz;
    Outer::Inner ww;
    ww.mutateOuter(zz);
    return 0;
    }