Modern C++
--- New features in C++11/C++14/C++17/C++20 ---
Who should attend?
Software developers who want to get acquainted with the new language features of the most recent C++ standards C++11, C++14, C++17 and C++20.
Pre-requisites:
A good working knowledge of "Classical C++" (language features of C++98/03 including templates). Potentially existing foreknowledge gaps can optionally be filled by a customised version of the course "C++ Refresher".
Duration:
3 days
Course Description:
The new language standards since C++11 increased the scope of the C++ programming language considerably. Apart from many innovations, which mainly simplify the reading and writing of programs, the language standards also introduced new concepts, which require a good understanding of their objective and behaviour, before they can be applied beneficially. This course starts from classical C++ knowledge and shows which new language
features have been introduced in C++11, C++14, C++17 and C++20. Additionally Smart Pointers, as part of the C++ standard library, are covered in this training. Further innovations of the C++ standard library are subject of other courses, such as "C++ Multithreading".
Course Outline:
- Uniform Initialisation
- Range-Based Loops
- Automatic Type Deduction (auto, decltype)
- Scoped Enumerations
- Rvalue References and Move Semantics
- Constant Expressions (constexpr)
- Lambda Functions and Lambda Captures
- Special Member Functions
- Constructor Delegation
- Inheriting Constructor, override and final
- Variadic Templates
- Perfect Forwarding
- Smart Pointers (unique/shared/weak_ptr)
- Binary Literals and Digit Separators
- Raw String Literals
- User Defined Literals
- Explicit Type Conversion
- noexcept
- static_assert
- Attributes
- Variable Templates
- Automatic Type Deduction for Template Classes
- Variable Initialisation in if and switch
- Data Type byte
- Type Traits
- constexpr if
- Template Parameter List for Generic Lambda Functions
- Designated Initializers
- Concepts
- 3-Way-Comparison (“Space Ship Operator”)
- Modules
- Compile Time Support Extensions