1/2
The category determined for a formal array type is the category of all array types.
2
formal_array_type_definition::= array_type_definition
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
6
7
8
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