Could not deduce template argument & pointer to member
I am encountering the C2783 error with Visual C++ (could not deduce template argument), I have the following test case: enum SPKType { A, B, C, D }; template<SPKType TypeCode, class ObjectType, typename U> struct SPKSetterPattern { typedef void (ObjectType::* func)(U); }; template<class ObjectType, typename U> struct SPKSetterPattern<B,ObjectType,U> { typedef void (ObjectType::* func)(U,U); }; template<class ObjectType, typename U> struct SPKSetterPattern<C,ObjectType,U> { typedef void (ObjectType::* func)(U,U,U); }; template<class ObjectType, typename U> struct SPKSetterPattern<D,ObjectType,U