Umm, why bring up the basetype nonsense at all.  The arithemtic
     is done in whatever type is associated with the expression, not
     the base type.  Nothing else makes sense.  ie, conversions are
     explicit.

The conversions are explicit, but are to the base type, which is also
the type associated with the expression.  By mentioning the base type,
we're just saying what the type of the expression will be.

     So, back to my example.  If I have an object with a range [0,
     0x7ff  fffff] based on the type of the object and I add one to that
     object, then I can safely conclude that the result of the addition has
     the range [1, 0x7fffffff].  Right?

If the addition were in the type of the object, yes.  But it's not supposed
to be.  It's supposed to be in the *base type* of the object which won't
have the TYPE_MAX_VALUE restriction so that nobody would try to conclude
that there was an upper-bound limit.

Reply via email to