Руководство по Ada (Ada 2022)
A.18.17 Универсальный пакет Containers.Indefinite_Multiway_Trees
Определяемый языком универсальный пакет Containers.Indefinite_Multiway_Trees предоставляет многодорожечное дерево с теми же операциями, что и пакет Containers.Multiway_Trees (см. A.18.10), с той разницей, что универсальный формальный параметр Element_Type является неопределенным.
Статическая семантика
Объявление универсального библиотечного пакета Containers.Indefinite_Multiway_Trees имеет то же содержимое и семантику, что и Containers.Multiway_Trees, за исключением:
- Универсальный формальный параметр Element_Type является неопределенным.
- Процедура с профилем:
procedure Insert_Child (Container : in out Tree;
Parent : in Cursor;
Before : in Cursor;
Position : out Cursor;
Count : in Count_Type := 1);
Parent : in Cursor;
Before : in Cursor;
Position : out Cursor;
Count : in Count_Type := 1);
исключена.
- Фактический параметр Element процедурного подпрограммы Process обновления Update_Element может быть ограничен, даже если Element_Type не ограничен.
- Операции Append_Child, Insert_Child, Prepend_Child и Replace_Element, имеющие формальный параметр типа Element_Type, выполняют неопределенную вставку (см. A.18).
- Описание Tampering_With_Elements_Prohibited заменено на:
Возвращает True, если манипуляции с элементами запрещены для Container, и False в противном случае.
- Tampering_With_Cursors_Prohibited заменено на Tampering_With_Elements_Prohibited в постусловии для операций Reference и Constant_Reference.
- Операции Replace_Element и Swap исключены из вложенного пакета Stable.