FREE Delivery in the UK.
Only 1 left in stock (more on the way).
Dispatched from and sold by Amazon.
Gift-wrap available.
More Exceptional C++: 40 ... has been added to your Basket
+ £2.80 UK delivery
Used: Good | Details
Sold by fatbrainbooks
Condition: Used: Good
Comment: May contain minimal notes added by highlighter and/or pen and may be slightly damaged. Dispatch Same Working Day, (Delivery 2-4 business days, Courier For Heavy/Expensive Items) Money Back Guarantee, 99.3% Customer Satisfaction, Prompt Customer Service
Trade in your item
Get a £5.97
Gift Card.
Have one to sell?
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See this image

More Exceptional C++: 40 New Engineering Puzzles, Programming Problems, and Solutions: 40 More Engineering Puzzles, Programming Problems, and Solutions (AW C++ in Depth) Paperback – 17 Dec 2001

See all 5 formats and editions Hide other formats and editions
Amazon Price New from Used from
"Please retry"
£28.18 £14.94

Special Offers and Product Promotions

  • When you trade in £15 or more you’ll receive an additional £5 Gift Card for the next time you spend £10 or more.

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: £80.51

Buy the selected items together

Trade In this Item for up to £5.97
Trade in More Exceptional C++: 40 New Engineering Puzzles, Programming Problems, and Solutions: 40 More Engineering Puzzles, Programming Problems, and Solutions (AW C++ in Depth) for an Amazon Gift Card of up to £5.97, which you can then spend on millions of items across the site. Trade-in values may vary (terms apply). Learn more

Product details

  • Paperback: 304 pages
  • Publisher: Addison Wesley; 1 edition (17 Dec. 2001)
  • Language: English
  • ISBN-10: 020170434X
  • ISBN-13: 978-0201704341
  • Product Dimensions: 18.7 x 1.6 x 23.4 cm
  • Average Customer Review: 5.0 out of 5 stars  See all reviews (4 customer reviews)
  • Amazon Bestsellers Rank: 461,969 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++.


Customer Reviews

5.0 out of 5 stars
5 star
4 star
3 star
2 star
1 star
See all 4 customer reviews
Share your thoughts with other customers

Most Helpful Customer Reviews

4 of 4 people found the following review helpful By A Customer on 26 Nov. 2002
Format: Paperback
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? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
1 of 1 people found the following review helpful By Thing with a hook on 21 Feb. 2007
Format: Paperback
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? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
3 of 4 people found the following review helpful By A Customer on 9 Jun. 2002
Format: Paperback
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? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
1 of 2 people found the following review helpful By K1ng on 15 Dec. 2006
Format: Paperback
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? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again

Most Helpful Customer Reviews on (beta) 12 reviews
19 of 19 people found the following review helpful
A reality check for those who know C++ 22 Jun. 2002
By Charles Ashbacher - Published on
Format: Paperback
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
Herb Sutter strikes again ! 24 Feb. 2002
By Christophe Addinquy - Published on
Format: Paperback
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
Picks Up Where The First Book Left Off 30 Jan. 2002
By Philip R. Heath - Published on
Format: Paperback
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
Challenging and entertaining 24 Oct. 2002
By uniq - Published on
Format: Paperback
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
Effective C++'s Big Brother 1 Feb. 2002
By Amazon Customer - Published on
Format: Paperback
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