REVIEW - The C++ Standard Library - A Tutorial and Reference


Title:

The C++ Standard Library

A Tutorial and Reference

Author:

Nicolai M. Josuttis

Publisher:

Addison-Wesley Professional (2012)

Pages:

1099pp

Reviewer:

Francis Glassborow

Reviewed:

June 2012

Rating:

★★★★★


There are very few programming books that remain in the top ten for as long as the first edition of this book. For over a decade the first edition of this book has remained as one of the essential reference books for any serious C++ programmer.

During that time the C++ Standard Library has undergone considerable change. The most important of these was when the first Library Technical Report was published. At that time the author was deeply involved in other programming languages and I suspect, rebuffed any overtures from his publishers to update his book. Nonetheless the first edition continued to sell and continued to be the first point of reference for programmers trying to get to grips with the C++ Standard Library.

However C++ has now moved on. Not only has its library been massively increased in size, but the original has undergone substantial revision to leverage on the changes made to the core of the C++ Language. The author has been seduced by these changes into renewing his acquaintance with C++. This is much to the benefit of the rest of us.

The author has brought his clear understanding of C++ to the latest version and written a second edition that will be an essential reference for the new, enhanced and completely revised C++ Library.

After a couple of unusually short chapters ('About this Book', and 'Introduction to C++ and the Standard Library;) chapter 3 gives the reader a brief but very valuable overview of the new C++ language features. This chapter is important reading for anyone who is already familiar with C++ as it was prior to the new Standard.

Chapter 4 covers general concepts and should be read by everyone using this book as a reference (which, in this reviewer's opinion, is its most important and enduring use).

The rest of the book is an invaluable reference to much of the library. Unfortunately the C++ library has grown to a size where the kind of comprehensive tutorial/reference that the first edition provided is no longer possible. The author has had to be rather more selective and focus on the things that are important to the vast majority of C++ programmers whilst bypassing some of the more specialist parts. Even so the page count has now gone past 1000. I suspect that a truly comprehensive reference/tutorial would need over 2000 pages.

The text has been thoroughly checked by a large number of C++ library experts. How do I know that? Well I know most of the reviewers and have faith in their pride in doing such review work correctly. Perhaps one or two things may have crept past all the eagle eyes but none that I have noticed.

Now I must touch on the one negative aspect of this book. It has clearly not been copy edited by a native English speaker. The English syntax jars me far too often. This is a great pity because it spoils what is otherwise an outstanding work. The author's English is more than competent (and orders of magnitude better than my German) but it is the English of someone thinking in German and then making an excellent translation. Were it spoken you would probably not notice, but when written down it shows. I hope that when the author gets to produce a third edition he employs someone to copy edit the English.

If you are serious about writing C++ you need this book. If you already have the first edition you will know the quality of the author's writing and ability to provide that essential explanation that will assist you in getting the best from the C++ Standard Library. Those people will, if they are sensible, update their bookshelf by getting a copy of the 2nd edition. The rest of you should hurry quickly to your book supplier and purchase this edition it will save you a great deal of time.


Book cover image courtesy of Open Library.





Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED


By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED



Settings can be changed at any time from the Cookie Policy page.