Hello Yigal,

On 19/10/2009 22:53, BCS wrote:

int b;
if(a.length > 5) b = a[5];
else b = a[$/2];
No runtime in that at all now.

I don't see a reason why this can't be inlined by the compiler if
Array is a lib type.


Yes, it should inline. What I'm saying is that unless it is /guaranteed/ that it will /always/ inline, I'm going to have an issue.

if T[new] gets done as Array!T, what does T[] look like?

T[] should be replaced by Ranges which are already implemented in
Phobos.


I think that T[] should be (at a minimum) the current slice semantics and implementation (the lvalue-length and ~/~= stuff is another question). If this happens to have the needed semantics to act as a range, all the better.

Having a clean, light construct to deal with low level memory access is just to handy to give it up completely.


Reply via email to