On 6/19/15 3:07 AM, Louis Dionne wrote:
Joel de Guzman
writes: [...]
A very minimal subset is all that I need, no more. C++14 is rich enough to do TMP easily unlike before when MPL and Fusion were invented. Perhaps you don't even need a TMP library anymore! As a matter of fact, Thomas Heller and I are working on a phoenix-lite experiment with zero TMP library dependencies (only uses std, nothing more). Compile times? Blink of an eye!
Joel, I'd be curious to see this phoenix-lite experiment. In particular, I'd be curious to give a shot at it with Hana when I get some time. It might be one of those examples that really do not benefit from a TMP library, but so far the code always shrinks in size when you use Hana instead of something else (or nothing). If you're using std::tuple, the compile-times should also go down by at least a bit.
It's not just about compile time, no. What's more important to me is the conceptual overhead of using another library to do simple things. TMP in what were once TMP heavy libraries used to take a significant amount of code in c++03. Not anymore. Then of course another factor is minimizing dependencies. The less dependencies the better. Zero is ideal. There are other issues, such as debuggability of TMP code using the lambda trick, if you are still using that for CT efficiency, but I guess I need to dive deeper to give a real review. Not being able to debug TMP code is a showstopper for me. Regards, -- Joel de Guzman http://www.ciere.com http://boost-spirit.com http://www.cycfi.com/