インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

enum ビット・フィールドの符号の有無

インテル® C++ コンパイラーと Microsoft* Visual C++* コンパイラーでは、enum 型で宣言されたビット・フィールドの符号の有無の判定方式が異なります。Microsoft* Visual C++* は、enum 型の値の一部がそのビット・フィールドで表現できない場合であっても、常に enum ビット・フィールドを符号付きとみなします。

反対に、インテル® C++ コンパイラーは、enum 型が少なくとも 1 つの負の値の enum 定数を含む場合を除いて、enum ビット・フィールドを符号なしとみなします。enum 型の値をすべて表現するには少なすぎるビット数でこのビット・フィールドを宣言している場合は、必ずインテル® C++ コンパイラーから警告メッセージが生成されます。