Compiler Error C3393

syntax error in constraint clause: 'identifier' is not a type

The identifier passed to a constraint, which must be a type, was not a type. For more information, see Constraints on Generic Type Parameters (C++/CLI).

Example

The following sample generates C3393:

// C3393.cpp
// compile with: /clr /c
void MyInterface() {}
interface class MyInterface2 {};

generic<typename T>
where T : MyInterface   // C3393
// try the following line instead
// where T : MyInterface2
ref class R {};