LoginSignup
2
1

More than 3 years have passed since last update.

msvc で 32bit を超える enum 型が定義できない(バグ?)

Posted at

MSVC のバグ?

MSVC で定義できる enum 型 T は sizeof(T) == 4 までのようです。(Visual Studio 2019 16.3.1 で確認)

#include <iostream>
#include <limits>

enum T {
    A = std::numeric_limits<unsigned long long>::max(),
};

int main(int argc, char** argv) {
    std::cout << "A: " << A << '\n';
    std::cout << "sizeof(T): "  << sizeof(T) << '\n';
}
実行結果
A: -1
sizeof(T): 4

もちろん、g++ と clang は期待通りの結果 sizeof(T) == 8 になります。

2
1
7

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1