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