Subject: Re: [boost] [GSoC] A C++11 enabled TMP library (accepted)
From: Abel Sinkovics (abel_at_[hidden])
Date: 2014-04-22 15:13:38
On 2014-04-22 15:42, Louis Dionne wrote:
> Some of the core features of the (current) new library require diverging
> from the MPL in the following ways:
> - No more iterators. They do not bring anything performance-wise and they
> make the implementation of sequences considerably more complicated.
> - Laziness. This is a key point to improve expressiveness and could
> also improve performance in some use cases. I'm still investigating
> on that matter though.
> - No more implicit lambda expressions. These interact poorly, leading to
> counterintuitive behavior as in . Usage of aliases could make the
> problem even worse.
I think laziness and explicit lambda expressions are both important
changes and make the life of metaprogram authors easier (both for
development and debugging metaprograms). I've spent a lot of time
debugging issues related to implicit lambda expressions during the
development and maintenance of code based on the current MPL.
Lazy code is compact and readable, but be careful with its impact on
compilation speed and memory usage. It might significantly increase the
number of template instantiations you need to make. (See "Boosting MPL
with Haskell elements" from last year's C++Now for further details).
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk