The Sutter Trio

From StoneHome

There are now three Sutter books, though many people refer to the original two as the Sutter Pair. The Sutter Trio catalogue a number of common design errors and mishaps frequently engaged in by amateur and intermediate C++ programmers; even expert programmers often pick up more than just a thing or two from this series. Highly recommended to anyone not yet familiar with Sutter's work on Guru of the Week.

0201615622.01._SCTZZZZZZZ_.jpg
  • Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions Buy new or buy used

Exceptional C++ is one of the classic books for beginning and intermediate C++ programmers. Pretty much the only low quality part of the book is the Table of Contents; everything else, from simpler issues like Fast Pimpl to more complex things such as interface specificity, the namespace principle and genuine exception-safe code, are well and thoroughly explained. Many people don't realize that some of the topics contained in the book are even difficult; Sutter's rating of the topics can often shed light onto problems some programmers weren't previously even aware of.

020170434X.01._SCTZZZZZZZ_.jpg
  • More Exceptional C++: 40 New Engineering Puzzles, Programming Problems and Solutions Buy new or buy used

A further extension of Sutter's work on Guru of the Week, More Exceptional C++ extends the original with a larger focus on STL containers and STL-appropriate behavior, exceptions as applied to classes (with a particularly surprising exposition of the difficulties of safe creation,) various issues surrounding inheritance and template specialization, and so forth. This book provides a natural compliment to Effective STL and Modern C++ Design. This is one of the more important books for an intermediate C++ programmer's library; though the issues it covers aren't those wrestled with by novices, many of the topics are prerequisites to large efficient design, especially concerning const correctness, the specifics of typical inlining, exception specification, and so forth; it would be unwise to proceed without having read this work.

0201760428.01._SCTZZZZZZZ_.jpg
  • 40 New Engineering Puzzles, Programming Problems, and Solutions Buy new or buy used

The third in the Sutter Trio, EC++Style is arguably the most difficult of the three. This book focusses less on errors and more on when it's appropriate to bend the more typical rules of thumb - when one should leak the private parts of a class, whether function templates should be specialized, deeper observations of exception specification and how exceptions reach further than try blocks, how to deal with the fragile interface problem, and so on. The book even levies some insightful commentary on the design of existing systems, in particular the STL and std::string. This book isn't as critical a read as the other two, but can be a very eye-opening work for large system designers and library designers, especially those interested in polishing and buletproofing their code for a wide range of users with an extremely wide range of use patterns. Anyone whose use of exceptions extends beyond their control absolutely needs to read this book.