Разрешены ли отрицательные целые числа в наборах? - PullRequest
2 голосов
/ 06 октября 2019

Я знаю, что наборы не могут иметь более 255 элементов в FPC, однако разрешены ли отрицательные целые числа?

Я наткнулся на это и не смог найти ничего связанного с ним в Интернете.

PROGRAM test;
TYPE rg = -10..0;
    negatives = set of rg;

Я получаю эту ошибку компиляции.

test.pas(3,25) Error: illegal type declaration of set elements

Я подозреваю, что эта ошибка происходит из отрицательных целых чисел, потому что, если я, например, определяю диапазон как 0..5, он компилируется нормально.

1 Ответ

3 голосов
/ 06 октября 2019

Из документации Delphi , в которой обычно отражается FP:

Диапазон набора - это набор мощности определенного порядкового типа, называемого базовым типом;то есть возможные значения типа набора - это все подмножества базового типа, включая пустой набор. Базовый тип может иметь не более 256 возможных значений, и их порядковые номера должны находиться в диапазоне от 0 до 255.

В Документах FreePascal говорится то же самое (не совсем ясно,и несколько сложнее найти):

Каждый из элементов SetType должен иметь тип TargetType. Тип TargetType может быть любого порядкового типа с диапазоном от 0 до 255.

...