$25.09 with 50 percent savings
List Price: $49.99

The List Price is the suggested retail price of a new product as provided by a manufacturer, supplier, or seller. Except for books, Amazon will display a List Price if the product was purchased by customers on Amazon or offered by other retailers at or above the List Price in at least the past 90 days. List prices may not necessarily reflect the product's prevailing market price.
Learn more
$3.99 delivery August 17 - 19. Details
Only 1 left in stock - order soon.
$$25.09 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$25.09
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Ships from
GreenIceMedia
Ships from
GreenIceMedia
Sold by
Sold by
Returns
30-day refund/replacement
30-day refund/replacement
This item can be returned in its original condition for a full refund or replacement within 30 days of receipt. You may receive a partial or no refund on used, damaged or materially different returns.
Returns
30-day refund/replacement
This item can be returned in its original condition for a full refund or replacement within 30 days of receipt. You may receive a partial or no refund on used, damaged or materially different returns.
Payment
Secure transaction
Your transaction is secure
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more
Payment
Secure transaction
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more
Kindle app logo image

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.

Read instantly on your browser with Kindle for Web.

Using your mobile phone camera - scan the code below and download the Kindle app.

QR code to download the Kindle App

Follow the author

Something went wrong. Please try your request again later.

More Exceptional C++: 40 New Engineering Puzzles, Programming Problems, and Solutions 1st Edition

4.7 4.7 out of 5 stars 29 ratings

{"desktop_buybox_group_1":[{"displayPrice":"$25.09","priceAmount":25.09,"currencySymbol":"$","integerValue":"25","decimalSeparator":".","fractionalValue":"09","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"BeVeLyoSU9oEXKlLp0EXVVnqOEF8zn7gqZjTdqoBr1xWGgNDn%2B42SqMlbumUZlII%2B121PxMuQiz3rCBTbPo0%2ByEroZ%2F1NqOh9Aaeiq7%2BmIjF0Q7kT6xE3obGEHXPYlJSL6MQTqjHYCmXuu7hZbkoWXUqXOlZv5AzMS2IbOYr%2BV0v857ik0%2B6dSOe%2FN3xdPDJ","locale":"en-US","buyingOptionType":"NEW","aapiBuyingOptionIndex":0}]}

Purchase options and add-ons

Picks up where the widely acclaimed Exceptional C++ leaves off, providing successful strategies for solving real-world problems in C++. Promotes the practical and pragmatic understanding of the language while showing you how to write exceptional code in C++. Softcover.

Books with Buzz
Discover the latest buzz-worthy books, from mysteries and romance to humor and nonfiction. Explore more

Frequently bought together

This item: More Exceptional C++: 40 New Engineering Puzzles, Programming Problems, and Solutions
$25.15
Only 1 left in stock - order soon.
Ships from and sold by Uscat Deals.
+
$40.57
Get it as soon as Monday, Aug 19
Only 1 left in stock - order soon.
Sold by Murfbooks and ships from Amazon Fulfillment.
+
$39.98
Get it as soon as Tuesday, Aug 20
Only 1 left in stock - order soon.
Sold by DRN BOOK&MEDIA and ships from Amazon Fulfillment.
Total price:
To see our price, add these items to your cart.
Details
Added to Cart
spCSRF_Treatment
These items are shipped from and sold by different sellers.
Choose items to buy together.

Editorial Reviews

Amazon.com 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 to try and solve 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 gotchas to avoid). Early sections concentrate on using Standard Template Library (STL) container classes, like removing items effectively, and the subtle differences between container types. Standout sections on designing custom templates (using specialization techniques) and 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 optimization. (The author argues against a simplistic approach to optimizing code, including an overreliance on inlining functions. Several times he points out the difficulty of getting COW code to work in multithreaded projects.) There has been a debate in the C++ community for years about 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 optimizing strings using a variety of techniques. Intelligent, provocative, and demanding, More Exceptional C++ shows why C++ continues to be a rich, complex, and challenging language. 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. --Richard Dragan Topics covered: Puzzles and solutions to advanced topics in C++, using remove() and erase() for Standard Template Library (STL) containers, custom templates with inheritance and traits, using typename, containers used with pointers, the finer points of vector, set, and maps, potential problems with vector , post and prefix operators used with functions, templates overloading, explicit and partial template specialization (plus function template overloading), using STL to implement Mastermind (a number-guessing game), the finer points of inline functions, lazy optimizations (including copy-on-write--COW--and semantics for strings), iterators and references, gotchas in multithreaded environments, designing exception-safe classes, constructor failures and object lifetimes, uncaught exceptions (the pitfalls of using uncaught_exception()), unmanaged pointers (in parameter evaluation and auto_ptr); copy assignment, inheritance and exception safety issues, multiple inheritance dos and don'ts, the Siamese Twin problem, virtual functions, controlled polymorphism, memory management issues with smart pointers (auto_ptr), recursive declarations, how to simulate nested functions, preprocessor macros, hints for initialization, forward declarations, using typedef effectively, best practices for namespaces (including code maintenance and migrating existing C++ code to namespaces), and appendices on advice for multithreaded optimization.

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



020170434XB11092001

Product details

  • Publisher ‏ : ‎ AddisonWesley Professional; 1st edition (December 17, 2001)
  • Language ‏ : ‎ English
  • Paperback ‏ : ‎ 294 pages
  • ISBN-10 ‏ : ‎ 020170434X
  • ISBN-13 ‏ : ‎ 978-0201704341
  • Item Weight ‏ : ‎ 1 pounds
  • Dimensions ‏ : ‎ 9.22 x 7.4 x 0.56 inches
  • Customer Reviews:
    4.7 4.7 out of 5 stars 29 ratings

About the author

Follow authors to get new release updates, plus improved recommendations.
Herb Sutter
Brief content visible, double tap to read full content.
Full content visible, double tap to read brief content.

Herb Sutter is a recognized expert on C++ software development and regularly gives invited talks at conferences around the world. Author of more than 130 technical articles, Herb is also secretary of the ISO/ANSI C++ standards committee, contributing editor and columnist for C/C++ Users Journal, and former editor-in-chief of C++ Report. His popular "C++ Guru of the Week" series is published on the primary Internet newsgroup for the C++ language, comp.lang.c++.moderated, which he has moderated since its inception in 1995. Contact him at www.gotw.ca.

Customer reviews

4.7 out of 5 stars
29 global ratings

Top reviews from the United States

Reviewed in the United States on December 30, 2001
This book along with the author's previous book are in the must have category for professional C++ Developers. These books along with Scot Meyer's, and Andre Alexandrescu's Modern C++ Programming are the basis for the future of Software Engineering. A must have and must understand.
One person found this helpful
Report
Reviewed in the United States on February 21, 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++.
One person found this helpful
Report
Reviewed in the United States on January 30, 2002
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.
5 people found this helpful
Report
Reviewed in the United States on February 24, 2002
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.
15 people found this helpful
Report
Reviewed in the United States on October 24, 2002
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!)
4 people found this helpful
Report

Top reviews from other countries

Translate all reviews to English
Rahul
3.0 out of 5 stars the quality of the book is quite poor, but due to lack of other options
Reviewed in India on December 15, 2017
Was looking for this book for a long time, the quality of the book is quite poor, but due to lack of other options, I decided not to return it
Zadacka
5.0 out of 5 stars Five Stars
Reviewed in the United Kingdom on December 5, 2015
More magic explained by Herb Sutter...
haw
4.0 out of 5 stars gute Fortsetzung zum Vorgänger
Reviewed in Germany on July 17, 2011
Wer das Buch Excpetional C++ gelesen hat, kann sein Wissen mit diesem Buch erneut prüfen.
Hier wird sehr genau auf die Sprachelemente eingegangen und man findet wieder sehr viel nützliche Information.
Von mir gibt's hier "nur" 4 Sterne, da meiner Meinung nach einige Themen schon im Vorgänger vorhanden sind.
Trotzdem ist das Buch sehr nützlich und bekommt eine Kaufempfehlung von mir.
One person found this helpful
Report