C++ Template Metaprogramming

Using metaprogramming techniques, you can engineer software with
greater quality, portability, and reusability. You can write
more expressive and elegant code, and waste less
time on "boilerplate". In short, you won't just
be more productive: you'll have more fun, too.
If you code with C++, the Boost MPL
offers high-level facilities that make metaprogramming even more
useful and accessible. Now, for the first time,
there's a book that demystifies both metaprogramming and
the Boost MPL.
In this book, the authors illuminate
the "how", "why", and "when" of metaprogramming, explain
its advantages, & show how to apply it
in real-world development projects.
Coverage includes:
- Fundamental metaprogramming concepts:
traits, type manipulation, type wrappers, & more;
- A
look at metafunctions & metafunction classes, sequences, algorithms,
iterators, diagnostics, views, iterator adaptors, & more;
- Boost
MPL: motivation, usage, design, implementation, & practical examples;
- Lessons & best practices for C++ template
metaprogramming;
- Crossing the compile-time/runtime boundary;
- Domain-Specific Embedded Languages,
including a complete DSEL design walkthrough.