为什么这不起作用?
enum : long {MaxValue = std::numeric_limits<long int>::max()};
我收到错误:错误 1 错误 C2057:预期的常量表达式
它有什么不恒定的?long int 的限制在编译时是已知的,那么问题是什么?
问题是虽然std::numeric_limits<long int>::max()
函数返回常量值,但它是在运行时调用的,并且您需要在编译时使用常量值
也许您可以只使用LONG_MAX
value 代替(请参阅climits标题)?
是的,但函数不能在编译时执行。max()