【发布时间】:2017-09-26 07:15:23
【问题描述】:
max()模板根据Stepanov Notes故意返回
b<a?a:b
而不是
a<b?b:a
确保即使两个值相等但不相等,函数也能正确运行 这里解释的很少,但还是看不懂 http://stepanovpapers.com/notes.pdf(第 63 页)
我想不出两个值相等但不相等的用例
【问题讨论】:
-
不确定它是否适用于此,但
NaN不等于NaN。 -
在您链接的文档中,“相等”(或“平等”)一词仅出现在第 57 页,然后又出现在第 68 页。我不确定您在引用什么在这里。
-
如果你覆盖了
operator<。因此,两个实例可能不同,但有一个字段相同,并且在重载运算符中使用。所以它们返回等效,但实际上并不相等,返回哪一个很重要。 sean parent 给出的展示这个微妙错误的示例是实现 clamp 函数。 -
@mkrieger1 感谢您提供我正在寻找的链接
-
现在复制一个副本,你们正在努力! (不知道我们多久会得到重复循环)
标签: c++