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