Erreur du compilateur C3860
la liste d’arguments de type suivant le nom de type de classe suivant doit répertorier les paramètres dans l’ordre utilisé dans la liste des paramètres de type
Une liste d’arguments générique ou modèle a été mal formée.
L’exemple suivant génère l’erreur C3860 :
// C3860.cpp
// compile with: /LD
template <class T1, class T2>
struct A {
void f();
};
template <class T2, class T1>
void A<T1, T2>::f() {} // C3860
Résolution possible :
// C3860b.cpp
// compile with: /c
template <class T1, class T2>
struct A {
void f();
};
template <class T2, class T1>
void A<T2, T1>::f() {}
C3860 peut également se produire lors de l’utilisation de génériques :
// C3860c.cpp
// compile with: /clr
generic<class T,class U>
ref struct GC {
void f();
};
generic<class T, class U>
void GC<T,T>::f() {} // C3860
Résolution possible :
// C3860d.cpp
// compile with: /clr /c
generic<class T,class U>
ref struct GC {
void f();
};
generic<class T, class U>
void GC<T,U>::f() {}