Why do we need such an operator in C++ and how is it useful in modern C++ programming? Any real world code examples where this can be applied will help.
This question is geared to understanding the practical application in the real world.
I'll give you three points of motivation, just off the top of my head:
>
, >=
, ==
, <=
, <
. Using <=>
(spaceship), you can implement each of these other operations in a completely generic way.strcmp()
function from the C standard library. So - useful for lexicographic order checks, such as data in vectors or lists or other ordered containers.x86
or x86_64
Comparing a and b (CMP RAX, RBX
) is basically like subtracting (SUB RAX, RBX
) except that RAX
doesn't actually change, only the flags are affected, so you can use "jump on equal/not equal/greater than/lesser than/etc." (JE/JNE/JGT/JLT etc.) as the next instruction. CMP
should be thought of as a "spaceship compare".