|
|
1
26
C++标准的各个版本以及问题中引用的最新草案中的措辞都发生了变化。(有关血腥的细节,请参阅我对这个问题的评论。) C++11说:
C++17说:
问题中引用的最新草案说:
这一变化是为了回应 issue 说“比较大”这个词是不必要的混淆。 如果你看看标准草案中的周围环境,很明显,在其余情况下,结果是 未指定 引用[expr.rel](斜体文本是我的总结):
因此,结果
|
|
2
7
对于提供的代码,此情况适用:
没有提到UB,因此严格阅读“两者都不需要”表明,每次评估比较的结果都可能不同。 这意味着程序可以有效地输出以下任何结果:
|
|
|
3
4
对。 标准中没有任何地方说这是UB或格式不正确的,而且这种情况也不缺乏描述行为的规则,因为引用的4.3适用。
我不确定10或01在技术上是否保证不会输出 1. . 鉴于此 两个指针都不需要比另一个指针更大 ,比较结果可以是true或false。在这种情况下,似乎没有明确要求对相同操作数的每次调用的结果都是相同的。 1. 但我认为这在实践中不太可能。我也认为,让这种可能性保持开放并不是故意的。相反,其目的是允许确定性,但不一定是全序。 附笔。
将保证为11或00,因为
|
|
|
4
2
|
|
Paul J. Lucas · _C中任意大小的原子结构体赋值? 1 年前 |
|
|
nore · 为什么C标准禁止在源文件末尾使用部分预处理令牌? 1 年前 |
|
Gene · 是否允许使用受约束的别名模板? 1 年前 |
|
|
yg-i · C的“基本执行字符集”中的字符总数究竟是多少? 2 年前 |