On Monday, 15 August 2022 at 02:59:59 UTC, Ali Çehreli wrote:
class Point {
int x;
int y;
Color color;
// ...
override size_t toHash() const {
return x + y;
}
}
The book is simply forgetting to show that function.
(Otherwise, I never put any code without testing.)
WARNING: Hash functions can be very tricky. I have a strong
feeling that adding two integers is not an efficient one.
Fortunately there is no need to invent our own hash function
here, because we can use the generic hashOf [1] from druntime:
override size_t toHash() const {
return hashOf(y, hashOf(x));
}
The second argument is optional, and is used when you want to
"accumulate" a single hash value from multiple input values.
[1] https://druntime.dpldocs.info/object.hashOf.1.html