std::uintmax_t
C++ 標準は、 のすべての値を保持できることを(明示的に宣言するか、論理演繹によって暗黙的に) 保証しますstd::size_t
か?
または、std::numeric_limits<std::size_t>::max()
より大きいことは可能std::numeric_limits<std::uintmax_t>::max()
ですか?
はい。
size_t
任意のオブジェクトのサイズを格納するのに十分な大きさの符号なし整数型として定義されています。uintmax_t
符号なし整数型の任意の値を格納できるように定義されています。ですから、size_t
収納できるなら収納uintmax_t
できます。
size_t
C++11 §18.2 からの定義:
型 size_t は、任意のオブジェクトのバイト単位のサイズを格納するのに十分な大きさの実装定義の符号なし整数型です。
uintmax_t
C99 §7.18.1.5 からの定義(規範的参照により C++ に含まれています):
次の型は、任意の符号なし整数型の任意の値を表すことができる符号なし整数型を指定します。
uintmax_t