Core C++ Books

The C++ Programming Language, 3rd Ed (Stroustrup, 1999)  -- Every serious C++ programmer should have this book.  It contains intermediate to advanced material, and covers both the language and the new standard libraries.  Read chapters 2 & 3, then browse the rest of the book as you need it. The new special edition has two additional chapters, and I recommend getting that one if you can, but if you can't those chapters are also available on Bjarne Stroustrup's web site. Highly recommended.

Generic Programming and the STL: Using and Extending the C++ Standard Template Library (Austern, 1999)  -- The best STL book I have found yet.  The first few chapters are a pretty good introduction to the STL, and the bulk of the book is an excellent reference. Note that this covers the material from a very rigorous, almost mathematical point of view; you may want to get another book (such as Josuttis) for initial learning. Highly recommended.

The C++ Standard Library: A Tutorial and Reference (Josuttis, 2000) -- The only book so far that covers the new Standard C++ Library. This focuses specifically on the library itself rather than the C++ language. It is an excellent book for learning about all the standard library facilities. Highly recommended.

C++ Primer, 3rd Ed (Lippman and Lajoie, 1998) -- A very complete book at over 1200 pages, it includes tutorials on all aspects of the modern C++ language and standard library. Recommended if you want to learn C++ for the first time, and have the time to devote to going through the tutorials.

Essential C++ (Lippman, 2000) -- "C++ Primer Lite". This is the book to get if you have to get up and running with C++ as soon as possible, and need to learn on the job (in other words, most programmers). Be sure to follow this up with some of the more extensive C++ books if you plan to continue using C++ professionally.

Magazine: The C/C++ User's Journal -- Every C++ programmer should have a subscription to this magazine. The magazine is devoted to C and C++ articles, with occasional Java thrown in. The emphasis is on practical programming techniques. Highly recommended.

Advanced C++

Exceptional C++ (Sutter, 2000) -- An investigation into good C++ programming strategies and styles, in the form of engineering puzzles. An good format for testing yourself; this book originated in an ongoing series of Usenet postings called "Guru of the Month" which appear in comp.lang.c++ regularly. Includes more than just the back postings (which are available on deja.com or at Herb Sutter's web site). See the ACCU review for details; if you use C++ much at all, you should have this book on your shelf. Highly recommended.

Standard C++ IOStreams and Locales (Langer and Kreft, 2000) -- An excellent book on the details of IOStream and i18n programming; the only book I know of that covers the new, standard IOStreams. You need this book if you're creating new stream or streambuf classes using the new standard, or if you want to take advantage of the i18n capabilities of the Standard C++ Library.

Generative Programming: Methods, Tools, and Applications (Czarnecki and Eisenecker, 2000) -- A possibly groundbreaking book which touches on techniques of generic programming as well as a host of other subjects. Definitely an advanced book, but well written. (No ACCU review yet.)

Classic C++ Books

Advanced C++ Programming Styles and Idioms (Coplien, 1992) -- A classic book on advanced C++ programming techniques.  It predates the pattern movement, but it really is a collection of language-level patterns.

Ruminations on C++ (Koenig and Moo, 1996) -- Contains advanced C++ programming techniques.  Some of them are now part of  the standard library (iterators, generic programming).  A good book to get after you read Coplien and Meyers.

The Design and Evolution of C++ (Stroustrup, 1998) -- Not a programming book, but a good background and history of how C++ came to be what it is today.  If you are interested in why the language is the way it is, this is the book to read.