Customer Reviews


10 Reviews
5 star:
 (5)
4 star:
 (4)
3 star:
 (1)
2 star:    (0)
1 star:    (0)
 
 
 
 
 
Average Customer Review
Share your thoughts with other customers
Create your own review
 
 
Only search this product's reviews

The most helpful favorable review
The most helpful critical review


19 of 19 people found the following review helpful:
5.0 out of 5 stars Excellent for C++ programmers at all levels
This book is not so much about C++ "style" in the usual sense (that is, how to indent or where to put the curly braces) but rather, about sound coding practices that make your code simpler, better, faster, and more maintainable. What you get is a collection of 40 items that each examine a specific topic, outline the potential problems with a particular approach, and then...
Published on August 13, 2004 by Michi

versus
18 of 24 people found the following review helpful:
3.0 out of 5 stars Too little information
I am rather disappointed by this book, especially after
Exceptional and More Exceptional C++ which are wonderfull.

Yes, this book contain interesting information, especially about
some "dark corners" of C++. But I have the impression that the author
tried to "fill space" to make the required volume. For example in discussing...
Published on December 13, 2004 by Konstantin Kivi


Most Helpful First | Newest First

19 of 19 people found the following review helpful:
5.0 out of 5 stars Excellent for C++ programmers at all levels, August 13, 2004
By 
Michi "Michi" (Holland Park, QLD Australia) - See all my reviews
(REAL NAME)   
This review is from: Exceptional C++ Style: 40 New Engineering Puzzles, Programming Problems, and Solutions (Paperback)
This book is not so much about C++ "style" in the usual sense (that is, how to indent or where to put the curly braces) but rather, about sound coding practices that make your code simpler, better, faster, and more maintainable. What you get is a collection of 40 items that each examine a specific topic, outline the potential problems with a particular approach, and then proceed to show you how things can be improved. Most importantly, each item is strong on the rationale: you are not just told how to do it better, but *why* it is is better to do something in a particular way.

There is something for everyone in this book, from the obscure and astonishing ("How many consecutive '+' characters can appear in a standards-conforming program?"), to the pragmatic ("When should you use inlining?"), to the advanced ("How generic should you make your templates, and why?").

I've been programming in C++ for 16 years now, and I learned quite a lot from reading this book. Yet, you don't have to be a C++ veteran to appreciate the advice that is provided: novice C++ programmers will find the items just as useful as old hands at C++ programming.

The book is well written, in clear and concise style, and never boring. (A number of creative footnotes even produce the occasional laugh.) The material is well organized, presented in groups of topics that relate to each other, and the table of contents and index make it easy to locate a topic for reference. And the bibliography contains things that are actually worth reading, rather than meaningless filler material.

I most appreciated Herb's honesty when dealing with various not-so-great aspects of C++. He doesn't shy back from pointing out when things are bad and simply shouldn't be used (such as exception specifications). The items I enjoyed the most are about the design of std::string, which Herb dissects (or should I say "trashes"?) unmercifully. To me, the book is worth buying just for these items alone because they provide splendid insight into what distinguishes good design from bad design, and how methodical and clear thinking is essential to writing good programs. ("Beware the behemoth of the Winnebago class -- it will haunt you onto the fourth generation...")

In summary, I think every C++ programmer should read this book. Yes, it's *that* good.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


27 of 29 people found the following review helpful:
5.0 out of 5 stars Simply exceptional, August 5, 2004
By 
ART SEDIGHI (Old Bethpage, NY United States) - See all my reviews
This review is from: Exceptional C++ Style: 40 New Engineering Puzzles, Programming Problems, and Solutions (Paperback)
Did you know the "snprinf(...)" that we use in our programs is not part of the C++ standard? Did you know that the "export" keyword has little or no benefit to C++ templates and the source code of the implementation still needs to be shipped? Do you know what primary templates are? Did you know that Accessibility checking is the last things a compiler checks for - after checking for overload resolution? Do you make your virtual functions private? Well, you really should. Do you know what Herb Sutter's favorite Starbucks drink is? Do you know what the "const" keyword really buys you? How about inline-ing?

If you answered no to even one of these questions, you should read Herb Sutter's Exceptional C++ Style, 40 New Engineering Puzzles, Programming Problems, and Solutions book. I must say that I am not doing justice in reviewing this book, since each item in this 40 item collection should really reviewed independently as each one is very well written, useful and practical.

To start, this book is well organized into sections as one would expect such type of organization with book of such type. One differing aspect is with the Case Studies at the end of the book. Mostly around the string class, but nonetheless, they are very informative. The author has taken already-out-there-being-used code and depicts them for their style. Various "guidelines" given by the author in the Case Studies section makes the developer's life a whole lot simpler. One of my favorite guidelines - throughout the book - is the one the author gives about the decision that each developer goes thru when designing a class and wants to make a decision about what to make friend, a member and a non-member of a class:
- Always make it a member if it has to be one.
- Prefer to make it a member if it needs access to internals
- In all other cases, prefer to make it a non-member friend.
Simple? Well, it should be. There are plenty of explanation and example for each of the given guidelines. As one reads and understands the given guidelines, they are very easy memorize-able. Three small phrases which we call have used or even know when we write code, but they are all on paper and are made very simple to be carved in one's memory. The author makes a great deal of effort to follow this routine, an engineering approach to solving problems and designing software, throughout the book. This book is like having an engineering notebook with fun-facts and pointers and hints that you always wanted to know and now you do!

I should really have gone thru the book in some sort of a chronological order, but I figured that the Case Studies are rather unique in this book and require special attention.

Who would have thought that there is so much to the Standard Template Libraries? Did you know that there are functions/methods in the STL that one can not even use with the STL? (Item 4) "...the bottom line is that you can't reliably form pointers to standard library member functions and still have portable code." I was blown away by this bold statement. What do you mean? You want to tell me that standard doesn't really constitute a standard? Want to tell me that my code that I have been so carefully writing using the STL might not be portable after all? There are rather amazing twists in the C++ language, and the author elegantly describes these abnormalities, and it the process the author manages to blow your mind away.

A great amount of attention is given throughout the book to the "boost" libraries. I was not familiar with "boost", and I was interested enough after reading this book that I will make a point to read up on it. The author does make a claim that the boost library might become part of the C++ standard, which would explain why the author has referred to the boost library so much in his text. A good deal of attention was also given to Inheritance and Polymorphism as one would expect. You see this topic all the time in every C++ book, but there are still grounds uncovered and stones unturned. You can't ever have enough of this specific topic. The most intriguing part is Item 16 about a class's Private Parts! If you think that Private members are really hidden, then think again and read Item 16 - you will be amazed at how the C++ compiler treats private members and methods.

Virtuality and virtual classes: you know them as the cause of needing to stay at work late to debug your code, and the reason behind male pattern baldness due to the stress that they cause you. If this is the least bit true, then Item 18 is for you. The best quote out of this item is made when the author talks about public virtual functions: "Prefer to make virtual functions private." Why you ask? Read Item 18 and find out.

A wealth of information is in this book. Herb Sutter has done it again. This book is a must for every C++ programmer as it further unleashes the great power and flexibility of the C++ programming language.


Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


10 of 10 people found the following review helpful:
5.0 out of 5 stars Yet More Exceptional C++, November 11, 2004
By 
Paul M. Dubuc (Columbus, OH USA) - See all my reviews
(REAL NAME)   
This review is from: Exceptional C++ Style: 40 New Engineering Puzzles, Programming Problems, and Solutions (Paperback)
This book is a great addition to Herb Sutter's previous two "Exceptional" C++ books. It follows a very similar question and answer format that helps the reader think about a problem before being given the answer and so is more effective in helping you learn than are some other books. It gives very clear and concise answers to each problem with guidelines drawn from each lesson highlighted throughout the text that help you remember the main points.

The only problem now that I have is, with all three of these books on my shelf, it takes longer to figure out where I read something of on a particular topic. The topical sections of each book overlap (E.g., sections covering exception eafety, memory managment and inheritance appear in all three books.) and they are all written at the same level of difficulty overall. The later books do make plenty of references back to the earlier ones as well as some other very good C++ books but this material would be better organized in one volume rather than three. Perhaps they should have been published as three editions of the same book rather than three separate books. That's the only thing I can think of that would have made them more useful. Even so this book, like the other two, is very good exercise for keeping C++ programming skills sharp. Well done!
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


5 of 5 people found the following review helpful:
5.0 out of 5 stars Good read for both bit-heads and architects, October 12, 2004
This review is from: Exceptional C++ Style: 40 New Engineering Puzzles, Programming Problems, and Solutions (Paperback)
This is a very interesting read. There is lots of information for bit-twiddlers who like pushing the limits of the language syntax and templates. But there is also lots of high level information which is on the application architecture and good advice level. He is a big proponent of encapsulation over inheritance, which is something that I also advocate having been in a number of deeply and twisty code bases.

There are some sections that I found a little too technical, but that is a personal issue. Though it is nice to have my brain stretched now and again. Illustrations are kept to a minimum. The text is somewhat dry, but it's still a solid read.

I recommend this book for any advanced C++ programmer. It's well worth your time and money. It's not so clear to me that an intermediate programmer would get much out of it, and I think beginners should stick to something like Bruce Eckel's Thinking in C++.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


18 of 24 people found the following review helpful:
3.0 out of 5 stars Too little information, December 13, 2004
By 
This review is from: Exceptional C++ Style: 40 New Engineering Puzzles, Programming Problems, and Solutions (Paperback)
I am rather disappointed by this book, especially after
Exceptional and More Exceptional C++ which are wonderfull.

Yes, this book contain interesting information, especially about
some "dark corners" of C++. But I have the impression that the author
tried to "fill space" to make the required volume. For example in discussing
virtual/non virtual destructors he writes:
"If I had a penny for every time I've seen this debate, I could buy
a cup of coffee" Ok, we get the idea.
but he continues: "Not just any old coffe, mind you- I could buy a
genuine Starbucks Venti Extra Toffe Nut Latte ( my current favorite). Maybe
even two of them, if I was willing to throw in a dime of my own".
In the other place he devoted more than a page to explain the conventional
meaning of word "encapsulation" consulting several dictionaires.
Without this the book would be half of the current size
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


3 of 3 people found the following review helpful:
4.0 out of 5 stars ever so slightly less exceptional, February 21, 2007
This review is from: Exceptional C++ Style: 40 New Engineering Puzzles, Programming Problems, and Solutions (Paperback)
I had mixed feelings on this one. On the one hand, this is definitely a good book. You won't find a lot of the material here having filtered out to any other book yet. On the other hand, the actual content itself feels more ephemeral than the previous two installments. Personally, I don't have a problem with that; Sutter's work can be read perfectly well as a way to pick up the general principles of solid C++ engineering from an articulate, reliable expert, you don't need him to be spelling out everyday techniques to get something useful from his writing.

As an example, the items that I found most memorable included his investigation of how compilers failed to adhere to the standard when it comes to template friend function look up, with the surprising result that the normally reliable g++ is the worst offender. Additionally, he demonstrates several ways to call private member functions from outside of a class. I'm certain that fans of the last two books will get a kick out of this stuff, but it's not quite at the same level as his work designing for exception safety.

In addition to the usual question-essay-guideline format, the book has a substantial final section dissecting some failings of publicly-available code, which is where I assume the title of the book comes from. Those with fond memories of Tom Cargill's C++ Programming Style will definitely like this bit.

Despite the fact that the material is arguably slightly thinner than usual, the number of pages is actually up on the previous books. Sutter's writing style has also expanded. However, in a couple of places, the writing could have done with some editing. There are some witty asides and extraneous material that take up just a bit too much space.

Nonetheless, Sutter-nutters will probably not be too disappointed by Exceptional C++ Style. I still really enjoyed this book; reading it was time well spent.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


1 of 1 people found the following review helpful:
4.0 out of 5 stars A good supplemental book on C++, November 4, 2008
By 
Brian Lawler (Washington, D.C.) - See all my reviews
(REAL NAME)   
This review is from: Exceptional C++ Style: 40 New Engineering Puzzles, Programming Problems, and Solutions (Paperback)
Interesting book on C++. Not good for learning C++. Includes many puzzles that are meant to entertain, if you are into that sort of thing, as well as inform. In teaching C++ courses, I've used it for supplemental lessons as a diversion from the core material. Also makes a good source for extra-credit questions on tests or quizes. An incomplete reference for coding standards but a good supplemental text.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


1 of 1 people found the following review helpful:
4.0 out of 5 stars Stretching exercises, August 17, 2004
This review is from: Exceptional C++ Style: 40 New Engineering Puzzles, Programming Problems, and Solutions (Paperback)
A good set of mental stretching exercises for the C++ programmer who wants to deepen an appreciation of the language. Sutter assumes you are already conversant with the basic syntax, and that by now, you can easily write and compile a straightforward computational task.

But what lies beyond? Of necessity, what Sutter does is somewhat subjective. (Unlike, say, a book on syntax.) Not so much in the opinions he offers in the solutions to the problems he poses. Most C++ programmers will probably regard his assessments as valid and cogent. If you tackle the problems, without peeking at the answers till you have given it a hard try, then you should derive some benefit from most problems. Like when he asks when try and catch should be used, and when not? Basically, it is possible to overuse try and catch. Something that an introductory book would be unlikely to discuss.

The real subjectivity in the book is of course his choice of problems. But Sutter readily explains that he makes no claim to comprehensiveness. and he does indeed cover many aspects of the language. Quite possibly to your benefit.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


5.0 out of 5 stars Deserves five stars, June 16, 2008
By 
Cumhur Guzel (Sydney, NSW, Australia) - See all my reviews
This review is from: Exceptional C++ Style: 40 New Engineering Puzzles, Programming Problems, and Solutions (Paperback)
This book and exceptional c++ series are the best book series, I have ever read. Its language and presentation of material is exemplary. I learned a lot from this book and suggest to anyone to leverage his/her knowledge.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


4.0 out of 5 stars Advanced C++ book to test your knowledge, May 24, 2007
This review is from: Exceptional C++ Style: 40 New Engineering Puzzles, Programming Problems, and Solutions (Paperback)
By having read the 3 books in the serie, I must say that this is my favorite because it has really answered a lot of small questions I had for a long time about several aspects of C++.

The only thing that I have disliked is that Mr. Sutter has contradicted himself with one of the advice that he was giving in the first book. The advice was to not write an assignement operator in terms of its copy constructor with the in place new operator and the explicit destructor and I did agree with the reasonning. Now in this book, it is written that is ok to use that idiom if and if and if and he goes for about a paragraph to describe the condition where it is ok to use the pattern. I can imagine that the author had to admit that there might be exceptional situation where it is ok to use that technic in a heated debate but my opinion is that out of context, he should not have mention that it might be ok to use that technic without devoting an entire item on that topic. It did just confuse me and I had to reread the item in the first book to convince me that there was effectively a contradiction between the 2 books and that it was not just my memory playing games with me.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


Most Helpful First | Newest First

This product

Exceptional C++ Style: 40 New Engineering Puzzles, Programming Problems, and Solutions
$49.99 $36.62
In Stock
Add to cart Add to wishlist