Modern C++1x Design

Summary


  • Date: 2018-10-08/09
  • Duration: 09:00 - 17:00
  • Location: Stuttgart, Hotel Steigenberger Graf Zeppelin
  • Language: EN
  • Speaker: Dr. Andrei Alexandrescu
  • Early Bird: 1.990,- € (plus 19% VAT/MwSt.) till/bis 2018-07-06
  • Price: 2.190,- € (plus 19% VAT/MwSt.)

Änderungen vorbehalten / changes reserved


 

Abstract

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.


Outline

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.

 

Format

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.


Testimonials


"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



Contact


Phone
+49 (0)711 138183-0

E-Mail
seminare@qa-systems.de

Terms and Conditions
Start
Trial
QA-Systems