https://timsong-cpp.github.io/cppwp/n4868/dcl.enum#8
[dcl.enum]/8:
> For an enumeration whose underlying type is fixed, the values of the enumeration are the values of the underlying type.
> The resulting value is the same as converting the original value to the underlying type of the enumeration ([conv.fpint]), and subsequently to the enumeration type.
https://timsong-cpp.github.io/cppwp/n4868/expr.static.cast#10
[expr.static.cast]/10:
> If the enumeration type has a fixed underlying type, the value is first converted to that type by integral conversion, if necessary, and then to the enumeration type.
https://timsong-cpp.github.io/cppwp/n4868/conv.bool#1
[conv.bool]/1:
> A prvalue of arithmetic, unscoped enumeration, pointer, or pointer-to-member type can be converted to a prvalue of type bool.
A zero value, null pointer value, or null member pointer value is converted to false; any other value is converted to true.
だよなぁ……