| help | account  


Exceptional C++ Style: 40 New Engineering Puzzles, Programming Problems, and Solutions
View Larger Image
Herb Sutter
Addison-Wesley, Paperback, Published July 2004, 325 pages, ISBN 0201760428
List Price: $44.99
Our Price: $34.95
You Save: $10.04 (22% Off)


FREE Shipping on Orders over $40!*
Availability: Out-Of-Stock

Customer Reviews: 1     Average Customer Rating:

Write a Review and tell the world about this title!

People who purchase this book frequently purchase:

Books on similar topics, in best-seller order:Books from the same publisher, in best-seller order:

Software "style" is about finding the perfect balance between overhead and functionality... elegance and maintainability... flexibility and excess. In Exceptional C++ Style, legendary C++ guru Herb Sutter presents 40 new programming scenarios designed to analyze not only the what but the why and help you find just the right balance in your software.

Organized around practical problems and solutions, this book offers new insight into crucial C++ details and interrelationships, and new strategies for today's key C++ programming techniques--including generic programming, STL, exception safety, and more. You'll find answers to questions like:

  • What can you learn about library design from the STL itself?
  • How do you avoid making templated code needlessly non-generic?
  • Why shouldn't you specialize function templates? What should you do instead?
  • How does exception safety go beyond try and catch statements?
  • Should you use exception specifications, or not?
  • When and how should you "leak" the private parts of a class?
  • How do you make classes safer for versioning?
  • What's the real memory cost of using standard containers?
  • How can using const really optimize your code?
  • How does writing inline affect performance?
  • When does code that looks wrong actually compile and run perfectly, and why should you care?
  • What's wrong with the design of std::string?

Exceptional C++ Style will help you design, architect, and code with style--and achieve greater robustness and performance in all your C++ software.

Table of Contents

Preface.

GENERIC PROGRAMMING AND THE C++ STANDARD LIBRARY.
1. Uses and Abuses of Vector.

2. The String Formatters of Manor Farm, Part 1: sprintf.

3. The String Formatters of Manor Farm, Part 2: Standard (or Blindingly Elegant) .

ALTERNATIVES.
4. Standard Library Member Functions.

5. Flavors of Genericity, Part 1: Covering the Basis [sic].

6. Flavors of Genericity, Part 2: Generic Enough?

7. Why Not Specialize Function Templates?

8. Befriending Templates.

9. Export Restrictions, Part 1: Fundamentals.

10. Export Restrictions, Part 2: Interactions, Usability Issues and Guidelines.

Exception Safety Issues and Techniques.
11. Try and Catch Me.

12. Exception Safety: Is It Worth It?

13. A Pragmatic Look at Exception Specifications.

CLASS DESIGN, INHERITANCE, AND POLYMORPHISM.
14. Order, Order!

15. Uses and Abuses of Access Rights.

16. (Mostly) Private.

17. Encapsulation.

18. Virtuality.

19. Enforcing Rules for Derived Classes.

MEMORY AND RESOURCE MANAGEMENT.
20. Containers In Memory, Part 1: Levels of Memory Management.

21. Containers In Memory, Part 2: How Big Is It Really?

22. To New, Perchance To Throw, Part 1: The Many Faces of New.

23. To New, Perchance To Throw, Part 2: Pragmatic Issues in Memory Management.

OPTIMIZATION AND EFFICIENCY.
24. Constant Optimization?

25. inline Redux.

26. Data Formats and Efficiency, Part 1: When Compression is the Name of the Game.

27. Data Formats and Efficiency, Part 2: (Even Less) Bit-Twiddling.

TRAPS, PITFALLS AND PUZZLERS.
28. Keywords That Aren't (or, Comments By Another Name).

29. Is It Initialization?

30. double or Nothing.

31. Amok Code.

32. Slight Typos? Graphic Language and Other Curiosities.

33. Operators, Operators Everywhere.

STYLE CASE STUDIES.
34. Index Tables.

35. Generic Callbacks.

36. Construction Unions.

37. Monoliths "Unstrung," Part 1: A Look at std::string.

38. Monoliths "Unstrung," Part 2: Refactoring std::string.

39. Monoliths "Unstrung," Part 3: std::string Diminishing.

40. Monoliths "Unstrung," Part 4: std::string Redux.

Bibliography.

Index.

About the Author

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.


Customer Reviews

Customer Reviews: 1     Average Customer Rating:

Nov 11, 2004     Paul M. Dubuc from Columbus, OH USA
Yet More Exceptional C++
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 morals 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!



Forgot your password?
FAQs
Shipping Options
Returns
Your Orders
Your Account