Formal Access Types
Author: JTC1/SC22/WG9/ARG, by Randall Brukardt, ARG Editor

Contents Index Search Previous Next

# 12.5.4 Formal Access Types

1
The class determined for a formal access type is the class of all access types.

#### Syntax

2
formal_access_type_definition ::= access_type_definition

#### Legality Rules

3
For a formal access-to-object type, the designated subtypes of the formal and actual types shall statically match.
4
If and only if the general_access_modifier constant applies to the formal, the actual shall be an access-to-constant type. If the general_access_modifier all applies to the formal, then the actual shall be a general access-to-variable type (see 3.10).
5
For a formal access-to-subprogram subtype, the designated profiles of the formal and the actual shall be mode-conformant, and the calling convention of the actual shall be protected if and only if that of the formal is protected.

#### Examples

6
Example of formal access types:
7
`-- the formal types of the generic package`
8
`generic
type Node is private;
type Link is access Node;
package P is
...
end P;`
9
`-- can be matched by the actual types`
10
`type Car;
type Car_Name is access Car;`
11
`type Car is
record
Pred, Succ : Car_Name;
Number : License_Number;
Owner : Person;
end record;`
12
`-- in the following generic instantiation`
13
`package R is new P(Node => Car, Link => Car_Name);`

Contents Index Search Previous Next Legal