Error del compilador C2764

'parámetro': parámetro de plantilla no utilizado o deducible en la especialización parcial 'especialización'

Un parámetro de plantilla no se usa en una especialización parcial. Esto hace que la especialización parcial no se pueda usar, porque no se puede deducir el parámetro de plantilla.

Ejemplo

El ejemplo siguiente genera el error C2764:

// 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);
}