Buy New

Sign in to turn on 1-Click ordering.
Buy Used
Used - Good See details
Price: £3.38

More Buying Choices
Have one to sell? Sell yours here
Sorry, this item is not available in
Image not available for
Image not available

Tell the Publisher!
I’d like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

More Exceptional C++: 40 New Engineering Puzzles, Programming Problems, and Solutions: 40 More Engineering Puzzles, Programming Problems, and Solutions (AW C++ in Depth) [Paperback]

Herb Sutter
5.0 out of 5 stars  See all reviews (4 customer reviews)
Price: £31.99 & FREE Delivery in the UK. Details
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
Only 3 left in stock (more on the way).
Dispatched from and sold by Amazon. Gift-wrap available.
Want it tomorrow, 23 Sep.? Choose Express delivery at checkout. Details


Amazon Price New from Used from
Paperback £31.99  

Book Description

17 Dec 2001 9780201704341 978-0201704341 1

More Exceptional C++ continues where Herb Sutter's best-selling Exceptional C++ left off, delivering 40 puzzles that illuminate the most challenging -- and most powerful -- aspects of C++. More Exceptional C++ offers many new puzzles focused on generic programming and the C++ Standard Template Library, including important techniques such as traits and predicates, as well as key considerations in using standard containers and algorithms -- many of them never covered elsewhere. More Exceptional C++ contains a detailed new section (and two appendices) on optimization in single- and multithreaded environments. It also provides important new insights on crucial topics first introduced in Exceptional C++, including exception safety, generic programming, and memory management. For all C++ programmers.

Frequently Bought Together

More Exceptional C++: 40 New Engineering Puzzles, Programming Problems, and Solutions: 40 More Engineering Puzzles, Programming Problems, and Solutions (AW C++ in Depth) + Exceptional C++ + Effective C++: 55 Specific Ways to Improve Your Programs and Designs (Professional Computing)
Price For All Three: £82.14

Buy the selected items together

Product details

  • Paperback: 304 pages
  • Publisher: Addison Wesley; 1 edition (17 Dec 2001)
  • Language: English
  • ISBN-10: 9780201704341
  • ISBN-13: 978-0201704341
  • ASIN: 020170434X
  • Product Dimensions: 23.4 x 18.8 x 1.4 cm
  • Average Customer Review: 5.0 out of 5 stars  See all reviews (4 customer reviews)
  • Amazon Bestsellers Rank: 400,775 in Books (See Top 100 in Books)
  • See Complete Table of Contents

More About the Author

Discover books, learn about writers, and more.

Product Description

Amazon Review

Aimed at advanced C++ developers who want to hone their programming chops even further, Herb Sutter's More Exceptional C++ borrows the format of his earlier title, Exceptional C++, and delivers some of today's best available thinking on the language in a handy and effective format. A compilation of the author's own experience and research on the thornier aspects of C++, this book will serve as a worthy resource for making sure you get the most out of this powerful language.

The concise text covers a range of challenging topics in C++ without attempting to be comprehensive. Each "item" is presented as a question for you to try and solve by yourself before the author presents his solution, plus additional detail as needed. For most topics, Sutter ends by giving his advice on the best practices (and gotcha's to avoid).

Early sections concentrate on using Standard Template Library (STL) container classes, such as removing items effectively, and the subtle differences between container types. Standout sections on designing custom templates (using specialisation techniques) and designing exception-safe classes will help you do more with your own classes. One entertaining problem here shows a number-guessing game (Mastermind) built as efficiently as possible using STL code (including expert-level use of generic functions to do much of the work).

Several problems on copy-on-write (COW) semantics for more efficient classes point out the issues surrounding code optimisation. (The author argues against a simplistic approach to optimising code, including an over-reliance on inlining functions. Several times, he points out the difficulty of getting COW code to work in multi-threaded projects.)

There has been a debate in the C++ community for years on whether it's possible to design truly "exception-safe" classes. Sutter points out the difficulty with a precise analysis of the issues surrounding exceptions and C++ constructors. Material on the finer points of inheriting classes (including when to avoid and when to use multiple inheritance in C++) will extend your class design options. A good section here is the author's explication of how to simulate COM/Java style interfaces in C++, which isn't immediately obvious, even to experienced C++ developers.

Later sections delve into code-maintenance issues, including advice for using macros, typedefs and namespaces. (Advice on migrating existing C++ code into namespaces will help you combine legacy code with other libraries.) A final appendix shows off some benchmarks for optimising strings using a variety of techniques.

Intelligent, provocative and demanding, More Exceptional C++ shows off why C++ continues to be a rich, complex and challenging language. Armed with titles such as this one, experienced C++ programmers can write better code and avoid pitfalls buried in the outer edges of their favourite language. --Richard Dragan

From the Back Cover

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

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++.


Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

Customer Reviews

4 star
3 star
2 star
1 star
5.0 out of 5 stars
5.0 out of 5 stars
Most Helpful Customer Reviews
4 of 4 people found the following review helpful
5.0 out of 5 stars If you're serious about C++, get this book! 26 Nov 2002
By A Customer
There isn't really much that can be said about Sutter's books that hasn't already been said. If you're serious about C++ or want to be, then you simply have to own his books. The presentation style is always clear and to the point, the subject matter always enlightening. However, they are also books that you simply have to have to hand while working (personally, I can never remember all the details that he covers). I think that I've yet to come across a book in the Addison Wesley C++ In Depth series that doesn't score 5 stars!
Comment | 
Was this review helpful to you?
1 of 1 people found the following review helpful
5.0 out of 5 stars more excellence from Sutter 21 Feb 2007
If you liked its predecessor, you would do well to snap up this one, too. It's more of the same good stuff, in the same format: Sutter poses a question or series of questions, some of which are fairly general and some of which challenge you to spot mistakes in some code, and then uses it as a springboard to outline some best practices. There is more on exceptions, memory management, inheritance and polymorphism. You'll also discover several ways to get a stack trace and how to write a traits class.

There's also slightly more advanced material on smart pointer members and copy-on-write implementations of strings, which is pretty extensive, particularly with regard to its problems with threading.

This is not a reference book or the sort of volume you'd reach for to solve a specific problem. And Sutter's influence in the field means there's not a huge amount of fundamental stuff that hasn't diffused throughout the C++ literature since this book's publication, but reading the Exceptional C++ series is one of those things you just have to do if you want to call yourself a C++ programmer and there are few better ways to learn The C++ Way than quality time spent with More Exceptional C++.
Comment | 
Was this review helpful to you?
3 of 4 people found the following review helpful
5.0 out of 5 stars Another gem by a C++ guru! 9 Jun 2002
By A Customer
This book follows on from the excellet 'Exceptional C++' and gives a deeper insight into C++ and the standard library. This book is not really possible to fault. It contains valuable information not readily available elsewhere, in a highly accessible format. Compulsory reading for any intermediate or better C++ developer. If you're hesitating about whether to buy this book, buy it.
Comment | 
Was this review helpful to you?
1 of 2 people found the following review helpful
5.0 out of 5 stars Phew 15 Dec 2006
By K1ng
This is a great C++ book. Challenging and fun for every geek.

One warning though, this is not for the casual C++ programmer, its tough going. Just the way us programmers like it!
Comment | 
Was this review helpful to you?
Most Helpful Customer Reviews on (beta) 4.6 out of 5 stars  12 reviews
19 of 19 people found the following review helpful
5.0 out of 5 stars A reality check for those who know C++ 22 Jun 2002
By Charles Ashbacher - Published on
This book, like the earlier one by Sutter, was a reality check for me. Before I read it, I blissfully believed that I knew C++ really well. After all, I have taught it at the college and corporate level for ten years and programmed commercial code for three. I have also written and published material about the language in several journals. However, these forty exercises really opened my eyes and exercised my brain. They are excellent teaching material, showing you aspects of the language that are subtle, yet critical to know.
One topic that I experienced firsthand is when an exception is thrown out of a constructor. This happened to me many years ago, and I spent hours trying to correct the code so that it finally did something similar to what I wanted. Had I been able to read items 17 and 18 of this book, I could have cut that to about twenty minutes and kept more of my hair.
The problems are all typical of those encountered in the "unusual average" day in the life of a C++ programmer. By that I mean that they may not necessarily reflect the day to day work, but are general enough to most likely crop up on some day for everyone who writes code in C++. The general categories are:
1) Generic programming and the C++ standard library
2) Optimization and Performance
3) Exception safety issues and techniques
4) Inheritance and polymorphism
5) Memory and resource management
6) Free functions and macros
7) Miscellaneous topics
There are many things going on behind the scenes in your C++ programs that most of the time you can ignore. However, when it is a time that you can't, then Sutter is one of the people to consult. His material is always well written and useful in the real world and I recommend this book to all my corporate clients.
15 of 16 people found the following review helpful
4.0 out of 5 stars Herb Sutter strikes again ! 24 Feb 2002
By Christophe Addinquy - Published on
Herb sutter's first book worth it's name : it was exceptional. That's why it was a challenge to write an equally good one as a second book. Of course, Herb put a lot of it's main ideas into his first book (like the "swap guts idiom" for example), but it leaves a big room for side subjects.
Topics in this volume are well classified, maybe better than in the first volume. They adress important subjects for the C++ day to day programmer : standard library, performances, exception safety, resource management, etc... The "engineering puzzles" are in fact much less important than the "solution" described bellow. Because each of the solution is not mid game but a practicle piece of work that leads you to a better C++ quality code.
Honestly, this book is not for beginner. It's much more valuable to read a primer book (stroustrup's C++ programing language, or better the Lipman's C++ primer) and then Meyer's effective C++. At least. You also should have a couple of year of C++ practice behind your belt (also at least). It's a top level C++ book, with top level advices and a top level payback for you.
After reading this volume, I have a stong impression that next Sutter's book will stay with such level of quality. Great work, Herb, thank you !
A last word : Maybe you are surprised I've not given 5 stars to this book ? Well I reserve such notation for strongly exceptional book, like the "design patterns". 4 stars still be very good on my own scale.
5 of 5 people found the following review helpful
5.0 out of 5 stars Picks Up Where The First Book Left Off 30 Jan 2002
By Philip R. Heath - Published on
More Exceptional C++ is every bit as good as the first offering from Sutter. Like the first, this is an advanced text, and a solid working knowledge of C++ is necessary to get the most out of this book.
For those without experience with Sutter's previous book, this is divided into "Items" grouped together by broad subject area. Unless the the items make up a series such as Items 13-16, they can be read independently and in any order. This layout is helpful to the reader who doesn't have a lot of time to read a book from cover to cover. One can sit down and spend 30 minutes with an item and gain valuable insight into the specific subject matter Sutter deals with.
I enjoy the author's writing style because he tends to be more conversational than lecturing. He interjects humor - albeit it geek humor - from time to time. The presentation makes learning advanced techniques, dare I say, fun rather than dry and cumbersome.
It is also worth noting that being advanced doesn't preclude being practical. Sutter deals with everyday topics such as the STL, exception safety, and inheritance. If you are ready to make the step to advanced C++ programmer, this book will guide you on your way in a practical, enjoyable manner.
4 of 4 people found the following review helpful
5.0 out of 5 stars Challenging and entertaining 24 Oct 2002
By uniq - Published on
In this book Herb Sutter continues investigating of the problems that face C++ developers. Even discussions of the problems that one is unlikely to confront reveal important aspects of the proper C++ programming.
The author often beats on a problem until it "has ceased to be ... expired and gone ... bereft of life ... rests in peace" (p. 118). In this particular book, most of the time this is a good thing, because in software development almost everything is a tradeoff, and you don't want to open the gates of hell as a side effect of plugging up a little hole.
I have enjoyed reading this book at least as much as its predecessor, "Exceptional C++". Unfortunately on occasion the author spends too much time discussing trivial implications that appear not to be in line with the complexity of other topics. Also, constant restatement of the parts of every problem statement is quite wasteful and distracting, especially considering the amount of space they occupy (sometimes 25% of the solution space!)
5 of 6 people found the following review helpful
5.0 out of 5 stars Effective C++'s Big Brother 1 Feb 2002
By Amazon Customer - Published on
Addison Wesley's "C++ In-Depth Series" is showing an amazing consistency in producing one winner after the other. Any C++ programmer could almost blindly pick up any book in the series and learn some new valuable insights.
I like "More Exceptional C++" even more than the original. It's not clear to me whether this is because the book is better or because the subject matter has become more important to me. The "Exceptional C++" series is shaping up to be a big brother to the "Effective C++" series, covering areas somewhat more advanced than those in the Effective series, such as exceptions, templates, and namespaces.
One aspect of the book I don't particularly care for is the quizzes/points format that, I suspect, is due to the origins of the book in the author's "Guru of the Week" series.
This is a great book and should belong in every advanced C++ programmer's personal library.
Were these reviews helpful?   Let us know
Search Customer Reviews
Only search this product's reviews

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
First post:
Prompts for sign-in

Search Customer Discussions
Search all Amazon discussions

Look for similar items by category