Как исключить первый элемент перечисляемого типа, используемый в качестве индекса массива в delphi?
Я хочу исключить первое значение этого перечисляемого типа
type
TEnum = (val0, val1, val2, val3, val4);
чтобы сделать этот массив
TBValues: array [low(TEnum)..High(TEnum)] of boolean;
содержит только последние значения n-1 (в этом случае n = 5).
Я пробовал это:
TBValues: array [low(TEnum)+1..High(TEnum)] of boolean;
но я думаю, что арифметические операции в этом случае недопустимы, потому что я получаю эту ошибку компилятора
E2010 Несовместимые типы: 'Int64' и 'TEnum'
Как это сделать?
Ответы
Ответ 1
Как насчет очевидного:
TBValues: array [val1..val4] of boolean;
Если вы хотите избежать фактических имен перечислений, вы можете записать его следующим образом:
TBValues: array [Succ(low(TEnum))..High(TEnum)] of boolean;
Для получения дополнительной информации: