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