In C++ the bitwise-or results in an int, and ints are not implicitely cast to enums.
See !25 (comment 78122)