1// { dg-do run  }
2template<class T> class D
3{
4	T	a;
5	public:
6		int f();
7};
8
9template<class T> int D<T>::f()
10{
11	return sizeof(T);
12}
13
14template<class E,template<class> class DD = D> class C
15{
16		DD<E> d;
17	public:
18		int f();
19};
20
21template<class E,template<class> class DD> int C<E,DD>::f()
22{
23	DD<E> d2;
24	return d2.f();
25}
26
27int main()
28{
29	C<int> c;
30	c.f();
31}
32