Language Reference: Usual Arithmetic Conversions
Morlan
home at valentimex.com
Tue Apr 5 11:10:19 PDT 2011
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.
More information about the Digitalmars-d-bugs
mailing list