Erro do compilador C3860
a lista de argumentos de tipo que vem após o nome do tipo da classe precisa listar parâmetros na ordem usada na lista de parâmetros de tipo
Uma lista de argumentos genéricos ou de modelo foi mal formada.
O seguinte exemplo gera o erro 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
Resolução possível:
// C3860b.cpp
// compile with: /c
template <class T1, class T2>
struct A {
void f();
};
template <class T2, class T1>
void A<T2, T1>::f() {}
O erro C3860 também pode ocorrer ao usar genéricos:
// 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
Resolução possível:
// 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() {}