User and Reference Guide for the Intel® C++ Compiler 14.0
The Intel® C++ Compiler and the Microsoft Visual C++* compiler differ in how they attribute signedness to bit fields declared with an enum type. Apparently, Microsoft Visual C++ always considers enum bit fields to be signed, even if not all values of the enum type can be represented by the bit field. On the other hand, the Intel C++ Compiler considers an enum bit field to be unsigned, unless the enum type has at least one enum constant with a negative value. In any case, the Intel C++ Compiler produces a warning if the bit field is declared with too few bits to represent all the values of the enum type.