首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >numeric_limits问题

numeric_limits问题
EN

Stack Overflow用户
提问于 2010-11-24 12:22:02
回答 3查看 1.3K关注 0票数 5

为什么这不管用?

代码语言:javascript
复制
enum : long {MaxValue = std::numeric_limits<long int>::max()};

我得到了错误:错误1错误C2057:预期常量表达式

它有什么不固定的?在编译时就知道了长int的限制,那么问题是什么呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-24 12:24:38

问题是,尽管std::numeric_limits<long int>::max()函数返回常量值,但它是在运行时中调用的,并且在编译时需要常量值。

您可能只需要使用LONG_MAX值(请参阅气候头)?

票数 5
EN

Stack Overflow用户

发布于 2010-11-24 12:28:50

正如另一个人所说的,您需要一个常量表达式(函数没有限定条件)。最终,C++1x将支持更广泛的常量表达式,包括函数。见n2235和Bjarne的常见问题条目

票数 3
EN

Stack Overflow用户

发布于 2010-11-24 12:24:58

是的,但是函数不能在编译时执行。max()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4266691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档