Вопросы к Поиску с Алисой
Разница между обычными перечислениями (unscoped) и scoped перечислениями в C++ заключается в области видимости и правилах преобразования. blog.nipraas.com habr.com
Unscoped перечисления экспортируют свои перечислители в объёмлющую область видимости, что может привести к конфликту имён. habr.com Такие перечисления могут быть неявно преобразованы к своему базовому типу. habr.com
Scoped перечисления объявляются с ограничением на область видимости. habr.com При использовании таких перечислений нужно всегда указывать имя перечисления вместе с перечислителями. habr.com Для scoped перечислений базовый тип по умолчанию определён в стандарте и это int. habr.com
Некоторые преимущества scoped перечислений:
Из-за нежелательности неявных преобразований рекомендуется использовать scoped, а не unscoped перечисления. habr.com