builtin sort

monarch_dodra monarchdodra at gmail.com
Sat Jun 8 02:16:21 PDT 2013


On Saturday, 8 June 2013 at 08:52:22 UTC, Jonathan M Davis wrote:
> However, we really, really need to deprecate the built-in sort 
> - especially
> when a pair of parens can make the difference between whether 
> you call the
> built-in sort or std.algorithm's sort - and it's particularly 
> broken with
> regards to Unicode.
>
> - Jonathan M Davis

Or anything that uses non-POD comparison (opCmp) for that matter:

//----
import std.stdio;
import std.algorithm;
struct S
{
     int i;
     int opCmp(S o)
     {
        return (i < o.i) - (i > o.i); //inverse order
     }
}

void main()
{
     auto a = [S(1), S(2), S(3)];
     writeln(a); //[S(1), S(2), S(3)]
     a.sort;
     writeln(a); //[S(1), S(2), S(3)]
     a.sort();
     writeln(a); //[S(3), S(2), S(1)]
}
//----

I had pretty much forgotten ".sort" even existed (it really never 
even crossed my mind that it could be built-in), and given the 
push for optional parenthesis in general (especially in UFCS call 
chains), I can say I am surprised by this behavior.


More information about the Digitalmars-d mailing list