Metaprogramming evolution: The right way to work with type lists

Day 1 /  / Track 2  /  RU / Hardcore. Really hard and demanding talk, you'll understand only if you're an experienced engineer.

We'll dive deep into metaprogramming through the ages. We'll discuss general metaprogramming approaches and then proceed to type lists. Step by step, we'll write a small type list management library similar to Boost.Hana. For each problem we'll discuss several possible solutions, from outdated, but none the less interesting C++98/03 approaches to advanced C++17 and even C++20 techniques.