- Back to basics
- Understanding the compiler
- Storage classes in depth
- Stacks and heaps
- Values, references and pointers
- Common pitfalls
- Constructors and destructors
- Virtual functions and V-tables
- Minimising compiler dependencies
- Idioms - Pimpl, Copy-On-Write
- Namespaces (and how to use them)
- The using keyword
- Unnamed namespaces
- Error handling
- Exception safety
- Resource acquisition is initialization
- std::auto_ptr
- Function templates
- Template classes
- Full and partial specialisation
- Policy-based programming
- Compile time assertions
- Strings
- Streams
- Standard Template Library
- Programming with vectors, lists, sets and maps
- Smart pointers
- The Boost Library
- Practicable design patterns