Hi, this is my review of mp11. Please answer the following questions in your review [4]:
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 standardization. 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. Paul
participants (1)
-
paul