15.8.1/8 [class.copy.ctor]
"If the definition of a class X does not explicitly declare a move
constructor, a non-explicit one will be implicitly declared as defaulted
if and only if
(8.1) — X does not have a user-declared copy constructor,
(8.2) — X does not have a user-declared copy assignment operator,
(8.3) — X does not have a user-declared move assignment operator, and
(8.4) — X does not have a user-declared destructor.
"
Your struct Outer matches all these points.