繁体   English   中英

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

[英]Questions about C++20 two's-complement proposal R4

我正在阅读二进制补码提案的修订版 4(由 C++20 采用),我有一些问题。

在介绍中,它说:

  • 现状签名 integer 算术通常保持不可交换(尽管某些实现可能保证它是)。

它是否真的意味着“非交换”,如a + bb + a 还是应该读作“非关联”?

它还说:

  • 从有符号到无符号的更改转换始终是明确定义的:结果是与源 integer 模 2^N 一致的目标类型的唯一值。

有符号到无符号的转换不是从一开始就以这种方式明确定义的吗? 那应该是“从无符号转换为有符号”吗?

更改列表中是否还有其他缺失或错误陈述的内容?

请注意,采用的不是 P0907 而是P1236


还是应该读作“非关联”?

是的。

那应该是“从无符号转换为有符号”吗?

是的。 如果您查看P1236R1 ,您可以看到规则从:

如果目标类型是无符号的,则结果值是与源 integer 一致的最小无符号 integer(模 2 n ,其中 n 是用于表示无符号类型的位数)。

如果目标类型是有符号的,则如果它可以在目标类型中表示,则值不变; 否则,该值是实现定义的。

至:

否则,结果是与源 integer 模 2 N一致的目标类型的唯一值,其中 N 是目标类型的范围指数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM