core.checkedint

Walter Bright via Digitalmars-d digitalmars-d at puremagic.com
Fri Jun 24 16:56:21 PDT 2016


On 6/24/2016 3:55 PM, Andrei Alexandrescu wrote:
> Interestingly, things like add(5u, -1) should succeed
> without overflow (returning 4u) even though the negative value is conceptually
> converted to a large positive number and the operation overflows. (I've
> implemented this behavior in the DbI checkedint.)

I believe adding such behavior is beyond the charter of checkedint. I understand 
the charter is to check for all overflow, undefined and implementation defined 
behaviors, and not go beyond that.

Pedantically, -1 is an int. But (unsigned op signed) converts the latter to 
unsigned, becoming (unsigned op unsigned), and so an overflow occurs.



More information about the Digitalmars-d mailing list