Note that you can create your own overload. Though it has to be done "the long way", because dmd doesn't (yet?) allow overloading templates imported from other modules:

import std.stdio;
import std.algorithm;
import std.traits;

template sort(alias less = "a < b", SwapStrategy ss = SwapStrategy.unstable)
{
    auto sort(Arr)(ref Arr arr) if (isStaticArray!Arr) {
        return std.algorithm.sort!(less, ss)(arr[]);
    }

    auto sort(Range)(Range r) if (!isStaticArray!Range) {
        return std.algorithm.sort!(less, ss)(r);
    }
}

void main ()
{
    int[5] a = [ 9, 5, 1, 7, 3 ];
    int[]  b = [ 4, 2, 1, 6, 3 ];

    sort(a);
    sort(b);
    writeln(a);
    writeln(b);
}

Reply via email to