【发布时间】:2014-05-24 22:57:06
【问题描述】:
enum MyEnum
{
SOME_NAME = 2147483648;
};
...
enum_<MyEnum>("MyEnum")
.value("SOME_NAME", SOME_NAME)
;
虽然此编译正常,但它在初始化时崩溃,因为 enum_ 将值转换为“long”,仅限于 2147483647。我需要他们长时间未签名。有什么方法可以做到这一点而不必创建整个枚举包装器?
谢谢!
【问题讨论】:
-
我之前在 SO 上看到过对此问题的解释。你搜索了吗?
-
C++ 允许您将枚举隐式转换为 int,而不是 unsigned int。您的最大值为 INT_MAX。
-
@ScottM:我不能奖励评论。
标签: python boost enums crash max