Compilerfehler C3390
Aktualisiert: November 2007
Fehlermeldung
'type_arg': Ungültiges Typargument für den generischen Parameter 'param' von 'generic_type' (generisch). Muss ein Referenztyp sein
'type_arg' : invalid type argument for generic parameter 'param' of generic 'generic_type', must be a reference type
Ein generischer Typ wurde falsch instanziiert. Überprüfen Sie die Typdefinition. Weitere Informationen finden Sie unter Generics (Visual C++).
Beispiel
Im folgenden Beispiel wird in C# eine Komponente erstellt, die einen generischen Typ enthält. Bestimmte Beschränkungen werden nicht unterstützt, wenn generische Typen in Visual C++ 2005 erstellt werden. Weitere Informationen finden Sie unter Einschränkungen für Typparameter (C#-Programmierhandbuch).
// C3390.cs
// compile with: /target:library
// a C# program
public class GR<C, V, N>
where C : class
where V : struct
where N : new() {}
Im folgenden Beispiel wird C3390 generiert.
// C3390_b.cpp
// compile with: /clr
#using <C3390.dll>
ref class R { R(int) {} };
value class V {};
ref struct N { N() {} };
int main () {
GR<V, V, N^>^ gr2; // C3390 first type must be a ref type
GR<R^, V, N^>^ gr2b; // OK
}