On Sunday, 3 January 2021 at 02:17:43 UTC, frame wrote:
Besides the problem with equal values, what's wrong with that:
alias Thing = Tuple!(int, int);
enum Wind {
A = Thing(0, 1),
B = Thing(0, 2),
C = Thing(0, 2)
}
void some_function(Wind w) {
switch (w.hashOf) {
case Wind.B.hashOf:
break;
default:
assert(0);
}
}
void main() {
some_function(Wind.B);
writefln("%d%d", Wind.C.expand);
}
I haven't used hashOf before, though assuming no equal values,
which I generally wouldn't do, I take it this is reliable? I
haven't tried it before, and I dont know how to effectively
compare it to using 'switch(w.to!string)' & 'case
Wind.B.stringof' (regarding speed/reliability).