Поддиапазон enum в ADA

В существующем коде ADA я нашел эти две строки:

type SWITCH_TYPE is (TI1, TO3, TI2, TO1, TI3, TO2);
subtype TI_SWITCH_TYPE is SWITCH_TYPE range TI1..TI2;
subtype TO_SWITCH_TYPE is SWITCH_TYPE range TO1..TO2;

Является ли TO3 частью TI_SWITCH_TYPE? Точно так же является ли TI3 частью TO_SWITCH_TYPE?


ada
person erict    schedule 28.04.2014    source источник


Ответы (2)


Да. Значения перечисления упорядочены в том порядке, в котором они определены, и вы можете иметь такие диапазоны. Имена не имеют значения для порядка.

person Andreas Bombe    schedule 28.04.2014

Как и выше, но знайте, что с Адой 2012 можно даже определить несмежные подтипы перечисления, например:

type Animal is
 (Bear, Cat, Dog, Wolf, Horse);

subtype Pet is Animal
   with Static_Predicate => Pet in Cat | Dog | Horse;

Обсуждение Ada Rationale по предикатам подтипов.

person Marc C    schedule 29.04.2014