A.18.15 The Generic Package Containers.Indefinite_Hashed_Sets
The language-defined generic package Containers.Indefinite_Hashed_Sets
provides a set with the same operations as the package Containers.Hashed_Sets
), with the difference that the
generic formal type Element_Type is indefinite.
The declaration of the generic library package Containers.Indefinite_Hashed_Sets
has the same contents and semantics as Containers.Hashed_Sets except:
The generic formal Element_Type is indefinite.
The actual Element parameter of access subprogram
Process of Update_Element_Preserving_Key may be constrained even if Element_Type
The operations Include, Insert, Replace, Replace_Element,
and To_Set that have a formal parameter of type Element_Type perform
indefinite insertion (see A.18).
includes the procedure Replace declared in the nested generic package
Generic_Keys, as well as the routines declared directly in the Containers.Indefinite_Hashed_Sets
Unlike the other containers, a Hashed_Set has no
operations that tamper with elements without tampering with cursors.
Modifying the contents of a element of a set can change its position
in the set, so those operations tamper with cursors.
Because of this characteristic, this subclause
is missing the rules that other indefinite containers have modifying
the definition and use of Tampering_with_Elements, and the definition
of the Stable subpackaage is the same as the definite version.
Extensions to Ada 95
The generic package Containers.Indefinite_Hashed_Sets
Inconsistencies With Ada 2012
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
Ada 2005 and 2012 Editions sponsored in part by Ada-Europe