В с++ 11 появилась такая возможность, как: enum AnyEnum : int8_t { a = -1, b = 0, c = 1, }; Какой тип устанавливается по умолчанию, не учитывая различных оптимизаторов? Раньше, если не ошибаюсь, устанавливался int; Т.е. что поставится на этапе компиляции, если не указать тип?
Ответ
Документация по std::underlying_type утверждает, что:
The underlying type of an enum declared with enum class is int unless a different type is specified on declaration.
В переводе:
Базовым типом перечисления, объявленного как enum class, является int, пока в объявлении не указан иной тип.
Комментариев нет:
Отправить комментарий