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;