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


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

"параметр": универсальный параметр нельзя ограничить в этом объявлении

Ограничение неправильно сформировано; универсальный параметр ограничения должен соответствовать параметру шаблона универсального класса.

При компиляции следующего примера возникнет ошибка C3217:

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

generic <class T>
ref class C {
   generic <class T1>
   where T : A   // C3217
   void f();
};

В следующем примере показано возможное решение:

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

generic <class T>
ref class C {
   generic <class T1>
   where T1 : A
   void f();
};