digitalmars.D.bugs - bug in std.algoeithm.sort ?
- A.M. (19/19) Jun 04 2009 import std.string;
- Gide Nwawudu (5/24) Jun 04 2009 ... Yes, but not with Phobos. The comparison operator should use <
import std.string;
import std.array;
import std.algorithm;
void main()
{
string[] sa = ["TOM","JOE","TOM4","TOM12","TOM6"];
sort!(comp)(sa);
}
bool comp(string x, string y)
{
string[] s = [x,y];
return isSorted(s);
}
this code compiles find, but when run gives the following error:
core.exception.AssertError ./../../src/phobos/std/array.d(210): Attempting to
fetch the front of an empty array
same happens if operating on int not string
I'm using dmd2.030
same happens with dmd2.029
is that a bug?
Jun 04 2009
On Thu, 04 Jun 2009 07:18:33 -0400, A.M. <AMAMH3 Gmail.com> wrote:
import std.string;
import std.array;
import std.algorithm;
void main()
{
string[] sa = ["TOM","JOE","TOM4","TOM12","TOM6"];
sort!(comp)(sa);
}
bool comp(string x, string y)
{
string[] s = [x,y];
return isSorted(s);
}
this code compiles find, but when run gives the following error:
core.exception.AssertError ./../../src/phobos/std/array.d(210): Attempting to
fetch the front of an empty array
same happens if operating on int not string
I'm using dmd2.030
same happens with dmd2.029
is that a bug?
... Yes, but not with Phobos. The comparison operator should use <
less than, if two items are equal they must return false.
isSorted(["TOM","TOM"]) is true, "TOM" < "TOM" is false.
Gide
Jun 04 2009








Gide Nwawudu <gide btinternet.com>