template struct A { T x; }; template struct B { B() { A a; } }; struct Incomplete; struct start { B b; typedef A type; };