Subject: [boost] Mp11 review
From: paul (pfultz2_at_[hidden])
Date: 2017-07-25 17:40:08
Hi, this is my review of mp11.
Please answer the following questions in your review :
>Â Â 1. Should Mp11 be accepted into Boost? Please state all conditions
>Â Â Â Â Â for acceptance explicity.
Yes Mp11 should be Accepted.
>Â Â 2. What is your evaluation of the design?
Very good design overall. I don't know if I really like the `mp_` prefix.
Trailing underscores is common in boost, but the mp prefix makes sense for
It uses the `std::integral_constant`, but it might be nice to use another
implementation, as that can help make it consistent between C++11 and C++14.
Also, providing an integral constant with operators could help improve
interoperability with hana-style metaprogramming(which also help interoperate
with the Fit library as well). Of course, I don't know if mp11 is right place
for it. It seems it would be better to have a separate library for this and
the other C+14 features as well.
Also why is `mp_with_index` only constexpr on C++14 and higher?
>Â Â 3. What is your evaluation of the implementation?
The implementation seems to be good and provides competive performance with
other metaprogramming libraries, but I do wonder if some of Odin's
metaprogramming techniques(such as recursive aliases) can be used to improve
the performance as well.
>Â Â 4. What is your evaluation of the documentation?
Very well documented and organized.
>Â Â 5. What is your evaluation of the potential usefulness of the library?
I think this library can be very useful for C++11 metaprogramming where I have
needed. I don't think it would be as useful for the Fit and Tick library
because they still target gcc 4.6, which mp11 doesn't support due to being
based around template aliases.Â
>Â Â 6. Did you try to use the library? With what compiler? Did you have
>Â Â Â Â Â any problems?
Yes, I did, and also ran the tests. I tried to run the tests on some
configurations that aren't ran in the travis CI(like clang 3.5 with C++14).
And all the tests do pass.
>Â Â 7. How much effort did you put into your evaluation? A glance? A quick
>Â Â Â Â Â reading? In-depth study?
I spent a couple hours reviewing, and I have implement ad-hoc versions of
these in my own libraries as well.