Erro do Compilador C3218
'type' : tipo não permitido como restrição
Para que um tipo seja uma restrição, ele deve ser um tipo de valor ou referência a uma classe gerenciada ou interface.
Exemplo
O seguinte exemplo gera o erro C3218.
// C3218.cpp
// compile with: /clr /c
class A {};
ref class B {};
// Delete the following 3 lines to resolve.
generic <class T>
where T : A // C3218
ref class C {};
// OK
generic <class T>
where T : B
ref class D {};