1 // PR c++/81917 2 // { dg-do compile { target c++11 } } 3 4 template <typename> using a = void; 5 template <typename, typename = void> struct b 6 { 7 typedef int c; 8 }; 9 template <typename d> class b<d, a<typename d::e>>; 10 template <typename d, typename = typename b<d>::c> class f; 11 template <typename> class g { }; 12 template <typename, typename> class h 13 { 14 class i; 15 typedef g<f<i>> j; 16 class i 17 { 18 j k; // { dg-error "incomplete" } 19 }; 20 }; 21 h<int, int> H; 22 23