代码之家  ›  专栏  ›  技术社区  ›  pythonic metaphor

具有64位基础整数的枚举

  •  2
  • pythonic metaphor  · 技术社区  · 15 年前

    我正在使用gcc,它在我拥有的体系结构上实现32位整数枚举(一般不知道)。如果我试图分配的枚举值太大,我会得到

    warning: integer overflow in expression

    有没有办法使gcc使用64位整数作为基础整数类型?gcc特有的方法很好,不过如果有一种可移植的方法,那就更好了。

    这是一个相关的帖子: 64 bit enum in C++?

    2 回复  |  直到 9 年前
        1
  •  1
  •   Arun    15 年前

    以下内容适合我 -std=c++0x -std=c++98 虽然

    enum EnumFoo {
        FooSomething = 0x123456789ULL
    };
    

    $ g++ --version
    g++ (Ubuntu 4.4.3-4ubuntu5) 4.4.3
    
        2
  •  0
  •   justin    15 年前

    一个选项:使用 static const 特定类型的成员。

    例如 std::tr1::integral_constant ,在GNU分布中用c++/tr1/type撸traits声明(至少是我正在使用的)。

    对于枚举值:您的声明可能很重要(例如,使用 U , L 视情况而定)