Addison-Wesley / Prentice Hall
Computer Science
Browse available resources for Computer Science:
- Select a resource
- Resources for Computer Science GOAL where virtual office hours are 24/7! Your Own TA, Just a Click Away! Deitel Resource Centers National Center for Women & Information Technology View material from Search Engines: Information Retrieval in Practice VideoNotes Andrew Tanenbaum Flame Award Recipient Custom Programs Instructor Resource Center myPearsonStore

ISBN-10: 0201760428
ISBN-13: 9780201760422
Publisher: Addison-Wesley Professional
Copyright: 2005
Format: Paper; 352 pp
Published: 08/02/2004
Suggested retail price: $44.99
Buy from myPearsonStore
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.
C++ guru Herb Sutter provides a thorough and pragmatic understanding of the language while showing how to write exceptional code in C++.
- Organized in a practical problem-and-solution format, this book provides successful strategies for solving real-world problems in C++.
- Latest addition to Bjarne Stroustrup's respected C++ In-Depth Series.
- Sutter is a leading authority on C++ software development; he is chair of the C++ standards committee and is an architect and C++ evangelist at Microsoft.
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.
Herb Sutter is the author of three highly acclaimed books, Exceptional C++ Style, Exceptional C++, and More Exceptional C++ (Addison-Wesley). He chairs the ISO C++ standards committee, and is contributing editor and columnist for C/C++ Users Journal. As a software architect for Microsoft, Sutter leads the design of C++ language extensions for .NET programming.
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.
Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students, contact your Pearson Higher Education representative for pricing and ordering information.
This title is a member of the C++ In-Depth Series, which also contains the titles below . You can also visit the C++ In-Depth Series page.
Accelerated C++: Practical Programming by Example
Koenig & Moo
© 2000 | Addison-Wesley Professional | Paper; 352 pages | Instock
ISBN-10: 020170353X | ISBN-13: 9780201703535
Brief Description | Buy from myPearsonStore
Applied C++: Practical Techniques for Building Better Software
Romanik & Muntz
© 2003 | Addison-Wesley Professional | Paper; 352 pages | Instock
ISBN-10: 0321108949 | ISBN-13: 9780321108944
Brief Description | Buy from myPearsonStore
C++ Coding Standards: 101 Rules, Guidelines, and Best Practices
Sutter & Alexandrescu
© 2005 | Addison-Wesley Professional | Paper; 240 pages | Instock
ISBN-10: 0321113586 | ISBN-13: 9780321113580
Brief Description | Buy from myPearsonStore
C++ Network Programming, Volume 2: Systematic Reuse with ACE and Frameworks
Schmidt & Huston
© 2003 | Addison-Wesley Professional | Paper; 384 pages | Instock
ISBN-10: 0201795256 | ISBN-13: 9780201795257
Brief Description | Buy from myPearsonStore
C++ Network Programming, Volume I: Mastering Complexity with ACE and Patterns
Schmidt & Huston
© 2002 | Addison-Wesley Professional | Paper; 336 pages | Instock
ISBN-10: 0201604647 | ISBN-13: 9780201604641
Buy from myPearsonStore
Essential C++
Lippman
© 2000 | Addison-Wesley Professional | Paper; 304 pages | Instock
ISBN-10: 0201485184 | ISBN-13: 9780201485189
Brief Description | Buy from myPearsonStore
Exceptional C++ Style: 40 New Engineering Puzzles, Programming Problems, and Solutions
Sutter
© 2005 | Addison-Wesley Professional | Paper; 352 pages | Instock
ISBN-10: 0201760428 | ISBN-13: 9780201760422
Buy from myPearsonStore
Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions
Sutter
© 2000 | Addison-Wesley Professional | Paper; 240 pages | Instock
ISBN-10: 0201615622 | ISBN-13: 9780201615623
Buy from myPearsonStore
Modern C++ Design: Generic Programming and Design Patterns Applied
Alexandrescu
© 2001 | Addison-Wesley Professional | Paper; 352 pages | Instock
ISBN-10: 0201704315 | ISBN-13: 9780201704310
Brief Description | Buy from myPearsonStore
More Exceptional C++: 40 New Engineering Puzzles, Programming Problems, and Solutions
Sutter
© 2002 | Addison-Wesley Professional | Paper; 304 pages | Instock
ISBN-10: 020170434X | ISBN-13: 9780201704341
Brief Description | Buy from myPearsonStore
Accelerated C++ introduces a radical new approach to teaching C++. It starts with the most useful concepts rather than the most primitive ones, so the student can begin writing programs immediately. It describes real problems and solutions, not just language features. And it includes the standard library from the start. The authors proved the effectiveness of this approach in their courses at Stanford and Princeton, where their students learned to write substantial programs their first day in the classroom.
Applied C++ is a practical, straightforward guide to developing high-quality, maintainable software. It reflects the power of C++, templates, and the Standard Template Library for industrial-strength programming. The tips and techniques presented in this book will help students improve their language and design skills and shows how to solve substantial problems more effectively.
Every software development team should have and follow a coding standard.
It's even better when what the coding standard requires is actually consistent,
reasonable, and correct.
Coding standards have many advantages:
*They improve code quality. This happens automatically when following a
good, simple set of guidelines.
*They improve development speed, because the programmer doesn't need to
always make decisions starting from first principles.
*They enhance teamwork by eliminating needless debates on inconsequential
issues and by making it easy for teammates to read and maintain each other's
code.
The coding standards introduced by this book are a collection of guidelines for
writing high-quality C++ code.
***They are the distilled conclusions of a rich collective experience of the C++
community. Until now, this body of knowledge has been available only as
folklore or spread in bits and pieces throughout books.
Essential C++ offers a fast-track to learning and working with C++. This book is specifically designed to bring you up to speed in a short amount of time. It focuses on the elements of C++ programming that you are most likely to encounter and examines features and techniques that help solve real-world programming challenges. Essential C++ presents the basics of C++ in the context of procedural, generic, object-based, and object-oriented programming. It is organized around a series of increasingly complex programming problems, and language features are introduced as solutions to these problems. In this way you will not only learn about the functions and structure of C++, but will understand their purpose and rationale.
In Modern C++ Design, Andrei Alexandrescu opens new vistas for C++ programmers. Displaying extraordinary creativity and programming virtuosity, Alexandrescu offers a cutting-edge approach to design that unites design patterns, generic programming, and C++, enabling programmers to achieve expressive, flexible, and highly reusable code.
This book introduces the concept of generic components—reusable design templates that produce boilerplate code for compiler consumption—all within C++. Generic components enable an easier and more seamless transition from design to application code, generate code that better expresses the original design intention, and support the reuse of design structures with minimal recoding.
Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students contact your Pearson Higher Education representative.
