I am learning templates. Which book is worth buying for doing template programming?
I already have The C++ Programming Language and Effective C++.
I am learning templates. Which book is worth buying for doing template programming?
I already have The C++ Programming Language and Effective C++.
Maybe a bit mind-boggling if you are just learning, but after the books you mention, you may want to read Andrei Alexandrescu's Modern C++ Design, if only to learn what can be accomplished through templates. Besides, it discusses many advanced aspects of templates wonderfully.
C++ Templates: The Complete Guide is your best bet. You could also learn about the Standard Library which heavily uses templates.
Both Modern C++ design and C++ Template Metaprogramming are very good (and quite advanced) books on the subject. I have a strong personal preference for the first.
Those two books are pretty good in my opinion and they helped me a lot
- C++ Templates: The Complete Guide by David Vandevoorde and Nicolai M. Josuttis
- Modern C++ Design by Andrei Alexandrescu
The first one explains how templates work. The second book is more about how to use them. I recommend you to read the first book before starting with Modern C++ Design because that's heavy stuff.
"C++ Templates: The Complete Guide (Vandevoorde & Josuttis)" is excellent for the theory. Then you can learn even more about actual templating practice by looking at how templates are used in the Boost library.
There is a hidden treasure in C++ templates that very few people are aware of: C++ Common Knowledge: Essential Intermediate Programming.
The last 15 chapters of that book both teaches better and complements C++ Template Metaprogramming in some respects. I strongly recommend anyone who is to learn templates to read this book foremost.