When we have,
struct E { enum E_ { HELLO }; }; // \'E\' is inheritable
then why do we need,
enum class E { HELLO }; // \'E
Besides what was already mentioned, an advantage of enum class is better type safety - the enum class enumerators don't convert implicitly to integers.
enum class