Listing 12

generic <typename T>
    where T : ValueType
public ref class Vector
{ ... };
value class C {};

/*1*/   Vector<int>^ iv;
/*2*/   Vector<String^>^ sv;        // error
/*3*/   Vector<DateTime>^ dv;
/*4*/   Vector<Vector<int>^>^ viv;  // error
/*5*/   Vector<C>^ cv;