Go to the first, previous, next, last section, table of contents.


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 section 3.10 Access Types.
  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);
    


Go to the first, previous, next, last section, table of contents.