Руководство по Ada (Ada 2022)
A.18.11 Обобщённый пакет Containers.Indefinite_Vectors
Определяемый языком обобщённый пакет Containers.Indefinite_Vectors предоставляет частный тип Vector и набор операций. Он предоставляет те же операции, что и пакет Containers.Vectors (см. A.18.2), с той разницей, что обобщённый формальный параметр Element_Type является неопределённым.
Статическая семантика
Декларация обобщённого библиотечного пакета Containers.Indefinite_Vectors имеет такое же содержимое и семантику, что и Containers.Vectors, за исключением:
- Обобщённый формальный параметр Element_Type является неопределённым.
- Процедуры с профилями:
процедура Insert (Container : вход-выход Vector;
Before : вход Extended_Index;
Count : вход Count_Type := 1);
Before : вход Extended_Index;
Count : вход Count_Type := 1);
процедура Insert (Container : вход-выход Vector;
Before : вход Cursor;
Position : выход Cursor;
Count : вход Count_Type := 1);
Before : вход Cursor;
Position : выход Cursor;
Count : вход Count_Type := 1);
исключаются.
- Фактический параметр Element доступа к подпрограмме Process типа Update_Element может быть ограниченным, даже если Element_Type не ограничен.
- Операции "&", Append, Insert, Prepend, Replace_Element и To_Vector, имеющие формальный параметр типа Element_Type, выполняют неопределённую вставку (см. A.18).
- Описание Tampering_With_Elements_Prohibited заменено на:
Возвращает True, если вмешательство в элементы запрещено для Container, и False в противном случае.
- Tampering_With_Cursors_Prohibited заменено на Tampering_With_Elements_Prohibited в постусловии для операций Reference и Constant_Reference.
- Операции Replace_Element, Reverse_Elements и Swap, а также вложенный обобщённый модуль Generic_Sorting исключены из вложенного пакета Stable.