Reputation: 3133
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.
Upvotes: 25
Views: 10286
Reputation: 131523
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".Upvotes: 21