Hi, There's an example in the docs about classes with a keytype which I don't fully understand. Here's the code (taken from http://www.digitalmars.com/d/2.0/arrays.html under "Using Classes as the KeyType"):
------------------------------------------------------ class Foo { int a, b; hash_t toHash() { return a + b; } bool opEquals(Object o) { Foo f = cast(Foo) o; return f && a == foo.a && b == foo.b; } int opCmp(Object o) { Foo f = cast(Foo) o; if (!f) return -1; if (a == foo.a) return b - foo.b; return a - foo.a; } } ------------------------------------------------------ Shouldn't this be written like this instead?: ------------------------------------------------------ class Foo { int a, b; hash_t toHash() { return a + b; } bool opEquals(Object o) { Foo f = cast(Foo) o; return f && a == f.a && b == f.b; } int opCmp(Object o) { Foo f = cast(Foo) o; if (!f) return -1; if (a == f.a) return b - f.b; return a - f.a; } } ------------------------------------------------------ Notice I've replaced "foo" with "f" Foo is the class, but there's no mention of "foo". I'm guessing it was a typo, unless I'm missunderstanding something.