A.18.12 The 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/2
{
AI95-00302-03}
The declaration of the generic library package
Containers.Indefinite_Hashed_Maps has the same contents
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
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.
Extensions to Ada 95
8.a/2
{
AI95-00302-03}
{extensions to Ada 95} The
generic package Containers.Indefinite_Hashed_Maps is new.