Boost logo

Boost :

From: John Maddock (john_at_[hidden])
Date: 2005-06-16 07:30:20


This is a kind of first look, review still in progress set of comments:

> What is your evaluation of the design?

Overall it looks mostly fine.

function_type_class: if the member function is cv-qualified is the result of
this metafunction cv-qualified also? If not is there a way to tell if a
member function is cv-qualified?

Reading the docs, I don't understand what function_type_signature is for,
especially when it's members are not recomended for general use. Should
this be an implementation detail?

function_type: OK I understand what it does, but I'm having a hard time
figuring out what it would be for. It's one thing to be able to create a
specific function type, but then you have to be able to do something with it
;-)

> What is your evaluation of the implementation?

Looks OK as far as I've been able to judge.

Some commenbts on the tests: I see lots of tests for is_function_type and
very little for the composition and decompostion functions. I'd like to see
the same sort of thoughoughness that's gone into arity_and_type.cpp applied
to the other templates (probably one test for each).

> What is your evaluation of the documentation?

OK as a reference document (modulo Dave Abrahams comments, which should be
addressed).

The big issue I have is with the motivation section: the problem I have is
that the usefullness of the library isn't immediately obvious to me. Some
of the worked examples might address this, but the interpreter example to
pick just one is quite complicated, so some kind of tutorial is required
here.

The links to the examples, look more like links to tests to me, it would be
much more comprehensible if there were code snippets to illustrate the
points you're trying to make directly in the documentation.

> What is your evaluation of the potential usefulness of the library?

This is the real problem, I can see how a function's return type and arity
may be useful, but I'm having a hard time figuring out what access to the
type of specific function arguments is good for, likewise what the mpl-list
based composition/decomposition functions are for.

Better motivating examples may help, however there is a seems to be
substantial overlap between the functionality offered here and boost::bind,
boost::function etc. Is this library intended to simplify those libraries?
If so what do those libraries authors think?

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

The compilers I expected to pass the tests did so (VC7.1 and 8, Intel 7.1,
8, and 9, gcc various versions).

> Do you think the library should be accepted as a Boost library?

Tricky: yes if there is a clear demand, no otherwise.

John.


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