| package body Opt13_Pkg is |
| |
| subtype Index_Type is Natural range 0 .. 16; |
| |
| type Arr is array (Index_Type range <>) of Integer; |
| |
| type Rec is record |
| F1, F2, F3 : Float; |
| N : Natural; |
| B1, B2 : Boolean; |
| F4 : Float; |
| end record; |
| |
| type Data (D : Index_Type) is record |
| A : Arr (1 .. D); |
| R : Rec; |
| end record; |
| |
| Zero : constant Rec := (0.0, 0.0, 0.0, 0, False, False, 0.0); |
| |
| procedure Allocate (T : out My_Type) is |
| begin |
| T := new Data (Index_Type'last); |
| T.R := Zero; |
| |
| for I in 1 .. T.A'last loop |
| N := 1; |
| end loop; |
| end; |
| |
| end Opt13_Pkg; |