util: add support for defining bitwise operators on strongly typed enums
enum class
types don't implicitly convert to int, so we have to explicitly cast them. Since I was touching the file anyway, I also moved from the overly wide uint64_t
to std::underlying_type_t
(giving us the actual integer type used to store the enum value) and I made those operators constexpr
(which implies inline
).