Boost logo

Boost :

From: Matias Capeletto (matias.capeletto_at_[hidden])
Date: 2006-08-09 01:32:03


Hello,

Boost.Bimap, my SoC project is ready to confront the list.
The project is being mentored by Joaquín López Muñoz. I want
to publicly thank him.

With Boost.Bimap you can create associative containers where
both types can be used as key. You can think a bimap<X,Y> as
a merge of a std::map<X,Y> and a std::map<Y,X>. The learning
curve of bimap is almost zero if you know how to use standard
containers.

The original project that encompasses the creation of a one to
one bidirectional map has been extended into a framework that
extends the standard mapping scheme. A bimap is a very flexible
and powerful container, but the interface of the library allows
a user to use it out of the box.

The project information, docs and sources can be found here:
http://cablemodem.fibertel.com.ar/mcape/oss/projects/mc_projects/boost_projects/boost_bimap.html

I will be very pleased if you can make some spare time to review
the interface, design, implementation and documentation of this
library and comment on it.
Because it is better to go clean from the beginning, these are
some of the questions that will surely rise a discussion.

* Do you like the usage interface?

* In relation with Boost.MultiIndex, Do you think that it is
  worth to have a bidirectional map library in Boost, that trades
  generality for a better specialized user interface?
  (Because this library was encouraged by the boost mentors the
  answer will surely be yes, but it is a nice discussion to have)

* Do you like the extended mapping framework?
  Do you think it is intuitive for someone with a stl background?

* What do you think of the design of operator[]?
  Is there a better way to be coherent with the stl that does not imply
  throwing exceptions?

* What is your evaluation of the implementation?
  I am very interested in your reaction to the zero-overhead achieved
  by the almost-standard mutant_relation class, and the standard
  compliant label that this library acquires by including the
  standard_relation class.
  A big part of the library implementation is ContainerAdaptor.
  Do you deem Boost.ContainerAdaptor worth eventually proposing to
  Boost?

Looking forward to getting your feedback,

Matias Capeletto


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk