Erreur du compilateur C2896
'function1' : impossible d’utiliser le modèle de fonction 'function2' comme argument
Un modèle de fonction ne peut pas être un argument d’un autre modèle de fonction.
Cette erreur est obsolète dans Visual Studio 2022 et versions ultérieures.
L’exemple suivant génère l’erreur C2896 :
// C2896.cpp
template<class T1, class T2> void f1(void(*)(T1, T2));
template<class T1, class T2> void f2(T1, T2);
int main() {
f1(f2); // C2896
}
L’erreur C2896 peut également se produire lorsque vous utilisez des génériques :
// C2896b.cpp
// compile with: /clr
generic<class T1> void gf1(T1){}
generic<class T1> void gf2(T1){}
int main() {
gf1(gf2); // C2896
gf1(1); // OK
}