// { dg-do compile { target c++11 } } template struct S0 {}; template using AS0 = S0; template class TT> void f(TT); template class AS0; // { dg-error "alias templ\[^\n\r\]*specialization\[^\n\r\]*after\[^\n\r\]*class" } void foo() { AS0 a; f(a); } template struct Vector{}; template struct Alloc {}; template using Vec = Vector >; template void g(Vector >); template class TT> void h(TT); // { dg-error "provided for" } void bar() { Vec a; g(a); h(a); // { dg-error "no matching function|wrong number of template arguments" } }