Firstly, I think the bimap library is great.
What would suit my situation is to use a container type of relation that allowed storage of some information with each relationship.
Effectively: map_of_relation< UserDefineValueType, KeyComp > (and related multimap, unordered_map, etc).
As a usage example, in database terms, TableA references TableB.
Attached to the TableA->TableB relationship, would be a bimap of rows in TableA that reference rows in TableB.
So...
typedef
bimap<
set_of<Rows:iterator>,
set_of<Rows:iterator>,
map_of< RelationshipDescription >
> RowRelationships;
typedef bimap<
multiset_of<Table::Ptr>,
multiset_of<Table::Ptr>,
map_of_relation< shared_ptr<RowRelationships> >
> TableRelationships;
Is this easy to add with the current bimap architecture?
Neil