当我试图了解C++运算符时,我偶然发现cppreference.com上的一个奇怪的比较运算符,*在一个如下所示的表中:

"好吧,如果这些是C++中常见的操作符,我会更好地学习它们",我想.但我所有试图阐明这个谜团的尝试都没有成功.即使在这里,在Stack Overflow上我的搜索也没有运气.
如果有的话,这个运营商到底做了什么?
*与此同时,cppreference.com更新了该页面,现在包含有关<=>运营商的信息.
<=>在C++ 20中有一个新的比较运算符.但是我认为在大多数情况下,简单的减法效果很好:
int my_strcmp(const char *a, const char *b) {
while (*a == *b && *a != 0 && *b != 0) {
a++, b++;
}
// Version 1
return *a - *b;
// Version 2
return *a <=> *b;
// Version 3
return ((*a > *b) - (*a < *b));
}
Run Code Online (Sandbox Code Playgroud)
它们具有相同的效果.我无法理解其中的差异.
为什么我们在C++中需要这样的运算符?它在现代C++编程中有何用处?任何可以应用它的真实代码示例都会有所帮助.
这个问题旨在了解现实世界中的实际应用,而无需阅读Herb Sutter的罗嗦提议.尽管如此,对提案没有冒犯.