なぜこれが機能しないのですか?
enum : long {MaxValue = std::numeric_limits<long int>::max()};
エラーが発生しました:エラー1エラーC2057:期待される定数式
それについて定数ではないものは何ですか?long intの制限はコンパイル時にわかっているので、何が問題なのでしょうか。
問題は、std::numeric_limits<long int>::max()
関数は定数値を返しますが、実行時に呼び出され、コンパイル時に定数値が必要になることです。
LONG_MAX
おそらく、代わりに値を使用できますか( climitsヘッダーを参照)?
はい。ただし、コンパイル時に関数を実行することはできません。max()