Руководство по Ada (Ada 2022)
A.18.13 Обобщённый пакет Containers.Indefinite_Hashed_Maps
Определяемый языком обобщённый пакет Containers.Indefinite_Hashed_Maps предоставляет карту с теми же операциями, что и пакет Containers.Hashed_Maps (см. A.18.5), с той разницей, что обобщённые формальные типы Key_Type и Element_Type являются неопределёнными.
Статическая семантика
Объявление обобщённого библиотечного пакета Containers.Indefinite_Hashed_Maps имеет то же содержимое и семантику, что и Containers.Hashed_Maps, за исключением:
- Обобщённый формальный тип Key_Type является неопределённым.
- Обобщённый формальный тип Element_Type является неопределённым.
- Процедура со следующим профилем:
procedure Insert (Container : in out Map;
Key : in Key_Type;
Position : out Cursor;
Inserted : out Boolean);
Key : in Key_Type;
Position : out Cursor;
Inserted : out Boolean);
исключена.
- Фактический параметр Element в процедуре доступа Process типа Update_Element может быть ограниченным, даже если Element_Type не ограничен.
- Операции Include, Insert, Replace и 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 и Replace_Element исключены из вложенного пакета Stable.