Ответ 1
Просмотр reference с использованием списков intializers разрешен с С++ 17:
Оба типа перечисления и типы неперечисленных перечислений, базовый тип фиксирован, может быть инициализирован из целого без cast, используя инициализацию списка, если выполняется все следующее:
- инициализация - инициализация прямого списка
- список инициализаторов имеет только один элемент
- перечисление является либо облачным, либо не облачным с фиксированным типом
- преобразование не сужается
Clang поддерживает это с версии 3.9 (в соответствии с страница статуса реализации)
GCC поддерживает это с версии 7 (в соответствии со страница поддержки стандартов)
См. это предложение С++ для дополнительного контекста и мотивации: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0138r2.pdf