8–11 Apr 2024
ONLINE
Europe/Vienna timezone

Agenda & Content

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 
       
  • Design of HPC Components 

    • Motivation
    • SIMD Basics
    • Vectors and Matrices
    • Dense Matrix/Dense Vector Multiplication