On 06/05/2013 12:17 AM, Nick Sabalausky wrote:
On Tue, 04 Jun 2013 23:48:32 +0200
Timon Gehr <timon.g...@gmx.ch> wrote:

Behind the scenes, the foreach loop is rewritten to something like:

for(int __a=0;__a<5;__a++){
      int a = __a;
      writeln(&a);
}

Yea, I think the years I spent using C has corrupted my brain into
seeing...

    foreach(int a; 0..5)

...as shorthand for:

    for(int a=0; a < 5; a++) { /* use a */ }

Which is something I wrote far too many times in the 90's ;)


It was exactly that until recently. With the language version implemented by DMD 2.062, the behaviour in the OP was actually correct.

Reply via email to