我有一个静态 const 成员,想将其设置为最大整数。我正在尝试以下操作:
const static int MY_VALUE = std::numeric_limits<int>::max();
但是得到以下错误:
错误:静态数据成员的类内初始化程序不是常量表达式
有什么解决办法吗?函数如何不返回常量表达式?
编辑:添加 -std=c++11 解决了这个问题。我的室友告诉我,编译器(C++11 之前)不够聪明,无法决定 std::numeric_limits::max() 不会改变其他任何东西,因此不被认为是常量。这可能是这个错误的原因吗?