Ada Conformity Assessment Authority      Home Conformity Assessment   Test Suite ARGAda Standard
Annotated Ada Reference Manual (Ada 2022)Legal Information
Contents   Index   References   Search   Previous   Next 

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. 

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