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;
---