Trainings Details
C++ is no longer C with classes and it never was just an Object-Oriented language. C++ is a general-purpose programming language. It has procedural, object-oriented, and generic programming features, while also providing facilities for low-level memory manipulation. If used correctly, it provides hard to beat performance.
Such usage requires a good knowledge of C++ templates and Modern C++ Idioms which are much different from commonly known design patterns popularized by GoF book and invented to handle common use cases in pure OO languages like Java or C#. Learning C++-specific idioms will allow us to build powerful tools that are useful in the everyday work of every C++ developer. The hands-on part of the workshop will cover RAII, Copy-and-Swap, Smart Pointer, Type Traits, Policy-based Design, EBO, Type Erasure, CRTP, and other popular C++ Idioms.
The training targets C++ developers and code architects that want to improve their skills in implementing general-purpose tools.
Trainings Agenda
TRAINING HIGHLIGHTS
- Learning Modern C++ idioms and their use cases
 - Particular focus on the usage of "C++ templates" in practical tasks
 
TRAINING AGENDA
The following plan is an initial proposal for the training material. The final agenda is always created based on the individual pre-training analysis of client's requirements and constraints.
- C++ Basics in a nutshell
- C++ Types
 - Value Categories
 - Name Lookup
 - Swap
 - Range-based for loop
 - Special Member Functions
 - Exception Safety
 
 - C++ Templates in a nutshell
- C++ template definition
 - Template parameters
 - Template specialization
 
 - Modern C++ Idioms
- Non-Copyable
 - RAII
 - Copy-and-swap
 - Smart Pointer
 - type_identity
 - Type Traits
 - Tag dispatch
 - Policy-based design
 - EBO
 - Type Erasure
 - SOO
 - Copy-on-write
 - CRTP
 - Barton-Nackman Trick
 - Singleton
 - Customization point object (Niebloid)
 - Mixin
 
 
