| Actually I have now had time to think about this for two weeks, and my | considered opinion is a bit different...
What you write belowe seems very sane. But I think that my keyevent queue is still needed? (but to fix a different problem) | +inline flags operator|(flags const f, flags const g) | +{ | + int const intf(static_cast<int>(f)); | + int const intg(static_cast<int>(g)); | + return static_cast<flags>(intf | intg); | +}e Is the temporary insts needed? inline flags operator|(flags const f, flags const g) { return static_cast<flags>(f | g); } should be enough. enum -> int // implicit ok int -> enum // implicit not ok -- Lgb