This article investigates the use of metafunctions in template metaprogramming, and introduces the Boost Metaprogramming Library. It is an excerpt from the book, C++ Template Metaprogramming by David Abrahams and Aleksey Gurtovoy.
Introduces the syntax for declaring and using variadic templates, along with some simple examples of variadic function templates and variadic class templates.
Discover the interesting ways that templates and inheritance interact by taking a close look at named template arguments, the Empty Base Class Optimization (EBCO), the Curiously Recurring Template Pattern (CRTP), and parameterized virtuality.
Nicolai M. Josuttis and David Vandevoorde examine metaprogramming, or "programming a program." Learn how to lay out code that the programming system executes to generate new code that implements the functionality you really want.