Annotated Ada Reference Manual (Ada 202y Draft 1)Legal Information
Contents   Index   References   Search   Previous   Next 

12   Generic Units

1
A generic unit is a program unit that is either a generic subprogram or a generic package. A generic unit is a template[, which can be parameterized, and from which corresponding (nongeneric) subprograms or packages can be obtained]. The resulting program units are said to be instances of the original generic unit.
1.a/5
Term entry: generic unit — template for a (nongeneric) program unit
Note 1: The template can be parameterized by objects, types, subprograms, and packages.
Note 2: Generic units can be used to perform the role that macros sometimes play in other languages.
1.b/5
Term entry: generic instance — nongeneric unit created by the instantiation of a generic unit
2
[A generic unit is declared by a generic_declaration. This form of declaration has a generic_formal_part declaring any generic formal parameters. An instance of a generic unit is obtained as the result of a generic_instantiation with appropriate generic actual parameters for the generic formal parameters. An instance of a generic subprogram is a subprogram. An instance of a generic package is a package.
3
Generic units are templates. As templates they do not have the properties that are specific to their nongeneric counterparts. For example, a generic subprogram can be instantiated but it cannot be called. In contrast, an instance of a generic subprogram is a (nongeneric) subprogram; hence, this instance can be called but it cannot be used to produce further instances.] 

Contents   Index   References   Search   Previous   Next 
Ada-Europe Ada 2005 and 2012 Editions sponsored in part by Ada-Europe