Есть ли способ узнать диапазон значений перечисления? Я ожидал какой-нибудь type_traits
шаблон вроде std::numeric_limits
, но не нашел.
Например:
enum enm { A = -5, B = 3 };
std::cout << std::range_of_enum<enm>::min() << ', '
<< std::range_of_enum<enm>::max() << std::endl;
// Prints -8, 7 with two's complement representation, and -7, 7
// with one's complement representation.
ПРИМЕЧАНИЕ. Для тех, кто не знает, что такое «диапазон перечисления» (хотя это нестандартный термин), перейдите по адресу этот вопрос.