std.algorithm.cmp doesn't seem to support numeric types?

DNoob operator97 at gmail.com
Wed Oct 16 19:25:18 UTC 2019


I'm just learning D, so it's very possible that I'm missing a 
more appropriate function that exists elsewhere, but basically I 
found today that while I could easily write a cmp function that 
worked for everything, the one in std.algorithm doesn't seem to:

import std.stdio, std.algorithm;

pure nothrow @nogc @system byte my_cmp(T1, T2)(T1 a, T2 b)
{
     if (a < b)
     {
         return -1;
     }
     else if (a == b)
     {
         return 0;
     }
     else
     {
         return 1;
     }
}

void main()
{
   //template error on the next line if uncommented
   //writeln(cmp(1, 2));

   writeln(my_cmp(1, 2));
}

Any advice would be much appreciated!


More information about the Digitalmars-d-learn mailing list