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

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