On Thursday, 4 September 2014 at 20:38:39 UTC, Nordlöw wrote:
On Thursday, 4 September 2014 at 19:24:00 UTC, Nordlöw wrote:
   string t1; t1 ~= '*'.repeat(n).array;
   string t2; t2 ~= "*".replicate(n);

After having read http://dlang.org/phobos/std_array.html#.replicate

I came to the conclusion that the lazy std.range:repeat is preferred.

If lazy is good enough for you yes. AFAIK, replicate is *very* close in terms of implementation to what a.repeat(n).array() would do anyways. Heck, I'd be surprised if it did it differently, since (again, AFAIK) repeat.array() is "optimal" anyways.

I'm still a bit confused about the fact that -vgc gives no warnings about GC-allocations, though.

Strange indeed. Both solutions allocate a slice, and then append that slice. The "s[]='*'" Solution I gave you will not create a temporary allocation.

Reply via email to