A.18.12 The Generic Package Containers.Indefinite_Doubly_Linked_Lists
The language-defined generic package Containers.Indefinite_Doubly_Linked_Lists
provides private types List and Cursor, and a set of operations for each
type. It provides the same operations as the package Containers.Doubly_Linked_Lists
(see
A.18.3), with the difference that the
generic formal Element_Type is indefinite.
Static Semantics
The declaration of
the generic library package Containers.Indefinite_Doubly_Linked_Lists
has the same contents and semantics as Containers.Doubly_Linked_Lists
except:
The generic formal Element_Type is indefinite.
The procedure with
the profile:
procedure Insert (Container : in out List;
Before : in Cursor;
Position : out Cursor;
Count : in Count_Type := 1);
is omitted.
The actual Element parameter of access subprogram
Process of Update_Element may be constrained even if Element_Type is
unconstrained.
The operations Append, Insert, Prepend, and Replace_Element
that have a formal parameter of type Element_Type perform indefinite
insertion (see
A.18).
The description of
Tampering_With_Elements_Prohibited is replaced by:
Returns True if tampering with elements is prohibited
for Container, and False otherwise.
Tampering_With_Cursors_Prohibited is replaced by
Tampering_With_Elements_Prohibited in the postcondition for the operations
Reference and Constant_Reference.
The operations Replace_Element and Swap are omitted
from the nested package Stable.
Ada 2005 and 2012 Editions sponsored in part by Ada-Europe