определить класс перечисления с тем же именем по сравнению с перечислением

Почему это компилируется в С++ 11:

struct foo
{
  enum class Resolution { None=10, Nominal=20 };
  enum class Scale { None, Nominal };
};

в то время как это не:

struct foo
{
  enum Resolution { None=10, Nominal=20 };
  enum Scale { None, Nominal };
};

?


person Ruggero Turra    schedule 30.03.2015    source источник
comment
Вам не нужно помещать его внутрь структуры, чтобы создать эту двусмысленность.   -  person stefan    schedule 30.03.2015


Ответы (1)


До того, как значения перечисления С++ 11 не были определены, это означает, что значения в двух перечислениях не могут быть одинаковыми. Это больше не имеет место при использовании enum class.

person Mr M.    schedule 30.03.2015