// { dg-do compile } template<template<class> class D,class E> class C { public: int g() { return 1; } }; template<class T> class D { public: int f(); }; template<class T> int D<T>::f() { C<D,D> c; // { dg-error "" } return c.g(); // { dg-error "" } } int main() { D<char> d; d.f(); }