Modern C++1x Design

Summary


  • Date: 9.-10. Oktober 2017
  • Duration: 9:00 - 17:00 Uhr
  • Location: Stuttgart, Hotel Steigenberger Graf Zeppelin
  • Language: Englisch
  • Speaker: Dr. Andrei Alexandrescu
  • Early Bird: 1.990,- € zzgl. MwSt. (19%) bei Anmeldung bis 09.07.2017
  • Price: 2.190,- € zzgl. MwSt. (19%)

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


“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

 

“Dr. Alexandrescu is excellent. He explains things in an easy way and understandable. I like his speech very much and from the class I learned lots of tricks and skills and deeper understanding to C++. Thank you!“
D. Jostmeyer, Bachmann Technology GmbH & Co.KG



Contact


Phone
+49 (0)711 138183-0

E-Mail
seminare@qa-systems.de

Terms and Conditions
Start
Trial
QA-Systems