www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 15530] New: multiSort forbids any SwapStrategy different fron

https://issues.dlang.org/show_bug.cgi?id=15530

          Issue ID: 15530
           Summary: multiSort forbids any SwapStrategy different fron
                    unstable
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: major
          Priority: P1
         Component: phobos
          Assignee: nobody puremagic.com
          Reporter: temtaime gmail.com

import std.algorithm;

void main() {
    int[] arr;

    arr.multiSort!((a, b) => a < b, (a, b) => a < b, SwapStrategy.stable);
}

Compilation output:
/opt/compilers/dmd2/include/std/algorithm/sorting.d(782): Error: template
std.algorithm.sorting.partition3 cannot deduce function from argument types
!((a, b) => a < b, cast(SwapStrategy)2)(int[], int), candidates are:
/opt/compilers/dmd2/include/std/algorithm/sorting.d(504):       
std.algorithm.sorting.partition3(alias less = "a < b", SwapStrategy ss =
SwapStrategy.unstable, Range, E)(Range r, E pivot) if (ss ==
SwapStrategy.unstable && isRandomAccessRange!Range &&
hasSwappableElements!Range && hasLength!Range &&
is(typeof(binaryFun!less(r.front, pivot)) == bool) &&
is(typeof(binaryFun!less(pivot, r.front)) == bool) &&
is(typeof(binaryFun!less(r.front, r.front)) == bool))
/d986/f960.d(6): Error: template instance f960.main.multiSort!((a, b) => a < b,
(a, b) => a < b, cast(SwapStrategy)2).multiSort!(int[]) error instantiating

--
Jan 08