blob: 51bc26906eb72019dcd2db4f169c0250d4017d5c [file] [log] [blame]
// { 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 <class T>
struct S {
template <class U> void f(U);
template <> void f<int>(int); // { dg-error "20:template-id .f<int>. in declaration|explicit specialization" }
template <class V> struct I {};
template <class V> struct I<V*> {};
template <> struct I<int>; // { dg-error "" } invalid specialization
};