Common type of ubyte and const ubyte is int

Dom DiSc dominikus at scherkl.de
Fri May 3 06:52:00 UTC 2024


On Thursday, 2 May 2024 at 17:30:12 UTC, user1234 wrote:
> Just remembered, one argument that was once exposed by Walter 
> is be that arithmetic instructions for 32 bits registers would 
> be faster than the ones let's say for 16 or 8.

Working on the processor word size is always the fastest. But 
that is totally independent of the result type. Calculation can 
always be done extended to word-size (or may need multiple words 
for large operands), but the result should have the common type.
To say 32bit is always the best is only true for 32bit 
architectures.
And having no promotion is not an option. If two operands are to 
be combined, we need some common type for the result, no matter 
how this result is produced.

About type attributes - the operands may be mutable, const or 
immutable, but the result is a new value with attributes 
independent of the operand attributes. It should be assignable to 
mutable variables - to const or immutable objects only during 
initialization, to shared objects only if they are locked.

At least that is what I expect.


More information about the Digitalmars-d mailing list