Who wore it better?

Steven Schveighoffer via Digitalmars-d digitalmars-d at puremagic.com
Fri Apr 15 12:13:27 PDT 2016


On 4/15/16 2:48 PM, Andrei Alexandrescu wrote:
> On 4/15/16 2:46 PM, Steven Schveighoffer wrote:
>> inout(T)[] overlap(T)(inout(T)[] r1, inout(T)[] r2) @trusted pure nothrow
>> {
>>      import std.algorithm: min, max;
>>      auto b = max(r1.ptr, r2.ptr);
>>      auto e = min(r1.ptr + r1.length, r2.ptr + r2.length);
>>      return b < e ? b[0 .. e - b] : null;
>> }
>
> Is that better or worse than the one without inout? -- Andrei

Better. It generates one implementation for all 9 combinations of 
mutability. Yours generates 9 identical binary functions.

And yours possibly depends on a bug: 
https://issues.dlang.org/show_bug.cgi?id=15930

-Steve


More information about the Digitalmars-d mailing list