To get the most from this book, you should already know C++. We describe the
details of a particular language feature, not the fundamentals of the language itself.
You should be familiar with the concepts of classes and inheritance, and you should
be able to write C++ programs using components such as IOstreams and containers
from the C++ standard library. You should also be familiar with the basic features of
“Modern C++”, such as auto, decltype, move semantics, and lambdas.
Nevertheless, we review more subtle issues as the need arises, even when such issues
aren’t directly related to templates. This ensures that the text is accessible to experts
and intermediate programmers alike.