On Sunday, 26 June 2016 at 05:28:53 UTC, Shachar Shemesh wrote:
So, we can do it your way. This would mean:
1. Losing performance for every division and modulus that *might* be negative

I don't think the performance issue is relevant. It was relevant when it was left implementation defined in C, but it is no longer the case so it was defined to be consistent with signed integer division in C-99. The sane thing to do from a system programming point of view is to have strong typing and 3 versions:

1. "x % y" only defined on unsigned integers
2. rem(x,y) for reminder from truncated division
3. mod(x,y) for reminder from floored division

Unfortunately implictly casting ints to uints is a very bad idea when you want a reasonably safe type-system.

Reply via email to