Boost logo

Boost :

Subject: Re: [boost] [GSoC] A C++11 enabled TMP library (accepted)
From: Louis Dionne (ldionne.2_at_[hidden])
Date: 2014-04-22 09:42:45


Edward Diener <eldiener <at> tropicsoft.com> writes:

[...]

> Please consider making the your library as close as possible usage-wise
> to the current TMP library so as to make the transition for all the
> other libraries which use TMP as easy as possible.

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 [1]. Usage of aliases could make the
      problem even worse.

There is more, but that is what comes to mind right now. Note that I did
reimplement a (rather large) subset of the MPL in a backward compatible
fashion before I came to these conclusions.

What is definitely possible is to make MPL data types (vector, int_, etc..)
compatible with the new library. It should also be possible to make data types
from the new library compatible with the old algorithms. That way, you could
modernize some metafunctions without having to rewrite the whole metaprogram.

I would like to know what other people think about this; I'm making a
community probe.

Thanks for your input,
Louis Dionne

[1]: https://svn.boost.org/trac/boost/ticket/8608


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk