Over the past two years I presented new ways to write algorithms in template metaprogramming with the kvasir::mpl library at various conferences. In this talk, after a brief review of some of those advances, I would like to show how my latest creation: the boost.tmp library (not yet submitted to boost) offers a relatively feature complete DSL with which one can meet the vast majority of metaprogramming needs with no disambiguators and odd keywords. We can even benefit from the added clarity of a DSL without increasing compilation time.
We will also explore other strategies of SFINAE use, more efficient use of type_traits as well as a teaser of my vision of what fusion style metaprogramming should look like.