// { dg-do run } template class D { public: int f(); }; template int D::f() { return sizeof(T); } template class D,class E> class C { D d; public: template class F> int f(F); }; template class D,class E> template class F> int C::f(F) { F d2; return d2.f(); } int main() { C c; D d; c.f(d); }