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.
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.
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
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.)
Thank goodness for the JIT and compiler optimizations.
…would JIT optimizations even help here?
a logical skeuomorphism, how eccentric
Haha! I had the same thought.
If those are normal integers, the compiler optimizes that to a simple compare and branch/cmov.
for others - https://godbolt.org/z/osaKrxsPx