No it's not. Your sample won't compile with -property. That's why I've wrapped it into a template, to avoid having to use parens.
Never used -property. I don't mind adding parentheses either.
Fair enough. But if we're going to be anal about it you should add a constraint `if (is(EnumType == enum))`. Otherwise your sample will compile for non-enum types
I do have that constraint in some other version of the function in another project.
So it's an old one.