On 07/06/2010 07:05 PM, Stewart Gordon wrote:
Ellery Newcomer wrote:
On 07/05/2010 07:59 AM, Stewart Gordon wrote:
bearophile wrote:
Stewart Gordon:
I can also imagine promoting your mindset leading to edit wars
between developers declaring an int and then putting
assert (qwert >= 0);
in the class invariant, and those who see this and think it's
brain-damaged.
As opposed to doing what?
Just using uint, of course!
For enforcing a non-negative constraint, that is brain damaged.
Semantically, the two are very different.
int i;
assert(i >= 0);
says i can cross the 0 boundary, but it's an error if it does, i.e.
programmer doesn't need to be perfect because it *does get caught*
(extreme instances notwithstanding).
uint i;
says i cannot cross the 0 boundary, but it isn't an error if it does.
programmer needs to be perfect and error doesn't get caught (unless what
you're using it for can do appropriate bounds checking).
Comparison - how do you mean?
Stewart.
Mmmph. Just signed/unsigned, I guess (I was thinking foggily that
comparison intrinsically involves subtraction or something like that)