Highlights
C++ 20 and 23 Training Course
- Gain an Introduction to modern C++ using C++20 and C++23
- Learn the latest C++ features
- Understand how many new features can improve performance
- Explore the new template features
- Explore new Standard Library Features
- Explore the new fluent style of programming
- Use new multithreading and synchronisation features
- Learn how to structure applications using Modules
Course Details
Introduction
- Overview of History of C++ Language
- Introduction to C++11/14/17/20/23
- New features summary
- Current compiler support
Template related features:
- Template syntax for lambdas
- Abbreviated function templates
- Classes as template non-type parameter
- Lambda capture of variadic parameters
Concepts
- Defining a concept
- Constraints
- requires
Ranges (library)
- Ranges and Views
- Constrained Algorithms
- Constrained Algorithms projections
- Range Adaptors
- Pipelines
- Filtering and transforming
Threading
- jthread
- stop_source and stop_token
- semaphore
- latch and barrier
- Atomic shared pointer
General C++ 20 features including:
- using enum
- Lambda capture of ‘this’
- constexpr – new capabilities
- consteval – immediate functions
- Deprecated implicit capture
- Designated initializer
- constexpr virtual functions
- Conditional explicit
- New attributes [[likely]] and [[unlikely]]
- Spaceship operator <=>
- Source location
- std::format
- shared pointer support for arrays
Modules
- Defining a module
- export and import keywords
- Making implementation private
Coroutines
- What are coroutines?
- Why use coroutines?
- co_await, co_yield and co_return.
- generator (C++ 23)
C++ 23 features
- Print library
- fold algorithms
- Static operators
- Multiple subscript [] operator
- Deducing ‘this’
- Monadic std::optional member functions
- std::expected
- Range Adaptors
Who should attend
Feedback
4.8 out of 5 average
"Overall I felt it improved my knowledge of C++ - filled in some gaps and corrected some misunderstandings in my knowledge, and reminded me of some important things I'd forgotten."
IH, Software Engineer, C++, May 2021
“JBI did a great job of customizing their syllabus to suit our business needs and also bringing our team up to speed on the current best practices. Our teams varied widely in terms of experience and the Instructor handled this particularly well - very impressive”
Brian F, Team Lead, RBS, Data Analysis Course, 20 April 2022