Consider replacing `brigand` at some point
brigand
is no longer maintained, and has some issues -- using it to do more complex type transformations on MSVC 2015 has been a minefield of avoiding ICEs.
A more recent MPL that is actively maintained is meta
: https://github.com/ericniebler/meta/blob/master/include/meta/meta.hpp
It looks fairly complete at a glance and has decent in-line doxygen documentation.