this post was submitted on 15 Nov 2024
262 points (92.8% liked)
Programmer Humor
32479 readers
315 users here now
Post funny things about programming here! (Or just rant about your favourite programming language.)
Rules:
- Posts must be relevant to programming, programmers, or computer science.
- No NSFW content.
- Jokes must be in good taste. No hate speech, bigotry, etc.
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Maybe to a non C++ dev, but a lot of C++ is probably incomprehensible to a non C++ dev, just like there are other laguages that are incomprehensible to C++ devs. To me it makes perfect sense as it works just like all the other operator overloads.
auto
- let the compiler deduce return typeoperator<=>
- override the spaceship operator (pretty sure it exists in python too)(const ClassName&)
- compare this class, presumably defined in Class name, with a const reference of type Class name, i.e. its own type.const
- comparison can be made for const objects= default;
- Use the default implementation, which is comparing all the member variables.An alternate more explicit version, which is actually what people recommend:
auto operator<=>(const ClassName&, const ClassName&) = default;
if I just want to have less than comparison for example I would:
This one makes it explicit that you're comparing two Class name objects.
if I just want to have less than comparison for example I would:
auto operator<(const ClassName&, const ClassName&) = default;
If I need to compare against another class I could define:
auto operator<(const ClassName&, const OtherClass&)