c++ - P1236R1:为什么 c++ 标准在定义整数时试图远离“位”这个词?
问题描述
根据P1236R1,现在整数类型是用数字定义的,而不是用位定义的。
type minimum range exponent N
signed char 8
short 16
int 16
long 32
long long 64
C++ 没有定义标准仍然缺乏的“位”的含义,而是选择不这样做,而是在术语中定义这些类型range exponent
。
为什么?
为什么最好不要依赖“位”这个词?
该提案中的“不可观察位”是什么?
P1236R1 是C++20 的一部分
解决方案
根据 ISO 规则,ISO C++ 委员会的审议是私人的,不能与整个编程社区共享。委员会已就此事发布了以下信息(第 1857 期):
2014 年 6 月会议记录:
CWG 决定重新制定对操作本身的描述以避免提及位,将定义“位”等更大的问题拆分到 1943 年以供进一步考虑。
问题 1861包含类似的语言。
我没有出席这次会议,但bit已经在ISO/IEC 2382(这是 C++ 标准的规范性参考)中有一个定义:
少量
二进制数字
在二进制系统中使用数字 0 或 1
这个定义显然不适合 C++ 标准中的许多潜在用途,例如谈论符号位(表示类型/字中特定位置的位)或整数类型的宽度(以位为单位) 。
推荐阅读
- python - 为什么这个客户端-服务器系统不工作(简单)
- mysql - Mysql,新的基于区域磁盘的 HA 升级完成。我现在可以禁用 GTID 吗?
- angular - 如何将数据从 MongoDB 转换为适合 ngrx entityCache?
- javascript - 从具有随机类名的html中提取数据
- python - 我正在尝试创建一个没有任何括号、引号或逗号的干净 5x5 网格
- javascript - 将类转换为函数
- python - org.apache.spark.SparkException:Python 工作者意外退出(崩溃)
- javascript - 如何不做
标签 - haskell - Haskell:如果 x > 0,则将唯一字符分配给矩阵值
- shell - ls -l 是否以块或字节为单位打印文件大小?