- Date: 9th-10th October 2017
- Duration: 9:00 am - 5:00 pm
- Location: Stuttgart, Hotel Steigenberger Graf Zeppelin
- Language: English
- Speaker: Dr. Andrei Alexandrescu
- Early Bird: 1.990,- € plus tax (19%) for registration by 09.07.2017
- Price: 2.190,- € plus tax (19%)
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.
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
- 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
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.
“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
+49 (0)711 138183-0 E-Mail firstname.lastname@example.org
Terms and Conditions