Boost logo

Boost :

Subject: [boost] Boost.Local Review
From: Pierre Morcello (pmorcell-cppfrance_at_[hidden])
Date: 2011-11-16 18:16:17

Hello Boost community,

Here is my review of the local function library.

- What is your evaluation of the design?
The design is clear. Several iterations were done already to come to what it
is today. Of course no one is particularly fond of macros, but a huge work
was done to reduce the potential problems and on the other hand the library
can really help a lot.

- What is your evaluation of the implementation?
I did not get too much into the current implementation. I dug it almost one
year ago, but there were changes since then. The implementation is correct
given the features of the library (use of 'this', functor,, name,...). If
there were less features, then some optimisations would have been possible
(example : not use a virtual function, not use a functor). But the library
would in that case have fewer cases of use. I know how the first verion of
Lorenzo worked but I did not check the latest.
Given the current features, I don't see how to do even better than what
Lorenzo did. So I am happy with the implementation.

- What is your evaluation of the documentation?
I really appreciate the detailled documentation. On a 'merchandising note',
the first page is too big. I think this could 'afraid' some new readers.
Introduction + an 8-line motivating example should be enough to appeal (or
not) the new reader. I am happy to review a submitted library with a
complete documentation (that does not always happen).

- What is your evaluation of the potential usefulness of the library?
This library is filling a few strong needs. Several users including myself
needed local function and const block. I am lazy when it comes to functors,
I also find this library is pretty nice to make them quick. C++11 will on
that last part change it , but const block are a must have in my opinion
which are not available in C++11.

The local function can greatly reduce the presence of internal functions in
".h", and thus make the interfaces much better in some cases.

- Did you try to use the library? With what compiler? Did you have any
I use regularly this library on VC9, but mostly for local function. As I
don't try to push the limits, I did not come into problems.

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

I have followed Lorenzo work since his proposition. At the beginning I
followed it much more closely, but right now I dont' have the time to redo
an in depth study. I use a previous version of Lorenzo library regularly. So
for the review, I simply had a glance. But I already read the documentation
in detail several month ago.

- Are you knowledgeable about the problem domain?

I implemented a my own version of local functions for boost almost 2 years
ago I think.

- Boost.Local's local exits provide the same functionality (and then some)
as Boost.ScopeExit. Does this duplication of functionality need to be
dealt with, and if so, how?

I think it's important to check if the author are ok with merging or not.
Obviously Lorenzo is very motivated and gives great feedback on his works
with boost. Just make sure this won't hurt his motivation ? Because then
there are the question of maintening the libraries which is not always the
I am ok if one replace the other.

- Do you vote for the library?

Yes, I vote for its admission.

I also want to add that I am amazed by the overall results in term of
quality that Lorenzo was able to get with this library. Lorenzo is
constently gathering the users needs and updating his library in that way.
Like a marathonian. Very inspiring!

Best regards,

Pierre Morcello

View this message in context:
Sent from the Boost - Dev mailing list archive at

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