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).
