Practical C++ Metaprogramming

Modern Techniques for Accelerated Development

Practical C++ Metaprogramming

Get the free ebook

To say that C++ programmers embrace metaprogramming is a real stretch. Outright rejection is probably more accurate. And yet, C++ template metaprogramming is ideal for performing automatic compile-time optimization. With this example-driven ebook, you’ll learn how improved metaprogramming techniques in C++11 and C++14 can help you avoid a lot of mistakes and tedious work by making the compiler work for you.

Authors Edouard Alligand and Joel Falcou show you how the process works and what it takes to build and apply a basic metaprogramming toolbox. Then comes the real payoff: you’ll learn about a set of existing metaprogramming techniques you can use to perform fast and precise metaprogramming tasks without error—including the Boost.MPL, Boost.Hana, and Brigand libraries.

  • Understand basic metaprogramming concepts: programs whose input and output are programs themselves
  • Learn how metaprogramming principles can help make your code more compact, generic, elegant, and less error-prone
  • Explore how features in C++11 and C++14 make the design of metaprograms easier
  • Improve performance, reduce maintenance, and test less often

Fill out the form below

All fields are required.

We protect your privacy.

Edouard Alligand

Edouard Alligand is Chairman and CTO of Quasardb, an advanced, distributed hyper-scalable database. He has more than 15 years of professional experience in software engineering. He combines an excellent knowledge of low-level programming with a love for template metaprogramming, and likes to come up with uncompromising solutions to seemingly impossible problems.

Joel Falcou

Joel Falcou is CTO of NumScale, an Associate Professor at the University Paris-Sud, and Researcher at the Laboratoire de Recherche d’Informatique in Orsay, France. He is a member of the C++ Standards Committee, and is the author of Boost.SIMD and NT2. His research focuses on studying generative programming idioms and techniques to design tools for parallel software development.