Compartir a través de


Error del compilador C3860

la lista de argumentos de tipo que sigue al nombre de tipo de clase debe enumerar los parámetros en el orden usado en la lista de parámetros de tipo

Una lista de argumentos genéricos o de plantilla tenía un formato incorrecto.

El ejemplo siguiente genera el error 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

Posible solución:

// C3860b.cpp
// compile with: /c
template <class T1, class T2>
struct A {
   void f();
};

template <class T2, class T1>
void A<T2, T1>::f() {}

El error C3860 se puede producir también cuando se usan 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

Posible solución:

// 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() {}