Teilen über


Compilerfehler C3855

'class': Der Typparameter 'param' ist mit der Deklaration nicht kompatibel.

Bemerkungen

Der Compiler hat keine Typvorlage oder generische Parameter mit unterschiedlichen Namen gefunden. Dies kann auftreten, wenn ein angegebener Vorlagenparameter in der Definition einer Vorlagenspezialisierung mit seiner Deklaration nicht kompatibel ist.

Examples

Im folgenden Beispiel wird C3855 generiert:

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

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

Mögliche Lösung:

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

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

C3855 kann auch bei Verwendung von Generika auftreten:

// 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

Mögliche Lösung:

// 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 { };