В соответствии с §7.2/5 и §7.2/6 не следует использовать ниже 1 1
вместо 4 4
?
#include <iostream>
enum A { a = (char)1, b, c }; // underlying type is not fixed
int main() {
std::cout << sizeof(a) << ' ' << sizeof(A) << '\n';
}
Edit
Из §7.2/5:
Если базовый тип не является фиксированным, тип каждого перечислителя тип его инициализирующего значения:
- Если для счетчика указан инициализатор, инициализация значение имеет тот же тип, что и выражение и константное выражение должно быть интегральным постоянным выражением (5.19).