Modern C++1x Design


  • Datum: 2019-10-07/08
  • Dauer: 09:00 - 17:00
  • Ort: Ulm, Maritim Hotel
  • Sprache: EN
  • Referent: Dr. Andrei Alexandrescu
  • Fruehbucher: 1.999,- € (plus 19% VAT/MwSt.) till/bis 2019-09-30
  • Preis: 2.190,- € (plus 19% VAT/MwSt.)

Änderungen vorbehalten / changes reserved



The book "Modern C++ Design" popularized what became colloquially known as modern C++, a refreshing style of high-level programming that gave away inheritance and polymorphism in favor of templates and compile-time metaprogramming. Over time, support for this way of writing code has been significantly enhanced in C++11 and C++14. This seminar discusses the core topics of Modern C++ Design in the context of C++1x. With better language support certain artifacts are much easier to design and implement. More importantly, new opportunities are now available.


Course Highlights

Participants will gain:

  • A good understanding of Design Patterns and their place in an engineer's toolchest.
  • Mastery of policy-based design that uses C++ generic programming to implement highly reusable designs.
  • A comprehensive introduction to C++1x core language features and library artifacts specifically targeted at template-based programming.
  • A good understanding of classic design patterns, their tradeoffs, and state-of-the-art generic C++ implementation for each.


Please note: This course is being actively developed. The actual course might contain more topics and slight variations on the topics outlined below

  • Recap of Design Patterns
  • Recap of Policy-Based Design
  • Variadic Templates
  • std::tuple
  • Deferred std::tuple expansion
  • Typelists and policy parameters
  • Factory Design Pattern
  • Visitor Design Pattern
  • Chain of Responsibility Design Pattern
  • Declarative Control Flow
  • Unifying Exception with Error Codes
  • Policy-Based Memory Allocation
  • Generic Locking
  • Robert Martin's Principles of Object-Oriented Design

    • SRP: The Single Responsibility Principle
    • OCP: The Open Closed Principle
    • LSP: The Liskov Substitution Principle
    • ISP: The Interface Segregation Principle
    • DIP : The Dependency Inversion Principle
    • REP: The Release Reuse Equivalency Principle
    • CCP: The Common Closure Principle
    • CRP: The Common Reuse Principle
    • ADP: The Acyclic Dependencies Principle
    • SDP: The Stable Dependencies Principle
    • SAP: The Stable Abstractions Principle

Attendee Profile

This class targets senior engineers and architects of C++-based systems. Familiarity with the major features of C++ is required. Template programming and C++1x concepts will be introduced.



The format is a highly interactive lecture. Questions during the lecture are encouraged. Use of laptops for trying out examples is allowed. 

Dr. Andrei Alexandrescu
Dr. Andrei Alexandrescu
Dr. Andrei Alexandrescu is a researcher, software engineer, and author.


"The topic is very complex, yet Andrei manages to explain it in a clear and entertaining way."
D. Germann, Plexim GmbH


"If only I could apply everything I learned here in my everyday work! Thank you!"
D. Osswald, Schunk GmbH & Co. KG


"Excellent seminar, introduced me to ideas and tricks I wouldn't have thought of, let alone thought possible. Some more practical/real-life examples of applications (the correct use cases) would be my only suggestion for improvement."
F. Melville, Fraunhofer Institut für Integrierte Schaltungen IIS


“Exceptionally Good! The whole style was perfect. I learned a lot of new things and the personal stories will help me to memorize the learned.“
D. Feurle, sodgeIT GmbH


+49 (0)711 138183-0


AGB für Seminare