On Monday, 20 April 2015 at 10:42:54 UTC, Chris wrote:
On Monday, 20 April 2015 at 10:27:00 UTC, anonymous wrote:
On Monday, 20 April 2015 at 10:14:27 UTC, Chris wrote:
string a = "bla";
string b = "blub";
auto res = doSomething(a, b);
If I didn't use "auto ref" or "ref", string would get copied,
wouldn't it?
auto ref doSomething(R needle, R haystack);
To avoid this, I would have to write a[0..$], b[0..$], which
is not nice. Right or wrong?
Wrong. `a[0..$]` is the same as simply `a`. A `string` is just
another slice: a pointer and a length.
Ah, I see. So strings don't get copied around and I can remove
ref, very good.
For the record. I mixed up the results there. The code executed
directly in the for loop is faster than using a struct, it's also
faster than using a mixin template (around 10 msecs). My
apologies.