Spec-Zone.ru › Ada 2022
Справочник по Ada (Ada 2022)

12.5.3 Типы формальных массивов

Категория, определяемая для формального типа массива, — это категория всех типов массивов.

Синтаксис

formal_array_type_definition ::= array_type_definition

Правила допустимости

Единственная форма discrete_subtype_definition, разрешенная в объявлении обобщенного формального (ограниченного) типа подтипа массива, — это subtype_mark.
Для формального типа подтипа массива фактический подтип должен удовлетворять следующим условиям:
  • Формальный тип массива и фактический тип массива должны иметь одинаковую размерность; формальный подтип и фактический подтип должны быть либо оба ограниченными, либо оба неограниченными.
  • Для каждой позиции индекса типы индексов должны быть одинаковыми, а типы подтипов индексов (если неограниченные) или диапазоны индексов (если ограниченные) должны статически соответствовать (см. 4.9.1).
  • Типы подтипов компонентов формального и фактического типов массивов должны статически соответствовать.
  • Если формальный тип имеет алиасированные компоненты, то таковыми должны быть и фактические.

Примеры

Пример формальных типов массивов:
-- задан обобщенный пакет
generic
type Item is private;
type Index is (<>);
type Vector is array (Index range <>) of Item;
type Table is array (Index) of Item;
package P is
...
end P;
-- и типы
type Mix is array (Color range <>) of Boolean;
type Option is array (Color) of Boolean;
-- тогда Mix может соответствовать Vector, а Option может соответствовать Table
package R is new P(Item => Boolean, Index => Color,
Vector => Mix, Table => Option);
-- Обратите внимание, что Mix не может соответствовать Table, а Option не может соответствовать Vector


Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API