You're attempting to default-construct an object of type Parent, confusingly called "Parent", at global scope
To do that, Parent's default constructor is required. The compiler attempts to generate Parent's default constructor, which attempts to default-construct all members.
Your class Parent has a data member confusingly called "Inner", of type Parent::Inner. The type Parent::Inner has a user-defined constructor which prevents generation of Inner's default constructor, which means Parent's default constructor cannot be compiled either,
No, this means that you can't default-construct an object of a class whose default constructor you suppressed.
The smallest change to make this compile is to add public: Inner() {} between lines 6 and 7