Boost logo

Boost :

Subject: Re: [boost] [review][mp11] Formal review of Mp11
From: Roberto Hinz (robhz786_at_[hidden])
Date: 2017-07-24 01:36:06


Hi,

my review ( this is my first one ):

1. Should Mp11 be accepted into Boost? Please state all conditions
   for acceptance explicitly.

Yes. No conditions.

2. What is your evaluation of the design?

I don't know the other MP libraries, so I lack some basis of comparison
But anyway, the library is easy to use an has vast application.
So I find the design very good.

I have nothing against the mp_ prefix,

There are just some names I would change.
Nothing really important. Just matter of personal taste.
But will mention them to see if others agree:

mp_eval_if_c<C, T, F, U…​>
 From this name I would expect F<U...> to be evaluated
 when C is true, instead of when it's false.

mp_take
 The name doesn't make it clear what it is taking.
 I would rather call it mp_front_slice, or
 something like that.

3. What is your evaluation of the implementation?

Very good: has good performance, well organized,
easy to understand and to maintain.

4. What is your evaluation of the documentation?

I found the reference easy to follow.

The examples required some effort. But only because
they really exercise my understanding.
And that's a good thing, IMO.

TMP requires from the newcomers to think in a
different way and the two preliminary articles are
really helpful in this sense. I found them very valuable.
They made me fell stimulated instead of intimidated.

5. What is your evaluation of the potential usefulness of the library?

Some claimed that modern C++ makes TMP so much easier
that TMP libraries brings little benefit today.

But sometimes is not that easy to figure out which
solution to a certain problem would perform better,
specially when one is not very experienced.
The author benchmarked different solutions
to pick the best. This makes the library valuable.

Some of the tools provided by the library are trivial
to implement but very general purpose. So it's nice to
have them in a library so that one doesn't need to
reimplement one's own version repeatedly.

Hence I find the library useful.

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

Did not use it.

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

Most of the time I spent studying the articles and the examples.
I took a glance in the code.

8. Are you knowledgeable about the problem domain?

Not much. I started doing some more heavy TMP only more recently.
As I said, I don't know the other TMP libraries

Roberto


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