On Monday, 2 July 2012 at 12:44:59 UTC, monarch_dodra wrote:
...

I opened this thread a week ago, and got little no feed back.

I've realized since:
1) "map" was a bad example, since it actually returns a new range (does not modify the underlying values), so the output was normal 2) I pasted the wrong code, I forgot to put a "ref" in there, so the output was normal.

Now take this example:

----
import std.stdio;
import std.algorithm;
import std.container;

void main()
{
  Array!int arr = Array!int(1, 2, 3, 4, 5);
  foreach(ref a; arr[])
  {
    a = 10;
  }
  writeln("Output: ", arr[]);
}
----
Output: [1, 2, 3, 4, 5]
----
I realize I'm still new to D, but I'd appreciate if somebody told me if I am wrong(or being stupid).

Anyways, I'm bothered by several things:

Quoteth "The D programing language", 12.9.1: "If you specify ref with value, the compiler replaces all uses of value with calls to __c.front throughout the body of the loop".

Surely, there is something wrong here... right?

Reply via email to