对于每个标量“T”,是否有任何保证存在相同大小的整数

For each scalar `T`, is there any guarantee an integer of the same size exists?

本文关键字:存在 整数 任何保 标量 于每个 是否      更新时间:2023-10-16

如果T是标量类型,而N = CHAR_BIT * sizeof(T),那么uintN_t是否保证存在?如果不是,在大多数情况下是真的吗?但在少数例外情况下是这样吗?(脑海中浮现出long double和成员函数指针。)

供参考

  • intN_tuintN_t

    • N1548§7.20.1.1¶3:"这些类型是可选的。但是,如果一个实现提供宽度为8、16、32或64位的整数类型,没有填充位,并且(对于有符号类型)具有2的补码表示,则它应该定义相应的typedef名称。"
  • scalar types

    • N3242§3.9¶9:"算术类型、枚举类型、指针类型、指向成员的指针类型、std::nullptr_t以及这些类型的cv限定版本统称为标量类型。"

类型uintX_t是可选的,因此不能保证在您的实现中会有任何类型除此之外,没有关于标量对您意味着什么的精确定义

许多处理器和/或编译器实现的long double类型比任何整数类型都大,而不管名称如何,还有一些处理器具有32字节指针。

因此,没有