template struct A { using reference = T&; }; template struct B { using reference = A::reference; }; template struct C { using type = B::reference; };