以下是不允许的('std::numeric_limits::max()' 不能出现在常量表达式中):
#include <limits>
struct MyStruct {
private:
static const unsigned int INVALID_VALUE = std::numeric_limits<unsigned int>::max();
public:
unsigned int index;
inline MyStruct() : index(INVALID_VALUE) {}
};
这可能是获得所需行为的最佳方式?如果可能的话,我希望在编译时知道 INVALID_VALUE(例如,允许编译器进行更好的优化)。