Вот тут в С++ дурная засада - нужно переводить в целое, произвести бинарные вычисления, потом опять перевести в тип перечисления. Страшного ничего нет, но напрягает.
Перечисление в целое вроде неявно кастится в плюсах. А вот наоборот придется кастить и это правильно.