1st day – 16 October 2023 (9:00 – 16:30, lunch break 12:30 – 13:30)
- Concepts and the STL
- Overview of the STL
- Proper use of the STL
- Iterators
- Algorithms
- Containers
- Allocators
2nd day – 17 October 2023 (9:00 – 16:30, lunch break 12:30 – 13:30)
- C++ Templates
- Function Templates
- Class Templates
- Variadic Templates
- Template Specialization
3rd day – 18 October 2023 (9:00 – 16:30, lunch break 12:30 – 13:30)
- Class Design
- Compiler Generated Functions
- Move Semantics
- Proper Handling of Member Data
- Proper Design of Member Functions
- Strong Types
- Const Correctness
- Visibility vs. Accessibility
4th day – 19 October 2023 (9:00 – 15:30, lunch break 12:30 – 13:30)
- Robust Code
- Error Propagation
- Exception Safety
- RAII
- Handling Legacy Code
- Proper Use of Dynamic Polymorphism
- The Perils of Inheritance
- Value Semantics
- Public Inheritance
- Non-public Inheritance
- Surprises in Object Hierarchies
- Classical Design Patterns Revisited
- Strategy
- Visitor