5 ответов:
нет, нет никакого способа, чтобы найти максимальные и минимальные значения любого перечисления в C++. Когда требуется такая информация, часто рекомендуется определить последнее и первое значение. Например,
enum MyPretendEnum { Apples, Oranges, Pears, Bananas, First = Apples, Last = Bananas };там не должны быть названы значения для каждого значения между
FirstиLast.
нет, не в стандартном c++. Вы можете сделать это вручную:
enum Name { val0, val1, val2, num_values };
num_valuesбудет содержать количество значений в перечислении.
нет. Перечисление в C или C++ - это просто список констант. Нет более высокой структуры, которая бы содержала такую информацию.
обычно, когда мне нужна такая информация, я включаю в перечисление максимальное и минимальное значение примерно так:
enum { eAaa = 1, eBbb, eCccc, eMin = eAaaa, eMax = eCccc }см. эту веб-страницу для некоторых примеров того, как это может быть полезно:Глупые Перечисления Трюки
enum My_enum { FIRST_VALUE = 0, MY_VALUE1, MY_VALUE2, ... MY_VALUEN, LAST_VALUE };после определения, My_enum:: LAST_VALUE== N+1
они вам даже не нужны, я просто говорю, например, если у вас есть:
enum Name{val0,val1,val2};Если у вас есть оператор switch и проверить, если последнее значение было достигнуто сделать следующее:
if(selectedOption>=val0 && selectedOption<=val2){ //code }
Comments