Разве это безопаснее / "лучше" сделать:
enum ENUM { // can be enum class too
...
};
int incoming_value_from_other_process;
auto e = static_cast<ENUM>(incoming_value_from_other_process);
, чем
auto e = ENUM(incoming_value_from_other_process); // more compact and readable, faster to type
РЕДАКТИРОВАТЬ : это для внутрипроцессного и / или сетевое взаимодействие, в котором перечисления просто сериализуются в сообщениях, а затем непосредственно преобразуются.