http://d.puremagic.com/issues/show_bug.cgi?id=9206
--- Comment #3 from Andrej Mitrovic <[email protected]> 2013-01-25 15:53:47 PST --- (In reply to comment #0) > @property bool isCompleteIntervalEnum(E)() > pure nothrow if (is(E == enum)) { > static if (isIntegral!E || isSomeChar!E) { > return EnumMembers!E.length == (E.max - E.min + 1); > } else { > return false; > } > } That's an interesting optimization. > bool isValidEnumValue(E)(E e) > pure nothrow if (is(E == enum)) { > static if (isCompleteIntervalEnum!E) { > return e >= E.min && e <= E.max; // Optimization. > } else { > return [EnumMembers!Foo].canFind(e); > } > } A mixed-in switch will be slightly faster in the else clause, except in the case of floating-point which can't be used with switches. Anyway I think it's worth adding. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
