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