More Exceptional C++

Home Blog Talks Books & Articles Training & Consulting


On the
RSS feed November 4: Other Concurrency Sessions at PDC
November 3
: PDC'09: Tutorial & Panel
October 26: Hoare on Testing
October 23
: Deprecating export Considered for ISO C++0x

View the four sample Items 
(requires Adobe Acrobat reader)

Item 1  Item 2  Item 3  Item 4

View current errata list

Order via

More Exceptional C++ by Herb Sutter is the sequel to Herb's widely acclaimed book Exceptional C++. Both are in Bjarne Stroustrup's C++ In Depth series.

Overview: Organized in a practical problem-and-solution format, More Exceptional C++ picks up where the popular Exceptional C++ leaves off, providing successful strategies for solving real-world problems in C++. Drawing from years of in-the-trenches experience, the book provides tested techniques and practical solutions for programmers designing modern software systems with C++, from small projects to enterprise applications.

Contents: Built around forty programming puzzles, More Exceptional C++ helps you understand the rules and issues critical to successful software design and development in C++. New themes included in this sequel place a strong emphasis on generic programming, memory management, and using the C++ standard library, including coverage of important techniques like traits and predicates. Also included are guidelines and considerations to remember when using standard containers and algorithms --  topics rarely covered in-depth in other sources.

Readers will find solutions to such important questions as:

What pitfalls might you encounter when using std::map and std::set, and how can you safely avoid them?

What kinds of predicates are safe to use with the STL, what kinds aren't, and why?

What techniques are available for writing powerful generic template code that can change its own behavior based on the capabilities of the types it's given to work with?

When and how should you optimize your code? Why can (and do) fancy optimizations get us into trouble? And how can some of these answers change if you're writing multithread-safe code?

Does exception safety affect class design, or can it be retrofitted in as an afterthought?

How can you avoid the Siamese Twin problem when combining inheritance-based libraries from different vendors?

How can you safely use auto_ptr, and then use common design patterns to adapt it to avoid common pitfalls? Can you use auto_ptr as a class member? What must you know before you elect to use it that way?

Plus one of the most frequently recurring questions about modern C++: When and how should you use namespaces, anyway?

A must-have for the serious programmer, More Exceptional C++ provides a thorough and pragmatic understanding of the language while showing you how to write exceptional code in C++.

Besides containing additional new material and information from Herb's print articles and columns, More Exceptional C++ is also the authoritative reference for Guru of the Week issues #31 to #62 and a few later ones, with (often considerably) revised and enhanced solutions.

Translations: More Exceptional C++ is now available in Chinese (Simplified), English, Korean, Russian, and Turkish.

The following information has been compiled by the author.

In the Press: What Reviewers Are Saying About More Exceptional C++

Like the first book, since its publication More Exceptional C++ has received unanimously positive reviews. Here, in approximate reverse chronological order, are all the reviews I know about. If you know of other reviews not yet listed here, please tell me about them.


Current reviews on include detailed editorial and customer reviews, by people ranging from industry notables to programmers slugging it out in the trenches. This is a good place to see what real-world developers are saying about the book. From the time the book was published to this writing (summer 2003), More Exceptional C++ has always had an "average customer rating" of five stars (out of five). Thanks, everyone!


Richard Dragan's editorial review says in part: "Herb Sutter's More Exceptional C++ ... delivers some of today's best-available thinking on the language in a handy and effective format. ... Intelligent, provocative, and demanding, ... Armed with titles like this one, experienced C++ programmers can write better code and avoid pitfalls buried in the outer edges of their favorite language." Thanks, Richard!


Victor Volkman reviewed both Exceptional C++ and More Exceptional C++ in the June 2002 issue of Windows Developer Magazine. He notes: "The Exceptional C++ books by Herb Sutter follow squarely in the tradition of Scott Meyers’ Effective C++ books. Specifically, the books present the best practices of C++ in pursuit of better software engineering." Thanks, Victor!


Francis Glassborow reviewed More Exceptional C++ for ACCU in February 2002. He writes: "Every now and again a book comes along that hardly needs reviewing. This is one such book. ... 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++." Thanks, Francis!

More Exceptional C++ Via Amazon

If the above sounds interesting, check out More Exceptional C++ on Thank you for your interest in GotW and the Exceptional C++ book series!

Herb Sutter

Convener, ISO WG21 (C++ standards committee)
Visual C++ architect, Microsoft

Copyright © 2009 Herb Sutter