перечисление может быть интегральным, но это не значит, что оно охватывает непрерывный диапазон.
Это
enum {
A,
B,
C,
}
Может По умолчанию будет
enum {
A = 0,
B = A + 1,
C = B + 1,
}
и, таким образом, вы можете уйти с
int a = A;
a++;
Однако, если у вас есть
enum {
A = 2,
B = 4,
C = 8,
}
, теперь +1 не сработает.
Сейчас, если у вас также были такие вещи, как
enum {
FIRST,
A = FIRST,
B,
C,
LAST = C
}
, то при итерации перечисления вы делали бы А и С дважды?
Какова цель итерации перечисления?Вы хотите сделать «для всех» или для некоторого подмножества, есть ли на самом деле порядок перечисления?
Я бы бросил их все в контейнер и повторил бы это вместо
- неупорядоченный - используйте набор
- упорядоченный - вектор или список