3 template <typename _Tp> using decay_t = _Tp;
4 template <typename> struct A;
5 template <typename> struct B { B(A<int>); };
6 template <typename> struct C {
7 template <typename U> using constructor = B<decay_t<U>>;
8 typedef constructor<int> dummy;
10 template <typename> struct D {};
12 D<B<int>> fn1() { fn1, a; return D<B<int>>(); }