Перечисления не имеют области видимости. Поэтому применение оператора разрешения области действия ::
к myEnum
неверно.
Значения перечисления объявляются во вложенном пространстве имен, поэтому в пределах myStruct
, который находится в той же области видимости, что и myEnum
, вы можете обращаться к его значениям напрямую, используя неквалифицированный поиск: a
, b
.
За пределами MyClass
его можно разрешить с помощью MyClass::a
.
P.S. Значение a
равно 0. Битовое поле нулевой ширины не может быть названо. Между тем, что вы пытаетесь сделать, и тем, чего вы пытаетесь достичь, есть какая-то связь.