Bibliographic record and links to related information available from the Library of Congress catalog.
Note: Contents data are machine generated based on pre-publication provided by the publisher. Contents may have variations from the printed book or be incomplete or contain other coding.
Table of Contents Chapters Preface Acknowledgements Making the Most of This Book 1 - Introduction 2 - Traits and Type Manipulation 3 - A Deeper Look at Metafunctions 4 - Integral type wrappers and operations 5 - Sequences and Iterators 6 - Algorithms 7 - Views and iterator adaptors 8 - Diagnostics 9 - Crossing the Compile-Time/Runtime Boundary 10 - Domain-Specific Embedded Languages 11 - A DSEL Design Walkthrough Appendices Appendix A (An Introduction to Preprocessor Metaprogramming) Appendix B (The typename and template Keywords) Appendix C (Compile Time Performance) Appendix D (MPL Portability Summary) Supplementary Material Things that might be covered in a Vol II 1 2 Chapters Preface HTML (pdf) Acknowledgements HTML (pdf) Making the Most of This Book HTML (pdf) 1 - Introduction HTML (pdf) 2 - Traits and Type Manipulation HTML (pdf) 3 - A Deeper Look at Metafunctions HTML (pdf) 4 - Integral type wrappers and operations HTML (pdf) 5 - Sequences and Iterators HTML (pdf) 6 - Algorithms HTML (pdf) 3 7 - Views and iterator adaptors HTML (pdf) 8 - Diagnostics HTML (pdf) 9 - Crossing the Compile-Time/Runtime Boundary HTML (pdf) 10 - Domain-Specific Embedded Languages HTML (pdf) 11 - A DSEL Design Walkthrough HTML (pdf) Appendices Appendix A (An Introduction to Preprocessor Metaprogramming) HTML (pdf) Appendix B (The typename and template Keywords) HTML (pdf) Appendix C (Compile Time Performance) A discussion of the costs of various computations at compile time. HTML (in progress) (pdf) Appendix D (MPL Portability Summary) HTML (in progress) (pdf) Supplementary Material This material will appear on the CD that comes with the book. MPL Reference manual: A complete reference manual for the MPL components, also to be included with the Boost distribution. HTML (in progress) (pdf) A Boost Release: We'll include a release of boost with an up-to-date MPL implementation. Template Metaprogramming for Broken Platforms: Techniques for making the MPL work on VC6/VC7/Borland/GCC2.95. Lambda Enabling: For platforms with incomplete C++ implementations, use an MPL macro invocation in your metafunction definition to make it usable with lambda et. al. Faux Partial Specialization: The nested template workaround. ETI: Hacking around early template instantiation problems Things that might be covered in a Vol II Fusion Tuples: Put off because the impelemntation is still in flux. Compile-time C++ as a Functional Language: - Functional programming paradigm - Examples of functional programming in run-time C++ - C++ template mechanism as a functional programming language - The characteristics: "pure", "non-strict", ... - Paradigms: currying, composition, lambda - The practical consequences Implementation techniques: Like recursion unrolling Lambda Mechanism Details: Occasionally, you'll want to build a metafunction class that exceeds MPL's internal limits on metafunction arity, or simply optimize the most frequently-used expressions to avoid pushing compilation times beyond comfort. In this chapter we'll discuss some of the lower-level components used in building lambda expressions and show how you can use them to circumvent these limitations. Also, if you're like most readers, you've been wondering ever since we introduced them just how MPL's lambda expressions work. In fact, the lambda facility represents an interesting example of metaprogramming itself, so its implementation is worth covering on its own merits. - lambda evaluation algorithm - bind, quote - lambda heuristics - peeling apart metafunctions - complex expressions, how complex they can be? - lambda and bind interaction - protect - lambda and "uncanonical" metafunctions - non-type template parameters, template template parameters, too many template parameters If you've never done any metaprogramming, it may not even have an obvious relationship to the work you do every day. With this book, we hope to lift the veil of mystery, so that you get an understanding not only of how metaprogramming is done, but also why and when. The best part is that, while much of the mystery will have dissolved, we think you'll still find enough magic left in the subject to stay as inspired about it as we are.
Library of Congress Subject Headings for this publication:
C++ (Computer program language).