1 // Contributed by Dodji Seketeli <dodji@redhat.com> 2 // { dg-do compile } 3 4 template<class T> 5 struct C 6 { 7 }; 8 9 template<class T, 10 template<class TT_T0, template<class TT_T1> class TT_TT> class TT, 11 class U = TT<int, C> > 12 struct S 13 { 14 void foo(TT<T, C>); 15 }; 16 17 template<class T, 18 template<class TT_T0, template<class TT_T1> class TT_TT> class TT, 19 class U> 20 void foo(TT<T,C>)21S<T, TT, U>::foo(TT<T, C>) 22 { 23 } 24