Re: Confusion on the spaceship operator in C++20
Hello,
Usually, three way comparison returns -1, 0 or 1 depending on if left operand is less, equal or greather than right operand.
In fact, it's a generalization of strcmp. It isn't very useful in if/else statements as such, but is very useful in find, search and sort algorithms.
Usually one implement std::less a.k.a. operator <, and all other comparisons are made from it, i.e. a>b is b<a, a>=b is !(a<b), a<=b is !(b<a), a==b is !(a<b)&&!(b<a) and a!=b is (a<b)||(b<a).
In sorted datastructures, three way comparison is known to be simpler to implement and a little more efficient than std::less for a various set of cases. String comparison is one of them.
For your small example, given that it generally returns -1, 0 or 1, I think that x<=>y will return the same as x!=y.
-- Audiogames-reflector mailing list Audiogames-reflector@sabahattin-gucukoglu.com https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector