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

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