A.18.17 The Generic Package Containers.Indefinite_Multiway_Trees
{
AI05-0136-1}
The language-defined generic package Containers.Indefinite_Multiway_Trees
provides a multiway tree with the same operations as the package Containers.Multiway_Trees
(see
A.18.10), with the difference that
the generic formal Element_Type is indefinite.
Static Semantics
{
AI05-0136-1}
The declaration of the generic library package Containers.Indefinite_Multiway_Trees
has the same contents and semantics as Containers.Multiway_Trees except:
The generic formal Element_Type is indefinite.
The procedure with
the profile:
procedure Insert_Child (Container : in out Tree;
Parent : in Cursor;
Before : in Cursor;
Position : out Cursor;
Count : in Count_Type := 1);
is omitted.
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.
The actual Element parameter of access subprogram
Process of Update_Element may be constrained even if Element_Type is
unconstrained.
{
AI12-0035-1}
The operations Append_Child, Insert_Child, Prepend_Child,
and Replace_Element that have a formal parameter of type Element_Type
perform indefinite insertion (see A.18).
Extensions to Ada 2005
{
AI05-0136-1}
The generic package Containers.Indefinite_Multiway_Trees
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