Delen via


Compilerfout C3855

'klasse': typeparameter 'param' is niet compatibel met de declaratie

Opmerkingen

De compiler heeft een niet-typesjabloon of algemene parameters met verschillende namen gevonden. Dit kan gebeuren wanneer een opgegeven sjabloonparameter in de definitie van een sjabloonspecialisatie niet compatibel is met de declaratie.

Voorbeelden

In het volgende voorbeeld wordt C3855 gegenereerd:

// C3855.cpp
template <int N>
struct C {
   void f();
};

template <char N>
void C<N>::f() {}   // C3855

Mogelijke oplossing:

// C3855b.cpp
// compile with: /c
template <int N>
struct C {
   void f();
};

template <int N>
void C<N>::f() {}

C3855 kan ook optreden bij het gebruik van generics:

// C3855c.cpp
// compile with: /clr
generic <class T>
ref struct GC1 {
   generic <class U>
   ref struct GC2;
};

generic <class T>
generic <class U>
generic <class V>
ref struct GC1<T>::GC2 { };   // C3855

Mogelijke oplossing:

// C3855d.cpp
// compile with: /clr /c
generic <class T>
ref struct GC1 {
   generic <class U>
   ref struct GC2;
};

generic <class T>
generic <class U>
ref struct GC1<T>::GC2 { };