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 DD,class EE> class C : DD<EE>
14 {
15 	public:
16 		int f();
17 };
18 
f()19 template<template<class> class DD,class EE> int C<DD,EE>::f()
20 {
21 	return DD<EE>::f();
22 }
23 
24 class E : C<D,int>
25 {
26 	public:
f()27 		int f() { return C< ::D,int>::f(); }
28 };
29 
main()30 int main()
31 {
32 	E c;
33 	c.f();
34 }
35