【问题标题】:Boost Python enum_ max value issuesBoost Python枚举_最大值问题
【发布时间】:2014-05-24 22:57:06
【问题描述】:
enum MyEnum
{
    SOME_NAME = 2147483648;
};

...

enum_<MyEnum>("MyEnum")
    .value("SOME_NAME", SOME_NAME)
;

虽然此编译正常,但它在初始化时崩溃,因为 enum_ 将值转换为“long”,仅限于 2147483647。我需要他们长时间未签名。有什么方法可以做到这一点而不必创建整个枚举包装器?

谢谢!

【问题讨论】:

标签: python boost enums crash max


【解决方案1】:

C++ 允许您将enum 隐式转换为int,而不是unsigned int。您的上限为 INT_MAX 作为最大值。此外,您必须强制转换 int(或经过符号转换的 unsigned int)才能将其转换回 enum

【讨论】:

    【解决方案2】:

    你能不能输入long long 而不是long,或者unsigned long 也可能是unsigned long long

    来源:https://msdn.microsoft.com/en-us/library/s3f49ktz.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-17
      • 2019-07-21
      • 1970-01-01
      • 2010-09-14
      • 1970-01-01
      • 2010-12-17
      相关资源
      最近更新 更多