Operator implicit conversion difference

BBaz via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Nov 6 17:13:37 PST 2015


On Saturday, 7 November 2015 at 01:10:01 UTC, Ali Çehreli wrote:
> On 11/06/2015 04:56 PM, BBaz wrote:
>> On Thursday, 5 November 2015 at 13:20:26 UTC, ixid wrote:
>>> [...]
>>
>> What's inconsistent is the integral promotion of the add 
>> expression
>> result that stops from 4 bytes int:
>>
>> ---
>> int a, b;
>> a += b;
>> a = a + b;
>> ---
>>
>> is compiled but according to the specs, a + b result should be 
>> widened
>> to long:
>>
>> http://dlang.org/expression.html#AddExpression
>>
>> (ubyte, byte) until (uint int) should be widened and (long , 
>> ulong)
>> wrapped. This behavior would match the specs better.
>
> You say 'long' but according to integer promotions, a and b 
> should both be promoted to 'int' and the result of 'a + b' is 
> int:
>
>   http://dlang.org/type.html#integer-promotions
>
> Ali

oh...sorry I thought that the widening was done to the follwing 
type that's bigger, eg byte->short, short->int.

So no inconsistence at all.


More information about the Digitalmars-d-learn mailing list