On Mon, Dec 1, 2008 at 7:23 PM, New <[EMAIL PROTECTED]> wrote: > Thanks very much indeed for your help. The version posted does work. > Unfortunately I won't be able to use D for my project, this bug has scared > the management, D is still a moving target. I will have to wait until it is > more stable.
D1 is pretty stable, and I'm pretty sure that's what most folks are using these days, actually. --bb > Cheers. > > > Gide Nwawudu Wrote: > >> On Fri, 28 Nov 2008 13:58:28 -0500, Kagamin <[EMAIL PROTECTED]> wrote: >> >> >just found it accidentally >> >http://d.puremagic.com/issues/show_bug.cgi?id=1309 >> >> Yep, this issue prevents Path.opCmp from being called. The version >> below works. >> >> >> import std.string: find, cmp; >> import std.stdio: writefln; >> import std.algorithm : sort; >> >> struct Path { >> string thePath; >> >> int opCmp(Path other) { >> writefln("Path.opCmp"); >> int pos; >> string a, b; >> >> pos = find(this.thePath, "="); >> if (pos > -1) >> a = this.thePath[0 .. pos]; >> else >> a = this.thePath; >> >> pos = find(other.thePath, "="); >> if (pos > -1) >> b = other.thePath[0 .. pos]; >> else >> b = other.thePath; >> >> return cmp(a, b); >> } >> } >> >> void main() { >> string[][Path] contents = [ >> Path("/002=/other_dir"): ["aa","bb","cc","dd"], >> Path("/001"): ["aa","bb","cc","dd"], >> Path("/002=/hello") : ["aa","bb","cc","dd"] >> ]; >> >> Path[] myPaths = contents.keys.dup; >> //myPaths.sort; // Does not call Path.opCmp >> sort(myPaths); // calls Path.opCmp >> >> foreach (item; myPaths) >> writefln(item.thePath); >> } > >