'class': a class that is declared as '__abstract' cannot be a value type nor can it be declared as '__sealed'
A class or struct marked with the __abstract keyword cannot also be marked with __sealed or __value.
The following sample generates C3629:
#using <mscorlib.dll> using namespace System; __abstract __value class AB { // C3629, remove __value }; __abstract __value struct AS { // C3629, remove __value }; __abstract __sealed class SC { // C3629, remove __sealed }; __abstract __sealed struct SS { // C3629, remove __sealed }; void main() { }