Когда мы имеем,
struct E { enum E_ { HELLO }; }; // 'E' is inheritable
то зачем нам нужно,
enum class E { HELLO }; // 'E' is not inheritable
Вторая версия IMO не предлагает больше возможностей, чем первая. Я не думаю, что enum class
вводится только для сохранения 2 фигурных скобок {};
! Не хватает ли какого-либо важного аспекта?
Как второстепенный вопрос, существует ли разница между enum class
и enum struct
, отличным от синтаксиса (поскольку оба имеют спецификатор доступа public
)?