Каков диапазон перечисления С++ с постоянным выражением? это мой код
#include <iostream>
int main(){
enum e3{min = -10, max = 100000};
e3 x = e3(-1000);
e3 y= e3(-100000912241);
std::cout<<x<<" "<<y<<std::endl;
}
Выводит -1000 -1216664433
Как это происходит? Кроме того, The C++ programming language by Bjarne Stroustrup
указывает, что результат преобразования целочисленного типа в перечисление не определен, если только значение не находится в пределах диапазона перечисления. Что это за диапазон и как его рассчитать?
struct
будет хорошей заменой. Вот почему c++ предпочитает классы enum обычным перечислениям. - person Arash   schedule 17.11.2017