Поделиться через


Ошибка компилятора C3214

"тип": недопустимый аргумент типа для универсального параметра "param" универсального типа "универсальный_тип", не соответствует ограничению "ограничение"

Для создания экземпляра универсального класса указан тип, который не соответствует ограничению универсального класса.

Следующий пример приводит к возникновению ошибки C3214:

// C3214.cpp
// compile with: /clr
interface struct A {};

generic <class T>
where T : A
ref class C {};

ref class X : public A {};

int main() {
   C<int>^ c = new C<int>;   // C3214
   C<X ^> ^ c2 = new C<X^>;   // OK
}