C++ Templates: The Complete Guide and over 2 million other books are available for Amazon Kindle . Learn more
FREE Delivery in the UK.
Only 1 left in stock (more on the way).
Dispatched from and sold by Amazon.
Gift-wrap available.
C++ Templates: The Comple... has been added to your Basket
+ £2.80 UK delivery
Used: Good | Details
Sold by Greener_Books
Condition: Used: Good
Comment: **SHIPPED FROM UK** We believe you will be completely satisfied with our quick and reliable service. All orders are dispatched as swiftly as possible! Buy with confidence!
Trade in your item
Get a £11.30
Gift Card.
Have one to sell?
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See this image

C++ Templates: The Complete Guide Hardcover – 12 Nov 2002

See all 2 formats and editions Hide other formats and editions
Amazon Price New from Used from
Kindle Edition
"Please retry"
"Please retry"
£27.92 £21.56

There is a newer edition of this item:

C++ Templates
This title has not yet been released.
£49.99 FREE Delivery in the UK. Only 1 left in stock (more on the way). Dispatched from and sold by Amazon. Gift-wrap available.

Frequently Bought Together

C++ Templates: The Complete Guide + Modern C++ Design: Generic Programming and Design Patterns Applied: Applied Generic and Design Patterns (C++ in Depth) + Effective C++: 55 Specific Ways to Improve Your Programs and Designs (Professional Computing)
Price For All Three: £100.11

Buy the selected items together

Trade In this Item for up to £11.30
Trade in C++ Templates: The Complete Guide for an Amazon Gift Card of up to £11.30, which you can then spend on millions of items across the site. Trade-in values may vary (terms apply). Learn more

Product details

  • Hardcover: 552 pages
  • Publisher: Addison Wesley; 1 edition (12 Nov. 2002)
  • Language: English
  • ISBN-10: 0201734842
  • ISBN-13: 978-0201734843
  • Product Dimensions: 19.3 x 3.6 x 23.9 cm
  • Average Customer Review: 4.8 out of 5 stars  See all reviews (4 customer reviews)
  • Amazon Bestsellers Rank: 463,493 in Books (See Top 100 in Books)
  • See Complete Table of Contents

More About the Authors

Discover books, learn about writers, and more.

Product Description

From the Back Cover

Templates are among the most powerful features of C++, but they are too often neglected, misunderstood, and misused. C++ Templates: The Complete Guide provides software architects and engineers with a clear understanding of why, when, and how to use templates to build and maintain cleaner, faster, and smarter software more efficiently.

C++ Templates begins with an insightful tutorial on basic concepts and language features. The remainder of the book serves as a comprehensive reference, focusing first on language details, then on a wide range of coding techniques, and finally on advanced applications for templates. Examples used throughout the book illustrate abstract concepts and demonstrate best practices.

Readers learn

  • The exact behaviors of templates
  • How to avoid the pitfalls associated with templates
  • Idioms and techniques, from the basic to the previously undocumented
  • How to reuse source code without threatening performance or safety
  • How to increase the efficiency of C++ programs
  • How to produce more flexible and maintainable software

This practical guide shows programmers how to exploit the full power of the template features in C++.

The companion Web site at http://www.josuttis.com/tmplbook/ contains sample code and additional updates.


About the Author

David Vandevoorde is an engineer at the Edison Design Group. He is an active member of the ANSI C++ Standards Committee, and a cofounder of the newsgroup comp.lang.c++.moderated. A graduate of the Brussels Free University and the Rensselaer Polytechnic Institute, his interests include algorithm development, programming languages, and teaching. See www.vandevoorde.com.

Nicolai M. Josuttis is an independent technical consultant who designs object-oriented software for the telecommunications, traffic, finance, and manufacturing industries. He is an active member of the C++ Standards Committee Library Working Group. Nicolai has written several books on object-oriented programming and C++. See www.josuttis.com.


Inside This Book (Learn More)
Browse Sample Pages
Front Cover | Copyright | Table of Contents | Excerpt | Index
Search inside this book:

Customer Reviews

4.8 out of 5 stars
5 star
4 star
3 star
2 star
1 star
See all 4 customer reviews
Share your thoughts with other customers

Most Helpful Customer Reviews

26 of 28 people found the following review helpful By A Customer on 17 Dec. 2002
Format: Hardcover
C++ templates form a much more complex piece of technology than their humble start as a tidier macro mechanism. Just about any C++ programmer these days touches them in some form, but there is a vast difference between using template libraries and writing them. The texts that describe templates seem to be either very simple ("this is how to use std::vector<>") or very detailed (such as Alexandrescu's excellent book) - Vandevoorde & Josuttis span just about all of the template world in their book, starting from the basic usage through to meta-programming techniques used in libraries such as Blitz++ and Boost.
As well as the theory of templates, and the practice of code-writing, there are valuable snippets such as detangling typical compiler error messages.
An excellent book for any intermediate to advanced C++ user, this book is more formal than Alexandrescu, but more readable than Czarnecki & Eisenecker: if you can get only one of those three, pick this one.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
18 of 20 people found the following review helpful By A Customer on 12 Dec. 2002
Format: Hardcover
This book provides a gentle introduction to templates from a number of angles:
- Production of template based code
- Use of templates as a design tool
- More complex (ab)uses of the template system
As someone who has used templates extensively in the past, I still found this book to be a useful read. It covers a range of topics that I hadn't thought about before in detail, pointing out the caveats of different techniques and motivating their use.
The book doesn't go in to compiler specific issues in any depth and avoids the well covered topic of the STL. Instead it provides a small number of more complex examples of template usage such as functors, tuples and expression templates. The book contains a large number of code examples, which makes understanding the content relatively straightforward. The writing style is informative and informal without trying to be the readers friend; as seems to be the aim of some computer book authors.
Overall it was pleasant and useful read.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
4 of 5 people found the following review helpful By Paul Floyd on 22 May 2007
Format: Hardcover
Truly a very good book.

Part I covers the basics. In particular, I found chapter 6 useful. I've not seen any other source of information on the machanisms of template instantiation that most of the C++ compilers available use.

Part II covers more advanced template usage, like template template parameters. Again, chapter 10 on Instantiation is very much grounded in practical use.

Part III moves on to idioms and the usage of templates. I found chapter 18 of particular use (for numerical computing with matrices, leading to Blitz).

The final part of the books covers techniques like type traits, smart pointers, tuples and functors (in the same vein as some of the boost libraries).
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
By Giuseppe Pepe on 21 Nov. 2014
Format: Hardcover Verified Purchase
its ok.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again

Most Helpful Customer Reviews on Amazon.com (beta)

Amazon.com: 36 reviews
37 of 37 people found the following review helpful
Comprehensive and Thorough 2 Jan. 2003
By Amazon Customer - Published on Amazon.com
Format: Hardcover
This is a book that the C++ community has been in need of for several years, and it seems that an ideal team of authors has come together for this: Nicolai Josuttis again contributes the thoroughness and lucid writing that has made his earlier book _The C++ Standard Library_ such a pleasure to read, and David Vandevoorde contributes historical background about the evolution of C++ standard and its implementations that help to understand some of the peculiarities of how C++ works today and some of the directions it's likely to evolve in.
The book is divided into 4 parts. Part I gives a basic overview of the template mechanisms in C++ and part II goes into more detail on this. Part III applies templates to standard problems, while part IV covers more exotic uses of templates similar to what is discussed in Alexandrescu's _Modern C++ Design_. Even for a reasonably experienced template user like me, there were many details I learned even from the most fundamental part I.
This is a near perfect book (apart from a few apparent bugs in the code examples that hopefully will get corrected) that will greatly benefit any programmer who works with template based code.
62 of 69 people found the following review helpful
You'll laugh, you'll cry, you'll fall down... 26 Nov. 2002
By Hyman Rosen - Published on Amazon.com
Format: Hardcover
Templates are increasingly becoming one of the most important
aspects of C++ programming, and are the central feature of the
most creative and innovative new C++ projects.
They are reasonably simple in concept, but in the effort to make
them behave "intuitively" for common cases, the actual rules that
describe what they do are hideously complicated. A guide for the
perplexed was sorely needed, and fortunately, has now appeared.
I'm no slouch at the subject myself, but I learned a few things
that I had no inkling of before, just on a casual reading of the
first few chapters. (Although the main thing I am learning once
again is just how insanely stupid C++ syntax is, and how awful
was the choice of angle brackets for template delimiters.) The
authors are experts on the subject, and the material is presented
clearly, with many examples, and above all correctly.
This is another must-have book for people who want to understand
all of C++. (Not that that's possible, except for perhaps half a
dozen people or so. I'll bet more people understand General
27 of 28 people found the following review helpful
A Definitive Reference to C++ Template Implementations 15 April 2003
By "kuphryn" - Published on Amazon.com
Format: Hardcover
David Vandevoorde and Nicolai Josuttis write a definitive reference to C++ template implementations. This book comprises of four key sections including fundamental template implementations, in-depth template implementations, template designs, and advanced template designs (libraries). The authors are extremely thorough in their explanations of all essential template implementation techniques and provide an unprecedented in-depth analysis on C++ template parameters, arguments, specialization, and overloading. The analysis on these techniques is very valuable. One reason is because in most cases the authors include examples of implementations that do not work and then provide working solutions. For example, they discuss template argument deduction processes especially for template function overloading. There is even a chapter where they analyze C++ compilers and different template instantiation models. In C++ Templates: The Complete Guide, the authors discuss essential C++ template designs and implementation techniques and provide valuable analysis along with some of the more important topics, making this book a definitive reference to C++ template implementations.
In section three and four, Vandevoorde and Josuttis discuss and demonstrate powerful C++ designs utilizing C++ template techniques from previous sections. Topics and examples in these sections incorporate advanced C++ template designs and implementations similar to the foundation of the STL. One example is element binding as in std::pair.
I recommend C++ Templates: The Complete Guide to all real-world C++ programmers.
34 of 37 people found the following review helpful
Nice, but may not be a good first choice. 27 Dec. 2004
By Dave O'Hearn - Published on Amazon.com
Format: Hardcover
This book is encyclopedic. It will tell you everything about templates, both every detail at the language level and everything interesting someone has done with templates in the last 10 years. It even tells you furture changes that might happen to templates in 4-8 years when the C++ standard is revised. This last is useful to know, to keep in mind what templates cannot do, as sometimes it feels like templates can do anything. Though the writing is somewhat dry, it is always clean and to-the-point, and the authors have the highest reputations for accuracy and expertise.

The entire last 200 pages of this 500 page book, from Metaprograms on through the entire section on Advanced Applications, describe things software developers should look to libraries for. Smart pointers, generic functors, metaprogramming, etc., are all weak without a supporting library, and there are good libraries freely available. The book gives references to them, which is good, but it mainly tells you how to write similar things from scratch, which is somewhat useless except to the few hundred living people who write the libraries. Unless you were curious, that is.

The only technique I will be using myself in production code, as opposed to getting from quality libraries, is traits and policies. The book does spend 40 pages covering this, and it touches all the bases, but _Modern C++ Design_ has a much fuller coverage, which this book admits at the end of its section.

Although this book is excellent, and you will eventually want it to reach "guru" status as your understanding of templates grows, you may want _Modern C++ Design_ first, if your present interest is mainly in policy-based design and you prefer to start with applications rather than fundamentals. You may also want to consider the new _C++ Template Metaprogramming_ if your present interest is metaprogramming. But if you are looking for a solid, general grounding in everything templates can do and have been used to do, _C++ Templates: the Complete Guide_ is exactly what you are looking for.
17 of 18 people found the following review helpful
A Valuable Resouce for Generic Programming in C++ 3 Dec. 2002
By Paul Mensonides - Published on Amazon.com
Format: Hardcover
This book covers the C++ template mechanism in depth, and, possibly more importantly, in readable prose.
I particularly liked the clarifications regarding overload resolution when function templates are involved and the discussion of various metaprogramming and traits techniques (such as SFINAE - "Substitution Failure Is Not An Error").
I also learned a few things that I didn't know about at all. For example, I didn't realize that template template parameters could have default values and that base class names can hide template parameters.
This book is a necessary resource for those writing generic libraries as some of today's techniques require a full understanding of the template mechanism. It is definitely going on my bookshelf with the rest of my favorite C and C++ books, and I highly recommend it to anyone interested in the C++ field.
(Note also, unlike Hyman Rosen, I actually *like* the syntax of C++ and as far as I'm concerned, angle brackets are as good a choice as anything else.)
Were these reviews helpful? Let us know