Здравствуйте, vdimas, Вы писали:
BFE>>перечисление — это не набор констант, это не набор флагов, перечисление — это набор идентификаторов.
V>Составляющих отдельную семантическую группу — перечислимый тип.
Рассмотрим структуру
struct ABC { int a, b, c; }. В этой структуре перечислены поля a, b, c. Составляет ли поля
struct ABC отдельную семантическую группу? Думаю — да. Означает ли это, что
struct ABC — это перечислимый тип?
V>У тебя получилось наоборот — проще совершать ошибки, т.к. можно запросто перепутать константы из разных групп. ))
V>Отказываться от типизации в языках, эту типизацию предоставляющую — такое себе...
Я так понял, что это и есть цель обсуждаемого кода:
UMBA_ENUM_CLASS_IMPLEMENT_UNDERLYING_TYPE_RELATION_OPERATORS(CEEE)
CEEE::zero < EEE::one;
PS А вы в курсе про потенциальное теоретическое UB при выходе за пределы диапазона значений enum class?