This seems useful to test bits in "bitset" scoped enums (with proper overloaded operators).
But it asks only about underlying bool type for some reason. Maybe there are more of them.
Contextual conversion to bool would compare the underlying value with zero.
The problems with workarounds:
1) Overloading !, &&, or || is considered a bad practice and is still incomplete.
2) Overloading unary + seems even worse, because it breaks expectations.
3) Writing a function seems better, but is too verbose.
4) Overload a & to return a class which converts both to bool (contextually) and the enum value. May break expectations too because it doesn't return an enum class directly.
Unfortunately, allowing contextual bool conversion by default seems dangerous too - the simplest enum use case just lists various values but doesn't assume that [first] one which equals to zero is anything special.
Maybe there is a proposal somewhere to allow declaring conversion operators as global ones? So the programmer could specify a desired behaviour directly.