Book description
Abrahams and Gurtovoy have written something close to a
classic… marvelous fun to read…
Read the complete book review by Jack
J. Woehr, Dr. Dobbs Journal, June 03, 2005
"If you're like me, you're excited by what
people do with template metaprogramming (TMP) but are frustrated at
the lack of clear guidance and powerful tools. Well, this is the
book we've been waiting for. With help from the excellent Boost
Metaprogramming Library, David and Aleksey take TMP from the
laboratory to the workplace with readable prose and practical
examples, showing that "compile-time STL" is as able as its runtime
counterpart. Serving as a tutorial as well as a handbook for
experts, this is the book on C++ template metaprogramming."
—Chuck Allison, Editor, The C++ Source
C++ Template Metaprogramming sheds light on the most powerful idioms of today's C++, at long last delivering practical metaprogramming tools and techniques into the hands of the everyday programmer.
A metaprogram is a program that generates or manipulates program code. Ever since generic programming was introduced to C++, programmers have discovered myriad "template tricks" for manipulating programs as they are compiled, effectively eliminating the barrier between program and metaprogram. While excitement among C++ experts about these capabilities has reached the community at large, their practical application remains out of reach for most programmers. This book explains what metaprogramming is and how it is best used. It provides the foundation you'll need to use the template metaprogramming effectively in your own work.
This book is aimed at any programmer who is comfortable with idioms of the Standard Template Library (STL). C++ power-users will gain a new insight into their existing work and a new fluency in the domain of metaprogramming. Intermediate-level programmers who have learned a few advanced template techniques will see where these tricks fit in the big picture and will gain the conceptual foundation to use them with discipline. Programmers who have caught the scent of metaprogramming, but for whom it is still mysterious, will finally gain a clear understanding of how, when, and why it works. All readers will leave with a new tool of unprecedented power at their disposal—the Boost Metaprogramming Library.
The companion CD-ROM contains all Boost C++ libraries, including the Boost Metaprogramming Library and its reference documentation, along with all of the book's sample code and extensive supplementary material.
Table of contents
- Title Page
- Copyright Page
- Contents
- The C++ In-Depth Series
- Preface
- Acknowledgments
- Making the Most of This Book
- Chapter 1. Introduction
- Chapter 2. Traits and Type Manipulation
- Chapter 3. A Deeper Look at Metafunctions
- Chapter 4. Integral Type Wrappers and Operations
- Chapter 5. Sequences and Iterators
- Chapter 6. Algorithms
- Chapter 7. Views and Iterator Adaptors
- Chapter 8. Diagnostics
- Chapter 9. Crossing the Compile-Time/Runtime Boundary
- Chapter 10. Domain-Specific Embedded Languages
- Chapter 11. A DSEL Design Walkthrough
- Appendix A. An Introduction to Preprocessor Metaprogramming
- Appendix B. The
- Appendix C. Compile-Time Performance
- Appendix D. MPL Portability Summary
- Appendix . CD-ROM Warranty
- Bibliography
- Index
- Footnotes
Product information
- Title: C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond
- Author(s):
- Release date: December 2004
- Publisher(s): Addison-Wesley Professional
- ISBN: 0321227255
You might also like
video
Further Exploration of C++ Templates and Metaprogramming
Designed for intermediate level C++ programmers, this course focuses on the advanced features and techniques made …
book
Practical C++ Metaprogramming
To say that C++ programmers embrace metaprogramming is a real stretch. Outright rejection is probably more …
video
Diving Deeper into C++ Templates
Templates form the foundation of modern C++ programming; they must be understood, not only to use …
book
Hands-On Design Patterns with C++
A comprehensive guide with extensive coverage on concepts such as OOP, functional programming, generic programming, and …