たとえば、VS2010 で厳密に型指定された列挙型を使用すると、次のようになります。
enum eTest : long long
{
_test1 = 0x0000000000000001,
_test2 = 0x0000000000000002,
};
次の警告が表示されます。
http://msdn.microsoft.com/en-us/library/ms173702.aspx
非標準の拡張機能が使用されています: 列挙型 'enum' の基になる型を指定しています
どうしてこれなの?VS2010 は C++11 をサポートしていると思いましたか? また、64-32 ビット VS2010 コンパイラ間で 64 ビット ベースの列挙型は安全ですか?
編集:
私の質問の 2 番目の部分について: 32 ビットをターゲットにしているときに 64 ビット列挙型のビット フラグを OR するとコンパイラ エラーが発生したため、32 ビットと 64 ビットの違いについて尋ねました。ただし、その理由は、Microsoft のコード分析を有効にすると、これが壊れるためであることがわかりました。