1st day – 08 April 2024 (9:00 – 16:30, lunch break 12:30 – 13:30)
- The Basic Design Principles
- Defining a Goal
- The SOLID Principles
- Concepts and the STL
- Motivation
- STL Algorithms
- STL Allocators
2nd day – 09 April 2024 (9:00 – 16:30, lunch break 12:30 – 13:30)
- Advanced Templates
- Type Traits
- SFINAE
- C++20 Concepts
- Class Design
- Compiler Generated Functions
- Exception Safety
- Copy Elision
3rd day – 10 April 2024 (9:00 – 16:30, lunch break 12:30 – 13:30)
- Class Design
- Move Semantics
- Return Values and Parameters
- Member Data
- Applied Class Design
- Visibility vs. Accessibility
- Dynamic Polymorphism
- The Perils of Inheritance
4th day – 11 April 2024 (9:00 – 15:30, lunch break 12:30 – 13:30)
- Dynamic Polymorphism
- Value Semantics
- Visitor (Classic vs. Modern)
- Strategy (Classic vs. Modern)
- Type Erasure
- Public Inheritance
- Examples for good public inheritance
- Examples for bad public inheritance
- Surprises in Inheritance Hierarchies
- Value Semantics
- Design of HPC Components
- Motivation
- SIMD Basics
- Vectors and Matrices
- Dense Matrix/Dense Vector Multiplication