以下は許可されていません ('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 を認識できるようにしたいと考えています (たとえば、コンパイラがより適切に最適化できるようにするため)。