'construct' : destructors and copy constructors are not allowed in a value-type
Value type objects are allocated on the stack and have predefined copy constructors that perform binary copy operations. You cannot define copy constructors so that copying is done differently.
The following sample generates C3158:
#using <mscorlib.dll> __value class C { ~C(); // C3158 C(const C& c); // C3158 }; void main() { }