If you are still reading this, there's two things I'd like to add: First, this approach should give better performance, because that `foreach` is actually now a static foreach, iterating over a typetuple. It's not a runtime loop.

Second, you *could* extend this to certain other operators, such as `opAssign` or `opOpAssign!"|"`, which would allow high performance `myFlags |= TypeTuple!(E.A, E.b);`.

Not saying you should do this, just pointing out some of the neat things you can do.