Every now and again a book comes along that hardly needs reviewing. This is one such book. It is a sequel to the widely acclaimed Exceptional C++ by the same author. Like that book it is based on material developed during Herb Sutter's series of 'Guru of the Week' competitions on
comp.lang.c++.moderated. As an aside, these seem to have stopped at the moment. I guess Herb has other things consuming his time at the moment and coming up with good questions with definitive answers is hard work. Some of the material has also seen early light in columns in CUJ, Dr Dobb's Journal and other periodicals. In all cases the material has been substantially updated, revised and expanded. This means that even if you read the original you would still benefit from the book in more ways than just having a convenient access to the material.
Many people thought that the title of the first book indicated that it was about exceptions. In fact it was not though many of the items had a strong flavour of that. At the time Herb was writing exceptions were a major problem to many programmers and so the emphasis made sense as well as providing a convenient title. In fact that title was more to do with the need to understand the unusual cases when writing code. In this volume that underlying theme continues though now much of the focus is on generic programming, templates and in particular the template aspects of the Standard C++ Library.
Just as there were (and in isolated places still are) strong objectors to usage of exceptions (before that it was multiple inheritance) there are now a substantial group who avoid templates at almost any cost. There are many reasons for that, but the commonest is simply lack of familiarity coupled with confusing using templates with writing them. Every serious C++ programmer needs to use templates (the alternative is like trying to write fluent English without using the letter 'e', possible but extraordinarily difficult). A few need expertise in writing them.
If you just read this book cover to cover you will either be determined not ever to write C++ again, or you will realise that you need to go back and study the material again. In my opinion the best way to use this book is as a basis for study and discussion with a small group of other programmers. Take an item, read the problem description, close the book and spend several days chewing it over. Now read what Herb has to say and spend a few more days chewing that over. This means that the book will take about a year to read in depth. The one thing I can assure you is that even after the first week, you will be a better programmer with a deeper knowledge of C++.
If you believe in instant gratification, this is not a book for you. But if you believe in self-improvement, buy it (a library or borrowed copy is no use) and invest time studying the ideas that it contains.