Contents Index Search Previous Next
12.5.3 Formal Array Types
1
The class determined for a formal array type is
the class of all array types.
Syntax
2
formal_array_type_definition
::= array_type_definition
Legality Rules
3
The only form of discrete_subtype_definition
that is allowed within the declaration of a generic formal (constrained)
array subtype is a subtype_mark.
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
Contents Index Search Previous Next Legal