On 5/19/14, 9:11 PM, Zach Laine wrote:
I was one of the people at the conference that tried to convince Louis to approach things this way. I wasn't the only one, and I can only speak for myself. The advantage to me is that I might have a library that I can use to do *both* compile-time only, and runtime+compiletime operations. Now that I have constexpr function and decltype(), I find the lines between compiletime and runtime operations to be sufficiently blurred that I don't draw the clear distinction I once did. For instance, in C++14, I can simply elide certain metafunctions I used to require to compute the return values of certain functions -- anything that can be done with a fold can be written in the form "auto foo (args) { return fold(some_fn, args); }". This makes me gravitate towards a solution that marries runtime and compile time as much as possible.
That being said, it doesn't look like Louis is committed to one approach or another yet; he is still investigating. Also, he is not committed to making a drop-in Fusion replacement, just an updated MPL for C++11/14. He is simply trying to incorporate Fusion-like elements in that where they are appropriate. Louis, please correct me if I'm mistaken.
Sounds very cool. I'd love to see a proof of concept toy example. Anyone? My concern here is that constexpr has severe limitations. I wonder how useful a fusion library based on constexpr will be. Regards, -- Joel de Guzman http://www.ciere.com http://boost-spirit.com http://www.cycfi.com/