Windows C++ Compiler and Sealed or abstract unions

The sealed or abstract unions are not allowed by C++ language.  The Intel C++ compiler 11.x or Intel Parallel Composer will issue an error when attempting to define a sealed or abstract union.  For example:


// tst_sealed.cpp

int foo()
int a = 0;
union U sealed {}; // now an error
return a;


[shell]>>icl /c tst_sealed.cpp Intel® C++ Compiler Professional for applications running on IA-32, Version 11.1 Build 20090511 Package ID: w_cproc_p_11.1.035 Copyright (C) 1985-2009 Intel Corporation. All rights reserved. tst_sealed.cpp tst_sealed.cpp(6): error: a union cannot be abstract or sealed union U sealed {}; ^ compilation aborted for tst_sealed.cpp (code 2)[/shell]
For more complete information about compiler optimizations, see our Optimization Notice.