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