Vinnie Falco wrote:
* Documentation: https://rawgit.com/pdimov/mp11/master/doc/html/mp11.html
Is there a rationale explaining how mp11 differentiates itself from the numerous other metaprogramming libraries, some in Boost? Why does Boost need yet another one of these things?
Mp11 differentiates itself from Boost.MPL by being based on C++11 constructs such as template aliases and variadic templates. Compared to Boost.Hana, Mp11 offers pure type-based metaprogramming. This more limited scope in practice translates to more compilers supported and faster compile times. If we look outside Boost, compared to Metal, the main difference is that Mp11 is generic with respect to the List and Number concepts; it works with std::tuple, std::pair, std::variant, the lot, and it supports type traits of the is_const variety directly.