Определено ли поведение по умолчанию для инициализации / построения классов enum?
Вот минимальный пример ( Попробуйте онлайн )
enum class ALPHA{
X = 0,
Y = 1,
Z = 2,
};
int main()
{
ALPHA a = ALPHA(); // use default constructor
ALPHA b{}; // use default initialization
std::cout <<static_cast<int>(a) << std::endl; // 0
std::cout <<static_cast<int>(b) << std::endl; // 0
return 0;
}
Я получаю ноль в обоихслучаев.Так всегда ли инициализация по умолчанию выбирает первый тип перечисления (например, здесь X = 0) всегда?Я знаю, что это UB для стандартных перечислений, но я не уверен насчет семантики для классов перечислений?Я также посмотрел это на CPPReference , но не нашел никакой соответствующей информации об этом - возможно ли получить стандартную ссылку тоже?