A.18.15 The Generic Package Containers.Indefinite_Hashed_Sets
{
AI95-00302-03}
The language-defined generic package Containers.Indefinite_Hashed_Sets
provides a set with the same operations as the package Containers.Hashed_Sets
(see
A.18.8), with the difference that the
generic formal type Element_Type is indefinite.
Static Semantics
{
AI95-00302-03}
{
AI05-0092-1}
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
is unconstrained.
{
AI12-0035-1}
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).
Ramification: This 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
package.
Discussion: {
AI12-0111-1}
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.
{
AI12-0111-1}
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
{
AI95-00302-03}
The generic package Containers.Indefinite_Hashed_Sets
is new.
Inconsistencies With Ada 2012
{
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.
Ada 2005 and 2012 Editions sponsored in part by Ada-Europe