More Exceptional C++ : 40 New Engineering Puzzles, Programming Problems, and Solutions (C++ in Depth Series)

More Exceptional C++ : 40 New Engineering Puzzles, Programming Problems, and Solutions (C++ in Depth Series)

  • ただいまウェブストアではご注文を受け付けておりません。 ⇒古書を探す
  • 製本 Paperback:紙装版/ペーパーバック版/ページ数 279 p.
  • 言語 ENG
  • 商品コード 9780201704341
  • DDC分類 005.133

Full Description


More Exceptional C++ continues where Herb Sutter's best-selling Exceptional C++ left off, delivering 40 puzzles that illuminate the most challenging -- and most powerful -- aspects of C++. More Exceptional C++ offers many new puzzles focused on generic programming and the C++ Standard Template Library, including important techniques such as traits and predicates, as well as key considerations in using standard containers and algorithms -- many of them never covered elsewhere. More Exceptional C++ contains a detailed new section (and two appendices) on optimization in single- and multithreaded environments. It also provides important new insights on crucial topics first introduced in Exceptional C++, including exception safety, generic programming, and memory management. For all C++ programmers.

Contents

Foreword. Preface. Generic Programming and the C++ Standard Library. Item 1: Switching Streams (2 / 10). Item 2: Predicates, Part 1: What remove() Removes (4 / 10). Item 3: Predicates, Part 2: Matters of State (7 / 10). Item 4: Extensible Templates: Via Inheritance or Traits? (7 / 10). Item 5: Typename (7 / 10). Item 6: Containers, Pointers, and Containers That Aren't (5 / 10). Item 7: Using Vector and Deque (3 / 10). Item 8: Using Set and Map (5 / 10). Item 9: Equivalent Code? (5 / 10). Item 10: Template Specialization and Overloading (6 / 10). Item 11: Mastermind (8 / 10). Optimization and Performance. Item 12: Inline (4 / 10). Item 13: Lazy Optimization, Part 1: A Plain Old String (2 / 10). Item 14: Lazy Optimization, Part 2: Introducing Laziness (3 / 10). Item 15: Lazy Optimization, Part 3: Iterators and References (6 / 10). Item 16: Lazy Optimization, Part 4: Multi-Threaded Environments (8 / 10). Exception Safety Issues and Techniques. Item 17: Constructor Failures, Part 1: Object Lifetimes (4 / 10). Item 18: Constructor Failures, Part 2: Absorption? (7 / 10). Item 19: Uncaught Exceptions (6 / 10). Item 20: An Unmanaged Pointer Problem, Part 1: Parameter Evaluation (6 / 10). Item 21: An Unmanaged Pointer Problem, Part 2: What About auto_ptr? (8 / 10). Item 22: Exception-Safe Class Design, Part 1: Copy Assignment (7 / 10). Item 23: Exception-Safe Class Design, Part 2: Inheritance (6 / 10). Inheritance and Polymorphism. Item 24: Why Multiple Inheritance? (6 / 10). Item 25: Emulating Multiple Inheritance (5 / 10). Item 26: Multiple Inheritance and the Siamese Twin Problem (4 / 10). Item 27: (Im)pure Virtual Functions (7 / 10). Item 28: Controlled Polymorphism (3 / 10). Memory and Resource Management. Item 29: Using auto_ptr (5 / 10). Item 30: Smart Pointer Members, Part 1: A Problem with auto_ptr (5 / 10). Item 31: Smart Pointer Members, Part 2: Toward a ValuePtr (6 / 10). Free Functions and Macros. Item 32: Recursive Declarations (6 / 10). Item 33: Simulating Nested Functions (5 / 10). Item 34: Preprocessor Macros (4 / 10). Item 35: #Definition (4 / 10). Miscellaneous Topics. Item 36: Initialization (3 / 10). Item 37: Forward Declarations (3 / 10). Item 38: Typedef (3 / 10). Item 39: Namespaces, Part 1: Using-Declarations and Using-Directives (2 / 10). Item 40: Namespaces, Part 2: Migrating to Namespaces (4 / 10). Afterword. Appendixes, Appendix A. Optimizations That Aren't (In a Multithreaded World). Appendix B. Test Results for Single- versus Multi-Thread-Safe String Implementations. Bibliography. Index. 020170434XT07022001