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