在 C++ 中,可以为用户类型重载==
and!=
运算符,但语言并不关心你是如何做到的。true
无论如何,您都可以重载两者以返回,!(a==b)
因此(a!=b)
不一定要对同一事物进行评估。有多少其他语言有不同的¬(a = b)
情况(a ≠ b)
?这是常见的事情吗?
这不仅仅是重载问题,甚至对于原始类型来说也是奇怪的极端情况。C 和 C++ 中的 NaN 不等于任何东西,包括 NaN。确实 NaN != NaN 在 C 中,但也许在其他语言中有类似的情况会导致¬(a = b)
和(a ≠ b)
不同?