Annotated Ada Reference ManualLegal Information
Contents   Index   References   Search   Previous   Next 

A.18.13 The Generic Package Containers.Indefinite_Hashed_Maps

1/2
{AI95-00302-03} The language-defined generic package Containers.Indefinite_Hashed_Maps provides a map with the same operations as the package Containers.Hashed_Maps (see A.18.5), with the difference that the generic formal types Key_Type and Element_Type are indefinite. 

Static Semantics

2/3
{AI95-00302-03} {AI05-0092-1} The declaration of the generic library package Containers.Indefinite_Hashed_Maps has the same contents and semantics as Containers.Hashed_Maps except:
3/2
The generic formal Key_Type is indefinite.
4/2
The generic formal Element_Type is indefinite.
5/2
The procedure with the profile: 
6/2
procedure Insert (Container : in out Map;
                  Key       : in     Key_Type;
                  Position  :    out Cursor;
                  Inserted  :    out Boolean);
7/2
is omitted.
7.a/2
Discussion: This procedure is omitted because there is no way to create a default-initialized object of an indefinite type. We considered having this routine insert an empty element similar to the empty elements of a vector, but rejected this possibility because the semantics are fairly complex and very different from the existing case. That would make it more error-prone to convert a container from a definite type to an indefinite type; by omitting the routine completely, any problems will be diagnosed by the compiler. 
8/2
The actual Element parameter of access subprogram Process of Update_Element may be constrained even if Element_Type is unconstrained.
9/4
{AI12-0035-1} The operations Include, Insert, Replace, and Replace_Element that have a formal parameter of type Element_Type perform indefinite insertion (see A.18). 
9.a/4
Discussion: Some of the named operations also have a formal of the indefinite formal type Key_Type and perform indefinite insertion using that value, but it is sufficient to mention the formal of type Element_Type to cover those. 

Extensions to Ada 95

9.b/2
{AI95-00302-03} The generic package Containers.Indefinite_Hashed_Maps is new. 

Inconsistencies With Ada 2012

9.c/4
{AI12-0035-1} Corrigendum: Defined some routines to “perform indefinite insertion”. This could mean that some calls to those routines would now raise Program_Error where they previously worked. However, this is extremely unlikely; see Inconsistencies With Ada 2012 in A.18.11 for details. 

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