spec20.C   [plain text]


// Build don't link:

// 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); // ERROR - invalid specialization

  template <class V> struct I {};
  template <class V> struct I<V*> {};
  template <> struct I<int>; // ERROR - invalid specialization
};