On Wednesday, 25 December 2013 at 12:43:05 UTC, Chris Cain wrote:
Did you try something like:

for(immutable i; 0..MAX_N)
    a[i] = i;

too? One thing to note is that, technically, i is a _copy_ of the iterated number. So things like

for(i; 0..5)
   i++;

have no effect (it will loop 5 times regardless). Indeed, in your case, this could be optimized out, but in general the extra instruction is technically correct. I don't know if making i immutable would change things, but it might give the compiler enough of a hint to do the correct optimization here.

Thanks, that sounded reasonable. Still, in this particular case, the generated assembly remained the same.

Reply via email to