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