Boost logo

Boost :

From: Matias Capeletto (matias.capeletto_at_[hidden])
Date: 2007-02-20 14:52:48

On 2/20/07, AlisdairM <alisdair.meredith_at_[hidden]> wrote:
> This is a basic review of the bimap library - limitted to reading the
> documentation so far as I don't believe it will compile on my primary
> compiler (Borland) due to a dependency on another unsupported libary
> (multi_index)
> My recommendation is 'accept', pending confirmation from other
> reviewers who can actually compile and use the code.

Thanks for being the first one to vote!

> - What is your evaluation of the design?
> The interface seems clean and composable, with a useful default
> behaviour and several extension points leading to a wide variety of
> supported 'advanced' behaviours.

> In particular, the 'tagging' feature should lead to better
> self-documenting code, and the ability to plug in different containers
> as the view for each 'side' of the bimap looks extremely powerful,
> allowing the user to trade off performance in time and space against
> required functionality.

That was one of the design goals. The idea is that you can use the
basic functionality of the library just typing bimap<X,Y>, with out
knowing the advance features, like tagging or controlling the constrains
of the sets that compose the bidirectional mapping.

> - What is your evaluation of the implementation?
> Not evaluated due to unsupported compiler.
> Strongly encouraged by the re-use of existing boost libraries as the
> building blocks. While this composition may lead to problems for
> future boost distributions (witness problems assembling the 1.34
> release) this kind of re-use of existing components should lead to
> stronger libraries in the long run, and should become less of an issue
> as non-conforming compiler become rarer.

I agree with you, that was the idea behind building this library with heavy
boost code reuse in mind.

> - What is your evaluation of the documentation?
> High quality, with effrective use made of diagrams to illustrate the
> key points. This serves as a strong introduction to the library, both
> for its intended purpose and simple applications / tutorial. As I have
> not been able to test the library in anger, I have not made much use of
> the reference manual itself.

> - What is your evaluation of the potential usefulness of the library?
> I have certainly needed a library like this in various projects over
> the last few years. Lacking such a facility I have code up separate
> containers and maintained the joiing logic within my applications - a
> less than perfect solution.

It is not only a problem of space or time efficiency, maintaining
the logic could lead to a real nightmare.

> I would like to thank Matias for all the hard work in bringing this
> library up to review standards. In particular the effort in the
> documentation is appreciated, as this is easily overlooked.
> I will certainly be looking to extend support to the Borland compiler
> should this library be accepted.

Thanks again for the positive review!

Best regards

Boost list run by bdawes at, gregod at, cpdaniel at, john at