Advanced Metaprogramming in Classic C++ aims to be both an introduction and a reference to C++ 14 and 11 template metaprogramming (TMP); TMP is presented in the book as a set of techniques that will bring a new style in C++ and make code exceptionally clear and efficient. The book deals with language aspects, design patterns, examples and applications (seen as case studies). Special emphasis is put on small reusable techniques that will improve the quality of daily work.
This book also takes a realistic look at the utility of the two latest standard changes in C++ and how they effect your code.
What makes the book exceptional is the level of understanding of the concepts involved imparted by the author. This is not just a rote overview of metaprogramming. You will truly understand difficult topics like static assertions, how to write metafunctions, overload resolution, lambda expressions, and many others. More than that, you will work through them with practical examples guided by the author's frank explanations. This book requires you to think and to learn and to understand the language so that you can program at a higher level.
What you’ll learn
What are templates and the small object toolkit and how to use theseHow to do overload resolution
How to do metaprogramming with interfaces, algorithms, functors and refactoring
How to work with code generators
What is opaque type principle and how to use it
How to work with debugging templates and more
Who this book is for
This book is for experienced C++ programmers who want to learn more.