// Contributed by Dodji Seketeli // { dg-do compile } template struct C { void bar(); }; template void C::bar() { } template class TT0 = C, template class TT1 = TT0> struct S { C s; void foo(TT1); void bar() { foo(s); } }; template class TT0, template class TT1> void S::foo(TT1) { C c; }