关于C++20二进制补码提案R4的问题

8

我正在阅读C++20采用的“二进制补码提案”的第四版修订稿并有一些问题。

在介绍中,它说:

  • 现状,有符号整数算术在一般情况下仍然是非交换的(尽管某些实现可能保证是)。

这里的“非交换”是真正意义上的“非交换”,比如a + bb + a吗?还是应该写成“非结合”的?

它也说:

  • 变化,从有符号数到无符号数的转换始终是良定义的:结果是源整数模2^N同余于目标类型的唯一值。

自古以来,从有符号数到无符号数的转换不就是按照这种方式良定义的吗?应该写成“从无符号数到有符号数的转换”吗?

在变更列表中是否还有其他遗漏或错误的地方?


我投票关闭此问题,因为该问题不太可能对除了特定论文作者之外的任何人有所帮助,即使是对于作者本人也不会有帮助,因为该设计已经被P1236采纳并纳入C++20中。 - Barry
像是,它应该被标记为非关联性,更改是从无符号到有符号。 - Barry
2
那只是两个笔误...有时候我们必须接受人类会犯错误。 - L. F.
@Barry 如果其他人能够找到这些问题并意识到他们不是唯一在问这些问题的人,那么这些问题就会很有帮助。 - curiousguy
1个回答

2
请注意,被采纳的不是 P0907,而是 P1236
“非关联性”是否更合适?是的。
“从无符号到有符号的转换”是否更合适?是的。如果您查看P1236R1,您会发现规则已经改变为:
否则,结果是与源整数模2^N同余的目标类型的唯一值,其中N是目标类型的范围指数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接