When applying a sort!() on a filtered range I get this compiler error:

Error: template std.algorithm.sorting.sort cannot deduce function from argument types !((a, b) => a.name < b.name)(FilterResult!(__lambda3, RangeT!(Array!(IssueType)))), candidates are:
C:\D\dmd2\windows\bin\..\..\src\phobos\std\algorithm\sorting.d(1851,1):        std.algorithm.sorting.sort(alias less = "a < 
b", SwapStrategy ss = SwapStrategy.unstable, Range)(Range r) if ((ss == SwapStrategy.unstable && 
(hasSwappableElements!Range || hasAssignableElements!Range) || ss != SwapStrategy.unstable && hasAssignableElements!Range) 
&& isRandomAccessRange!Range && hasSlicing!Range && hasLength!Range)

But it seems the problem is with the filter!() result not being a isRandomAccessRange!Range because: R.filter!(..).array.sort!(..) just works (by copying the filter results in a array).

Iaw is the compiler error msg wrong? Or i'm I wrong?



Reply via email to