CPP-14-17
C++ 14/17 training
Description
The aim of the course is to consolidate your knowledge of C++11, to increase your awareness of the techniques used and to learn the newer versions of the language (C++14/17). It contains a mix of theory and practice, as well as recommendations for everyday work based on the presenter's own experience. The slides are in English, but the lecture is entirely in Hungarian, describing both English and Hungarian official or common vocabulary.
Target audience: current or former daily users of C++11.
Outline
Data types and literals
- nullptr
- Class Enums
- User defined string literals
- Binary literals
- Hexadecimal floating-point literals
Move semantics
- Basics
- Copy and move implementation
- Automatisms
- Workshop
Objects and classes
- Using interfaces and inheritance
- Override
- Final
- Constructor delegation
- Member initialization
Type system and construction
- Using and template aliases
- Type inference
- Structured binding
- Uniform initialization
- Initializer lists
- Explicit conversion operators
- Constexpr
Control flow
- Initializers in if and switch
- Range-based for loop
- Lambdaa
- Generic lambdas
Metaprogramming
- If constexpr
- Static_assert
- Variadic templates
- CTAD
- Deduction rules
Data storage
- Inline variables
- Thread-local storage
- alignof() and alignas()
- Aligend allocation/deallocation
- Sized deallocation
Library
- Smart pointers
- std::shared_mutex
- std::string_view
- std::optional
- std::variant
- std::any
- pmr
- std::execution
Prerequisites
Programming work experience, C++ programming skills.