Partager via


Erreur du compilateur C2764

'param' : paramètre de modèle non utilisé ou déduisable dans la spécialisation partielle 'spécialisation'

Un paramètre de modèle n’est pas utilisé dans une spécialisation partielle. Cela rend la spécialisation partielle inutilisable, car le paramètre de modèle ne peut pas être déduit.

Exemple

L’exemple suivant génère l’erreur 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);
}