Подводя итог, можно сказать, что это полная схема инстанциации.
typedef bimap
<
LeftCollectionType, RightCollectionType
[ , SetTypeOfRelation ]
[ , with_info< Info > ]
[ , Allocator ]
> bm;
<{Side}CollectionType
>может быть типом. Это может быть<set_of<Type>
>или<{CollectionType}_of<Type>
>спецификация. Кроме того, тип этих двух параметров можно пометить, чтобы указать имена, определенные пользователем, вместо обычных<member_at::-Side-
>тегов.
Возможные способы использования первого параметра:
bimap< Type, R >
- Левый тип:<
Type
>
- Левый тип коллекции:<
set_of<Type
>
>
- Слева:<
member_at::left
>
bimap< {CollectionType}_of< Type >, R >
- Левый тип:<
Type
>
- Левый тип коллекции:<
{CollectionType}_of<LeftType>
>
- Слева:<
member_at::left
>
bimap< tagged< Type, Tag >, R >
- Левый тип:<
Type
>
- Тип коллекции:<
set_of<LeftType
>
>
- Слева:<
Tag
>
bimap< {CollectionType}_of< tagged< Type, Tag > >, R >
- Левый тип:<
Type
>
- Левый тип коллекции:<
{CollectionType}_of<LeftType>
>
- Слева:<
Tag
>
Для второго параметра доступны те же варианты.
Последние три параметра используются для указания типа сбора отношения, элемента информации и типа распределителя.
Если вы хотите указать тип выделения, полагаясь на значение по умолчанию CollectionTypeOfRelation, вы можете сделать это, просто написав<bimap<LeftKeyType,
RightKeyType,
Allocator>
>. Повышаю. Внутренний механизм Бимапа обнаруживает, что третий параметр в данном случае относится не к типу отношения, а к распределителю.
Ниже приведены возможные способы инстанцирования последних трех параметров бимапа. Вы можете игнорировать некоторые параметры, но порядок должен соблюдаться.
bimap< L, R >
- set_of_relation_type: в зависимости от типа левого ключа
- Источник: No Info
- Исполнитель: Allocator
bimap< L, R ,SetOfRelationType>
- set_of_relation_type: SetOfRelation Тип
- Источник: No Info
- Исполнитель: Allocator
bimap< L, R , SetOfRelationType, with_info<Info> >
- set_of_relation_type: SetOfRelation Тип
- Источник: Info
- Исполнитель: Allocator
bimap< L, R , SetOfRelationType, with_info<Info>, Allocator>
- set_of_relation_type: SetOfRelation Тип
- Источник: Info
- распределитель: распределитель
bimap< L, R , SetOfRelationType, Allocator>
- set_of_relation_type: SetOfRelation Тип
- Источник: No Info
- распределитель: распределитель
bimap< L, R , with_info<Info> >
- set_of_relation_type: в зависимости от типа левого ключа
- Источник: Info
- Исполнитель: Allocator
bimap< L, R , with_info<Info>, Allocator>
- set_of_relation_type: в зависимости от типа левого ключа
- распределитель: распределитель
bimap< L, R , Allocator>
- set_of_relation_type: в зависимости от типа левого ключа
- Источник: No Info
- распределитель: распределитель