template struct A; template struct C; template struct B { typedef C type; }; template struct C { C() { /* clang-format off */ static_cast(sizeof(typename B< A >::type)); /* clang-format on */ } }; C start;