I am a bit stunned by lots of reactions on questions that point out that developers care more about the resulting compiled bytes than about the meaning of their code. I tend to nit-pick about postfix/prefix increment, as I tend to nit-pick about using a boolean for an enumerated type with two values, and about proper function naming, and...
So the question is more a rethorical poll: when is one allowed to disregard the semantics of what one writes? Where's the border line?
- operator++ (postfix/prefix)
- string.empty() vs. string == ""
- vector.empty() vs. vector.size() == 0
- enumerate { on, off} vs. boolean on=true; off=false
- ...
Name it.
EDIT -
I didn't mean to question about the need for (micro)-optimizations. Rather, I want opinions on how well you should be aware of what you're writing, and on statements like "but it compiles to a dword, anyway, so why should I make it an enum?" (that's an extreme case...).