[Issue 6652] foreach parameter with number range is always ref

d-bugmail at puremagic.com d-bugmail at puremagic.com
Mon Sep 12 12:25:03 PDT 2011


http://d.puremagic.com/issues/show_bug.cgi?id=6652


bearophile_hugs at eml.cc changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bearophile_hugs at eml.cc


--- Comment #1 from bearophile_hugs at eml.cc 2011-09-12 12:24:41 PDT ---
Recently I have started a very long thread about this problem:

http://www.digitalmars.com/d/archives/digitalmars/D/About_foreach_loops_138630.html

http://www.digitalmars.com/d/archives/digitalmars/D/Re_About_foreach_loops_138666.html


An alternative and probably a bit better solution is to think of 0..10 as a
immutable entity (just like the integer number "1" is immutable, likewise a
range of numbers is immutable), so the foreach index is a const (the compiler
keeps only one index, for efficiency, and modifies this const index):


foreach (int i; 0 .. 10) {
    i++; // forbidden, i is const
}


If you want to modify the index variable inside the loop, then you use a for()
loop.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list