为什么这不管用?
enum : long {MaxValue = std::numeric_limits<long int>::max()};我得到了错误:错误1错误C2057:预期常量表达式
它有什么不固定的?在编译时就知道了长int的限制,那么问题是什么呢?
发布于 2010-11-24 12:24:38
问题是,尽管std::numeric_limits<long int>::max()函数返回常量值,但它是在运行时中调用的,并且在编译时需要常量值。
您可能只需要使用LONG_MAX值(请参阅气候头)?
发布于 2010-11-24 12:28:50
正如另一个人所说的,您需要一个常量表达式(函数没有限定条件)。最终,C++1x将支持更广泛的常量表达式,包括函数。见n2235和Bjarne的常见问题条目。
发布于 2010-11-24 12:24:58
是的,但是函数不能在编译时执行。max()
https://stackoverflow.com/questions/4266691
复制相似问题