Błąd kompilatora C2764Compiler Error C2764

"param": parametr szablonu nie został użyty lub dający się wywieźć w częściowej specjalizacji "'param' : template parameter not used or deducible in partial specialization 'specialization'

Parametr szablonu nie jest używany w częściowej specjalizacji.A template parameter is not used in a partial specialization. To sprawia, że Częściowa specjalizacja jest bezużyteczna, ponieważ nie można wywnioskować parametru szablonu.This makes the partial specialization unusable because the template parameter cannot be deduced.

PrzykładExample

Poniższy przykład generuje C2764:The following sample generates 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);
}