Annotated C++ Bibliography

General Comments

The notes below give brief personal comments on a number of C++ books. A far more comprehensive set of reviews - including many on other programming languages and topics - is to be found at the ACCU site.

Most of the books categorised as reference texts can also serve as tutorial material.

(The books below include some available in electronic as well as printed format; at least one is, at the time of writing, only available as a .pdf.)

Reference Texts

The C++ Programming Language 4e , Bjarne Stroustrup ,
Addison-Wesley , 2013
ISBN-10: 0-321-56384-0
ISBN-13: 978-0-321-56384-2

If you were to get only one C++11 book, it should be this. Invaluable as both a tutorial and reference text. (Though it is slightly 'heavy' for some.) Despite the title, the book - like the C++ standard - has a major emphasis on the standard library.
(See also the entry below for the third edition of this book.)

The C++ Programming Language 3e , Bjarne Stroustrup ,
Addison-Wesley , 1997
ISBN: 0-201-88954-4

Note that there have been several printings since the above date. Errata corrected in these, as well as other papers, are posted at the author's website.
This edition covers C++ prior to C++11. (For C++11, see above for the 4th edition.)

The C++ Standard Library , Nicolai Josuttis ,
Addison-Wesley , 1999
ISBN: 0-201-37926-0

The first edition of the best tutorial and reference on the standard library. (The C++ 11 library is covered in the 2nd edition of this book. See below for details.) Corrections at the author's site.

The C++ Standard Library — A Tutorial and Reference, 2nd Edition , Nicolai Josuttis ,
Addison-Wesley Longman , 2012
ISBN-13: 978-0-321-62321-8
ISBN-10: 0-321-62321-5

The C++ 11 edition of the above book. Can also be used for programming with the previous (C++98/C++03) libraries, as the text indicates the inter–version portability of what is being described.

Overview of the New C++ (C++11/14),
Scott Meyers

This comprises annotated course notes, available for personal use, and also available under licence for training purposes. At the time of writing the "book" is available in .pdf format (only), with ongoing free updates. (See this page on Meyers' site.)

The C++ Standard ,
John Wiley and Sons , 2003
ISBN: 0470846747

An electronic version of the standard is available from ANSI. (As well as an expensive hard copy.) If you want a book version, then this is the one.

Learner's Texts


There are many, many, books on learning C++. Which ones are best will depend on the reader. Prior knowledge (e.g. of C, or Java), preferred styles of text (abstract treatments or using concrete examples), and other individual factors will make a book more or less suitable for an individual. (There are also many, many, 'bad' books on C++. These include those that are filled with errors of fact, and, more subjectively, showing poor style and choice of emphasis.) The selection below are judged the best of those seen to date.

Programming -- Principles and Practice Using C++, Bjarne Stroustrup,
Addison-Wesley, 2008
ISBN-13: 978-0-321-54372-1
ISBN-10:       0-321-54372-6

A fairly broad and deep introduction to programming, using modern C++. It can also be used by programmers who are already capable in other language(s), or even have had some basic, traditional, training in C++.

A Tour of C++, Bjarne Stroustrup,
Addison-Wesley Professional,
ISBN-10: 0321958314
ISBN-13: 9780321958310

This book is an extended version of the introductory material presented in chapters 2-5 of TC++PL4. As such it is intended to provide a high level - though technical - introduction and review of C++11 and its use.

Accelerated C++ , Andrew Koenig and Barbara Moo,
Addison-Wesley, 2000
ISBN: 0-201-70353-X

This book takes an unusual approach. Rather than focussing on syntax, or language-related concepts, it teaches by setting problems, showing how they can be solved using facilities from the C++ standard library. (Necessarily picking up language features en-route.) The author's claim that this is a more effective teaching approach than the traditional bottom-up route in language teaching.

C++ by Example: UnderC Learning Edition , Steve Donovan ,
Que , 2001
ISBN: 0-7897-2676-9

Another unusual - but effective - book. This comes with a C and C++ interpreter, allowing the learner to experiment with small fragments of code, and get immediate feedback as they enter and amend these fragments. (As opposed to dealing with whole programs, including source lines irrelevant to the point in hand; and suffering a compile-build-execute cycle of several seconds between entering the code and seeing the results.) The text is very helpful, and touches on a number of interesting topics. This is slightly marred by a very small number of typos, and errors. (The supplied CD also includes a version of Quincy, a free C++ IDE. The author has updated his interpreter software since the book's CD was produced.)

Teach Yourself C++ 7e , Al Stevens ,
Wiley , 2003
ISBN: 0-7645-2644-8

A very readable and comprehensive book on the language. It uses many good concrete examples of the features being discussed. The treatment of locales is possibly the most practical and comprehensive in any general C++ text. (Indeed this subject is often given little coverage, or even ignored completely.) The supplied CD includes the free Quincy IDE, as well as examples from the book.

Computing Concepts with C++ Essentials 3e , Cay Horstmann ,
Wiley , 2002
ISBN: 0-471-16437-2

Object-Oriented Programming in C++ , Nicolai M. Josuttis ,
Wiley , 2002
ISBN: 0-470-84399-3

C++ Primer 5e , Stanley Lippman, Josee Lajoie, and Barbara Moo ,
Addison-Wesley , 2012
ISBN-10: 0321714113
ISBN-13: 978-0321714114

Object-Oriented Programming in C++ , Nicolai M. Josuttis ,
Wiley , 2002
ISBN: 0-470-84399-3

You Can Program in C++ : a programmer's introduction , Francis Glassborow ,
Wiley , 2006
ISBN: ISBN-13: 978-0470-01468-4
ISBN-10: 0-470-01468-7

An introduction for those who can already program in at least one other language. (c.f. "You can do it!" by the same author, below.)

You Can Do it! , Francis Glassborow ,
Wiley , 2003
ISBN: ISBN: 0-470-86398-6

An introduction to programming and C++ for learning programmers. (c.f. "You Can Program in C++" by the same author, above.)

Intermediate Texts

Effective C++ 3e , Scott Meyers ,
Addison-Wesley , 2005
ISBN: 0-321-33487-6

More Effective C++ , Scott Meyers ,
Addison-Wesley , 1996
ISBN: 0-201-63371-X

Effective C++ CD (Both of the above titles on CD - EC++ 2e) , Scott Meyers ,
ISBN: 0-201-31015-5

Effective Modern C++ , Scott Meyers ,
O'Reilly Media , November 2014
ISBN: 978-1-4919-0399-5
ISBN 10: 1-4919-0399-6 Ebook
ISBN: 978-1-4919-0398-8
ISBN 10: 1-4919-0398-8

Recommendations for use of C++11/14. Available in print, ebook and Safari Books Online formats.

Effective STL , Scott Meyers ,
Addison-Wesley , 2001
ISBN: 0-201-74962-9

Ruminations on C++ , Andrew Koenig and Barbara Moo ,
Addison-Wesley , 1997
ISBN: 0-201-42339-1

The Design and Evolution of C++ , Bjarne Stroustrup ,
Addison-Wesley , 1994
ISBN: 0-201-54330-3

The C++ Standard Library Extensions: A Tutorial and Reference, Pete Becker,
Addison-Wesley Professional, 2006
ISBN-10: 0321412990
ISBN-13: 9780321412997

A reference and tutorial to the libraries in the report accepted by the C++ Standards Committe (TR1). These libraries are expected to be accepted within the the next C++ Standard. They have been widely available for some time, and work with current generation (C++03) compilers.

Programming Standards and Style


The content of these books is naturally subjective. They contain many reccommendations that are generally agreed as good practice; but some however, are not.

Exceptional C++ Style , Herb Sutter ,
Addison-Wesley , 2004
ISBN: 0-201-76042-8

C++ Coding Standards , Herb Sutter and Andrei Alexandrescu ,
Addison-Wesley , 2004
ISBN: 0-321-11358-6

Advanced Texts

Generic Programming and the STL , Matthew Austern ,
Addison-Wesley , 1999
ISBN: 0-201-30956-4

Generative Programming: Methods, Tools, and Applications , Krzysztof, Czarnecki and Ulrich Eisenecker ,
Addison-Wesley , 2000
ISBN: 0-201-30977-7

Very advanced material. (NB: not just C++.)

Applied C++ , Philip Romanik and Amy Muntz ,
Addison-Wesley , 2003
ISBN: 0-321-10894-9

Exceptional C++ , Herb Sutter ,
Addison-Wesley , 2000
ISBN: 0-201-61562-2

More Exceptional C++ , Herb Sutter ,
Addison-Wesley , 2002
ISBN: 0-201-70434-X

Modern C++ Design , Andrei Alexandrescu ,
Addison-Wesley , 2001
ISBN: 0-201-70431-5

C++ Templates , David Vandevoorde and Nicolai M. Josuttis ,
Addison-Wesley , 2003
ISBN: 0-201-73484-2

C++ Template Metaprogramming, David Abrahams and Aleksey Gurtovoy ,
Addison-Wesley, 2004
ISBN: 0-321-22725-5

Advanced C++ Metaprogramming, Davide Di Gennaro ,
CreateSpace, 2011 (revised Feb 2012)
ISBN: 9781460966167

The Boost Graph Library , Jeremy Siek, Lie-Quan Lee, Andrew Lumsdaine ,
Addison-Wesley , 2002
ISBN: 0-201-72914-8

Ground breaking C++ design for graph algorithms and data structures. The book's CD (at least originally) required supplementing by a small download to build the code on VC++. Since the original publication, the sofware from Boost has been given several bug fixes and additional facilities.

The Boost C++ Libraries , Boris Schäling ,
XML Press , 2011
ISBN-13: 9780982219195

A revised edition of the original which was only published in electronic form. Covers libraries up to version 1.47.0 (July 2011)

Beyond the C++ Standard Library. An introduction to Boost. , Bjorn Karlsson ,
Addison-Wesley , 2005
ISBN: 0-321-13354-4

Standard C++ IOStreams and Locales , Angelika Langer and Klaus Kreft ,
Addison-Wesley , 2000
ISBN: 0-201-18395-1

A comprehensive and authoritative tutorial and reference book.

C++ Concurrency in Action - Practical Multithreading, Anthony Williams,
Manning , 2012
ISBN: 9781933988771

Multi-threaded programming in C++11.

Related Texts

Generative Programming: Methods, Tools, and Applications , Krzysztof, Czarnecki and Ulrich Eisenecker ,
Addison-Wesley , 2000
ISBN: 0-201-30977-7

Very advanced material. (NB: not just C++.)

Practical UML Statecharts in C/C+, 2nd Edition , Miro Samek ,
Newnes (imprint of Elsevier) , 2008
ISBN-10: 0750687061
ISBN-13: 978-0750687065

Event-driven programming for embedded systems. Strong on UML State Machine theory; review of prior art; its own framework; and specifics of real-time and embedded implementations. See also web resources in this area, and for C++ techniques. those of Boost in particular.

> Back to Top

© Copyright 2006-2015    A Ross Computing Services (Arcs) Ltd.

w3c xhtml 1.0w3c CSS