Compiler Error C3612

'type': a sealed class cannot be abstract

Types defined with value (or __value) are sealed by default and a class is abstract unless it implements all methods of its base. A sealed abstract class can neither be a base class nor can it be instantiated.

For more information, see Classes and Structs (Managed).

The following sample generates C3612:

// C3612.cpp
// compile with: /clr /c
value struct V: public System::ICloneable {};   // C3612

// OK
value struct V2: public System::ICloneable {
   Object^ Clone();
};