微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

既然我们在 C++20 中有 operator<=>,那么还需要 operator== 吗?

如何解决既然我们在 C++20 中有 operator<=>,那么还需要 operator== 吗?

我正在学习 C++20 中比较的工作原理,我正在努力理解一件事:既然 operator<=> 必须检查相等性,我们是否真的需要一个单独的 {{1} }?比如下面的检查:

operator==

可以(由编译器)重写为:

a == b

但是,它仍然会尝试调用 a.operator<=>(b) == 0 。弃用 operator== 而只使用 operator== 进行排序和相等不是更有意义吗?在一个类需要一些自定义排序的情况下,必须同时实现 operator<=>operator<=>,这为错误创造了额外的空间。是否有理由现在有两种方法来检查相等性

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。