Boost logo

Boost :

From: AlisdairM (alisdair.meredith_at_[hidden])
Date: 2007-02-20 14:21:41


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.

- 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.

- 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.

- 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.

- Did you try to use the library? With what compiler? Did you have any
problems?

I have not tested, but my installed compiler does not support some of
the dependent libraries, notably multi_index.

- How much effort did you put into your evaluation? A glance? A quick
reading? In-depth study?

Around 3 hours studying the documentation.

- Are you knowledgeable about the problem domain?

I would describe myself as competent-but-not-expert, which should
probably be the case for the majority of users of this library.

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.

-- 
AlisdairM

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