
post
Yeah, just to say it more clearly: that kind of thing is why lots of people out there insist that operator overloading is a bad idea.
And yeah, it's a C++ thing that mostly doesn't happen in other languages.
Sincerely agree. Explicit is better then implicit, that’s a general engineering axiom.
Instead of overloading and making the next maintainer hunt for overloads, a clearly named function that does the critical steps would make the code immensely more maintainable. C++ is C gone wild.
Yes. Sometimes you're limited by the hardware you're controlling. This code is a bit hard to justify with that excuse though. Normally your code would do a read from hardware to see if the value decremented and then repeat the write. (Possibly a sleep/yield in there if required.)
that's why c++ gets bullied
Until the next person with a slightly different mental way of defining things comes along. Or just a future version of you.
yes, but in this particular case I wouldn't want to second guess my decrement operation just happens to also be calling the white house or whatnot. Just make a method.
But when you do shoot yourself in the foot, it blows your whole leg off.
a logical skeuomorphism, how eccentric
Thank goodness for the JIT and compiler optimizations.
If those are normal integers, the compiler optimizes that to a simple compare and branch/cmov.
for others - https://godbolt.org/z/osaKrxsPx

all 22 comments