Integer conversions too pedantic in 64-bit

dsimcha dsimcha at yahoo.com
Thu Feb 17 05:49:11 PST 2011


Funny, as simple as it is, this is a great idea for std.array because it 
shortens the verbose cast(int) a.length to one extra character.  You 
could even put an assert in it to check in debug mode only that the 
conversion is safe.

On 2/17/2011 7:18 AM, Kagamin wrote:
> dsimcha Wrote:
>
>> Now that DMD has a 64-bit beta available, I'm working on getting a whole bunch
>> of code to compile in 64 mode.  Frankly, the compiler is way too freakin'
>> pedantic when it comes to implicit conversions (or lack thereof) of
>> array.length.  99.999% of the time it's safe to assume an array is not going
>> to be over 4 billion elements long.  I'd rather have a bug the 0.001% of the
>> time than deal with the pedantic errors the rest of the time, because I think
>> it would be less total time and effort invested.  To force me to either put
>> casts in my code everywhere or change my entire codebase to use wider integers
>> (with ripple effects just about everywhere) strikes me as purity winning out
>> over practicality.
>
> int ilength(void[] a) @property
> {
>    return cast(int)a.length;
> }
>
> ---
> int mylen=bb.ilength;
> ---



More information about the Digitalmars-d mailing list