C++标准是否保证(通过明确说明或通过逻辑推导隐式)std::uintmax_t可以保存所有值std::size_t?
或者是否可能std::numeric_limits<std::size_t>::max()大于std::numeric_limits<std::uintmax_t>::max()?
Jos*_*eld 30
是.
size_t被定义为无符号整数类型,其大小足以包含任何对象的大小.uintmax_t被定义为能够存储任何无符号整数类型的任何值.因此,如果size_t可以存储它,uintmax_t可以存储它.
size_t来自C++11§18.2的定义:
类型size_t是一个实现定义的无符号整数类型,它足够大,可以包含任何对象的字节大小.
uintmax_t来自C99§7.18.1.5的定义(通过规范性引用包含在C++中):
以下类型指定无符号整数类型,能够表示任何无符号整数类型的任何值:
Run Code Online (Sandbox Code Playgroud)uintmax_t
| 归档时间: |
|
| 查看次数: |
1572 次 |
| 最近记录: |