Le 22/04/14 16:09, Louis Dionne a écrit :
Dear Boost,
As a follow-up to [1], I am probing the community to help clarify what are your needs/expectations with respect to a new TMP library. Your involvement is important as it will help direct my work on an eventual successor to the MPL (in consultation with my mentor, Joel Falcou).
I expect this to be the first of a series of probes to the community. This one focuses on backward compatibility with the MPL.
COMMUNITY PROBE --------------- Please comment on how you would like to see the following points addressed by a new TMP library:
(1) Backward compatibility with the MPL. Should it be a swap-in replacement? Is it enough to have an easy way to interoperate between both libraries (think Fusion/MPL interoperation)?.
(2) Learning curve for users coming from the MPL. How important is it for you to be able to reuse your knowledge of the MPL (not of TMP, but of the MPL itself)?.
Please get involved by posting constructive material.
Hi,
I'm not concerned with MPL-backward compatibility or the learning curve for users coming from MPL. You have an opportunity to build a new TMP library, the work will be long and hard, but adding more constraints than needed wouldn't help. TMP should be a basic library and other inter-operable libraries must be build on top of it.
Of course, the new TMP should perform better and be easier to learn than MPL. This must be possible as C++14 provides more features and so you will be able to choose the ones that go towards this goal.
What I would like is something that can be proposed to the C++ standard. A little bit more of TMP in the standard would be much better than much more in Boost but outside the C++ standard. I agree completely. I recently developed my own type set since I could not use MPL (no full variadicity) or the standard library (no type set). And even though it was kind of fun to implement, I would have preferred to use something from the standard (or from something aiming to become
On 2014-04-22 23:33, Vicente J. Botet Escriba wrote: the standard). That being said, I think you should aim for TMP14. Personally I would very much consider C++14 plus Concepts Lite, because you are building a library for the future, not for the past. Best regards, Roland