this post was submitted on 15 Nov 2024
285 points (92.8% liked)
Programmer Humor
32692 readers
345 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
That is completely incomprehensible lol
You just need to break the syntax apart and look at it from the LHS and the RHS seperately.
In layman's terms: constantine felt boxed in by his social class which left him often at dagger-ends to the operations on his car. Unable to keep up with the constant payments, he defaulted on the loan.
See? Easy.
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&)