What happens when a low-level type overflows or underflows?  For
example, if you decrement an int1 twice, what happens?

If you increment a uint8 past 255, do you get:

1. A uint8  with value 0?
2. A uint16 with value 256?
3. A failure?

What about incrementing an int8 past 127?  Do you get:

1. An int8  with value -128?
2. A uint8  with value 128?
3. An int16 with value 128?
4. A failure?

In both cases, I think option 1 is best, but I can see that option 2 in
the signed case might make sense in certain circumstances.  Personally,
I'd prefer to keep option 1 always, because if I want option 2 I should
cast to uint or a larger int first.


Reply via email to