Annoyance with new integer promotion deprecations

Dominikus Dittes Scherkl dominikus.scherkl at continental-corporation.com
Tue Feb 6 10:43:39 UTC 2018


On Tuesday, 6 February 2018 at 07:15:33 UTC, Walter Bright wrote:
> The thing is, when there are mixed integer sizes and 
> signedness, there is no intuitive and correct solution. Each 
> set of rules comes with its own set of cases where there are 
> unintuitive behaviors.
So, why doing any promotion at all?
If two different types are used in an arithmetic operation,
the larger of those two types should be the result type.
And if the result would be truncated in some way, return NAN.

Every type should have a NAN value.
For the signed types the extra useless .min is a perfect 
candidate for a NAN.
That allows -x to always be of the same type as x, which I think 
is a good thing(tm).

Fortunately, in D is't absolutely easy to define just that kind 
of types
that fullfill all these requirements. Its about 100 LOC.
I call them sbyte, sword, sint and slong which are even better 
names than the original ones (because they directly indicate that 
they are signed and match the unsigned ones).
So I never again bother with the completely nuts builtin signed 
types.


More information about the Digitalmars-d mailing list