12.5.3 Formal Array Types
1/2
The category determined for a formal array type is
the category of all array types.
Syntax
2
Legality Rules
3
4
For a formal array
subtype, the actual subtype shall satisfy the following conditions:
5
- The formal array type and the actual
array type shall have the same dimensionality; the formal subtype and
the actual subtype shall be either both constrained or both unconstrained.
6
- For each index position, the index
types shall be the same, and the index subtypes (if unconstrained), or
the index ranges (if constrained), shall statically match (see 4.9.1).
7
- The component subtypes of the formal
and actual array types shall statically match.
8
- If the formal type has aliased components,
then so shall the actual.
Examples
9
Example of formal
array types:
10
-- given the generic package
11
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;
12
-- and the types
13
type Mix is array (Color range <>) of Boolean;
type Option is array (Color) of Boolean;
14
-- then Mix can match Vector and Option can match Table
15
package R is new P(Item => Boolean, Index => Color,
Vector => Mix, Table => Option);
16
-- Note that Mix cannot match Table and Option cannot match Vector