// { dg-do assemble } // According to the non-normative example in // [temp.class.spec.mfunc]/2, these should be valid, but the grammar // in the Standard does not allow partial nor full specializations as // member-declarations, so we'd better not support them. template struct S { template void f(U); template <> void f(int); // { dg-error "" } invalid specialization template struct I {}; // { dg-error "template" } template struct I {}; // { dg-error "template" } template <> struct I; // { dg-error "" } invalid specialization };