So one understood the assignment.
It might be an absolutely adequate method. Imagine that is C++. operator-- is overloaded and controls some machinery. You can’t just command capacity = currSize. Process is important.
that’s why c++ gets bullied
That is why it is loved: it allows you to use ideas/objects the same way as you do as an engineer. Super cool.
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.
It is a method!
thanks
That’s just life of a C++ programmer: you second guess everything, and there are still optimization you haven’t tried, and pitfalls you haven’t got into
deleted by creator
Until the next person with a slightly different mental way of defining things comes along. Or just a future version of you.
But when you do shoot yourself in the foot, it blows your whole leg off.
As a shotgun. That’s why people don’t shoot themselves in the foot with a shotgun.
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.)
a logical skeuomorphism, how eccentric
Haha! I had the same thought.
Thank goodness for the JIT and compiler optimizations.
…would JIT optimizations even help here?
If those are normal integers, the compiler optimizes that to a simple compare and branch/cmov.
for others - https://godbolt.org/z/osaKrxsPx