Действительно ли нам нужен «класс перечисления» в C ++ 11?

Когда у нас есть,

struct E { enum E_ { HELLO }; }; // 'E' is inheritable

тогда зачем нам,

enum class E { HELLO };  // 'E' is not inheritable

Вторая версия IMO не предлагает больше функций чем 1-й. Я не думаю, что класс перечисления введен только для сохранения двух фигурных скобок {}; ! Я упускаю какой-либо важный аспект?

В качестве второстепенного вопроса, есть ли разница между enum class и enum struct , кроме синтаксиса (потому что оба имеют public ] спецификатор доступа)?

60
задан James McNellis 10 March 2012 в 04:24
поделиться