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