Foreword
Preface
Generic Programming and the C++ Standard Library
Item 1: Switching Streams
Item 2: Predicates, Part l: 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 Arent
Item 7: Using Vector and Deque
Item 8: Using Set and Map
Item 9: Equivalent Code?
Item 10: Template Specialization and Overloading
Item 1 l: Mastermind
Optimization and Performance
Item 12: Inline
Item 13: 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: MuRithreaded Environments
Exception Safety Issues and Techniques
Item 17: Constructor Failures, Part 1: 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: (Im)pure Virtual Functions
Item 28: Controlled Polymorphism
Memory and Resource Management
Item 29: Using auto_otr
Item 30: Smart Pointer Members, Part l: 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 Arent (in a Multithreaded World)
Appendix B: Test Results for Single-Threaded Versus Multithread-Safe
String Implementations
Bibliography
Index