Table of contents for C++ template metaprogramming : concepts, tools, and techniques from boost and beyond / David Abrahams, Aleksey Gurtovoy.

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.


Counter
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).
Computer programming.