Dear community, I've recently started contributing to boost::variant. To speed up variant's compilation I'm implementing mpl::vector on variadic templates. For now status of new vector implementation is: 1) it passes all mpl/test tests on gcc 4.9 and 6.3 2) it is decoupled from mpl::vectorN, simultaneously making mpl::vectorN visible, so libs like Boost.Geometry, which rely on mpl::vectorN compile nicely 3) There are several compilation errors during full build on gcc 4.9 and 6.3 4) I fix problems on mpl/tests stage for clang 3.4 and latest MSVS2017 compiler Bruno's introduction of new shiny Metal library and Sergey's comment in the same thread:
The biggest and most useful feature of "new" TMP libraries is variadic templates that increase performance by a really huge factor. The problem with MPL is that vector type sequence must derive from vectorN-s, which are documented and can be used in template specialization. So it is impossible or pointless to remplement mpl::vector in terms of variadic parameters because of that. The other problem that I can quickly recall is recursive iterator-based approach, which also kills performance.
made me wonder, is there interest in variadic templates implementation? Are there limitations for it's usefulness, which I did not see? Regards, Mike Maximov