C++
developers, architects
1 day
lecture
workshop
C++ Concepts is one of the most significant and long-awaited features of C++20. They improve template interfaces by explicitly stating the compile-time contract between the user and the code architect. Concepts limit the number of compilation errors and make them much more user-friendly when they occur.
The workshop will describe this C++20 feature and its similarities and differences to Concepts TS (provided with gcc-7). It will present ways to benefit from a significant part of the functionality in current production C++ projects that can use only "legacy" C++11 features.
The training targets C++ developers and code architects who want to improve their skills in implementing general-purpose tools.
TRAINING HIGHLIGHTS
- Learning of C++ Constraints and Concepts
- Learning of C++20 Concepts alternatives in legacy code bases
- 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 the client's requirements and constraints.
- C++ Templates in a Nutshell
- C++ template definition
- Template parameters
- Template specialization
- Introduction to C++20 Concepts
- Motivation
- Concept Definition
- Constraining Types with Concepts
- requires Clause
- requires Expression
- Concept Categories
- C++ Standard Library Concepts
- Constraint Normalization
- Concepts TS
- Major Differences from C++20 Concepts
- Concepts Emulation in C++17
- SFINAE
- std::enable_if
- std::void_t
- Type Traits
- Constraining Class Template Parameters
C++
developers, architects
1 day
lecture
workshop