April 05, 2011 Language Reference: Usual Arithmetic Conversions | ||||
---|---|---|---|---|
| ||||
The following section from the Language Reference does not correspond to the current dmd compiler (v2.052, Windows) behaviour: " Integer values cannot be implicitly converted to another type that cannot represent the integer bit pattern after integral promotion. For example: ubyte u1 = cast(byte)-1; // error, -1 cannot be represented in a ubyte ushort u2 = cast(short)-1; // error, -1 cannot be represented in a ushort uint u3 = cast(int)-1; // ok, -1 can be represented in a uint ulong u4 = cast(ulong)-1; // ok, -1 can be represented in a ulong " Both byte and short casts work all right. |
April 05, 2011 Re: Language Reference: Usual Arithmetic Conversions | ||||
---|---|---|---|---|
| ||||
Posted in reply to Morlan | On Tue, 05 Apr 2011 20:10:19 +0200, Morlan <home@valentimex.com> wrote: > The following section from the Language Reference does not correspond to > the current dmd compiler (v2.052, Windows) behaviour: > > " > Integer values cannot be implicitly converted to another type that cannot > represent the integer bit pattern after integral promotion. For example: > > ubyte u1 = cast(byte)-1; // error, -1 cannot be represented in a ubyte > ushort u2 = cast(short)-1; // error, -1 cannot be represented in a ushort > uint u3 = cast(int)-1; // ok, -1 can be represented in a uint > ulong u4 = cast(ulong)-1; // ok, -1 can be represented in a ulong > " > > Both byte and short casts work all right. Please use bugzilla to file issues: http://d.puremagic.com/issues/enter_bug.cgi -- Simen |
Copyright © 1999-2021 by the D Language Foundation