Advanced Metaprogramming in Classic C++ Front Cover

Advanced Metaprogramming in Classic C++

  • Length: 572 pages
  • Edition: 1
  • Publisher:
  • Publication Date: 2015-04-29
  • ISBN-10: 1484210115
  • ISBN-13: 9781484210116
  • Sales Rank: #1340110 (See Top 100 Books)
Description

Advanced Metaprogramming in Classic C++ aims to be both an introduction and a reference to C++ 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.

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 templates and the small object toolkit are, and how to use them
  • How 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.

Table of Contents

Chapter 1. Templates
Chapter 2. Small Object Toolkit
Chapter 3. Static Programming
Chapter 4. Overload Resolution
Chapter 5. Interfaces
Chapter 6. Algorithms
Chapter 7. Code Generators
Chapter 8. Functors
Chapter 9. Opaque Type Principle
Chapter 10. Refactoring
Chapter 11. Debugging Templates
Chapter 12. C++0X
Appendix A: Exercises
Appendix B: Bibliography

To access the link, solve the captcha.