Ошибка отрицательного поддиапазона

Мне было интересно, можно ли объявить

Value1, Value2: Set of -2..-1;

Я получаю сообщение об ошибке компиляции: [Ошибка DCC] ShowUtils.pas(98): E2028 Наборы могут содержать не более 256 элементов.

По моей математике это 2 элемента -2 и -1, почему компилятор считает, что их больше 256?

с помощью Делфи 2007


person James Barrass    schedule 04.07.2011    source источник
comment
Пара решений. Используйте набор 1..2 и тестируйте такие вещи, как -i in Value1. Или сделайте эти специальные значения выделенным перечисляемым типом.   -  person David Heffernan    schedule 04.07.2011


Ответы (1)


Эта ошибка возникает из-за того, что порядковые значения границ набора должны быть в диапазоне от 0 до 255. Поэтому вы не можете использовать отрицательные числа в наборе. Кроме того, вы можете проверить документацию об ошибке компилятора E2028 Sets may have at most 256 elements (Delphi)

person RRUZ    schedule 04.07.2011
comment
ах, я надеялся на какой-нибудь трюк компилятора, который просто разбирал смещение, чтобы поместить его в этот диапазон - person James Barrass; 04.07.2011