Compilerfehler C2764

'Parameter': Vorlagenparameter wurde in teilweiser Spezialisierung 'Spezialisierung' nicht verwendet oder ist nicht ableitbar

Ein Vorlagenparameter wird in einer teilweisen Spezialisierung nicht verwendet. Dadurch wird die teilweise Spezialisierung unbrauchbar, da der Vorlagenparameter nicht abgeleitet werden kann.

Beispiel

Im folgenden Beispiel wird C2764 generiert:

// C2764.cpp
#include <stdio.h>
template <class T1, class T2>
struct S  {
   int m_i;
};

template <class T1, class T2>
struct S<int, T2*> {   // C2764
// try the following line instead
// struct S<T1(*)(T2), T2*> {
   char m_c;
};

int main() {
   S<int, char> s1;
   S<void (*)(short), short *> s2;
   s2.m_c = 10;
   s1.m_i = s2.m_c;
   printf_s("%d\n", s1.m_i);
}