On Thu, 04 Jun 2009 07:18:33 -0400, A.M. <ama...@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.asserter...@./../../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