On Wed, 2017-03-01 at 21:56 +0300, Antony Polukhin via Boost wrote:
2017-02-21 13:52 GMT+03:00 Михаил Максимов via Boost
: 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:
<...>
made me wonder, is there interest in variadic templates implementation? Are there limitations for it's usefulness, which I did not see?
I'm very interested in patching MPL to be able to use variadic templates.
There are many C++ libraries and code that use MPL. Those libraries can not switch from MPL to Metal or Hana because: * they have to be usable in C++98/C++03 and C++11 * they have a huge code base that can not be simply migrated to new library * they depend on third party libraries that use MPL and need the ability to interact with those libraries
Moreover, making MPL variadic will not just speed up compilation, but also will: * reduce executable size and improve startup times if MPL structure is part of an exported entity * improve runtime speed if MPL structure is part of an entity that is used in operations involving typeid()
So please, continue the work and make a pull request.
I wonder if instead an MPL implementation could be written with a Metal backend for newer compilers and use the legacy MPL for C++03 compiler. I thought Bruno was developing something like that at one point. So building off of that could be useful. Although, Metal is not in boost yet, hopefully it will be soon. Paul