Подводя итог, можно сказать, что это полная схема инстанциации.
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
- распределитель: распределитель