11556Srgrimes// { dg-do run } 21556Srgrimestemplate<class T> class D 31556Srgrimes{ 41556Srgrimes T a; 51556Srgrimes public: 61556Srgrimes int f(); 71556Srgrimes}; 81556Srgrimes 91556Srgrimestemplate<class T> int D<T>::f() 101556Srgrimes{ 111556Srgrimes return sizeof(T); 121556Srgrimes} 131556Srgrimes 141556Srgrimestemplate<template<class> class D,class E> class C 151556Srgrimes{ 161556Srgrimes D<E> d; 171556Srgrimes public: 181556Srgrimes int f(); 191556Srgrimes}; 201556Srgrimes 211556Srgrimestemplate<template<class> class D,class E> int C<D,E>::f() 221556Srgrimes{ 231556Srgrimes D<E> d2; 241556Srgrimes return d2.f(); 251556Srgrimes} 261556Srgrimes 271556Srgrimesint main() 281556Srgrimes{ 291556Srgrimes C<D,int> c; 301556Srgrimes c.f(); 311556Srgrimes} 32127499Sgad