通过EASTL,我偶然发现了一段奇怪的代码。以下链接显示的文件的行号为1870。

https://github.com/paulhodge/EASTL/blob/master/include/EASTL/algorithm.h

该行的代码是if(!(value < *i))。评论说:“我们总是用
编写这样的比较有什么好处(也许我忽略了某些情况)?如果不是,为什么EASTL的作者故意以这种特殊方式编写它,甚至会谨慎地对此发表评论?一致性是这里的唯一原因吗?

最佳答案

这意味着您只需要为容器值类型提供<==。这也意味着您减少了这些类型的可变性(因为所有算法都使用!(a<b)表示a>=b!(a==b)表示a!=b);否则,您可能会让>=!=返回不一致的结果。

10-08 03:58