Course Information
Course Overview
A focused deep dive into C++20 language and library features for modern C++ developers
Pure C++20 Mastery is a comprehensive, standards-focused deep dive into the C++20 language and standard library.
Unlike most courses that combine older C++ standards with a brief C++20 overview, this course is entirely dedicated to C++20 — covering core language features, new library utilities, concurrency primitives, and the programming models introduced in this standard.
This course assumes some familiarity with modern C++ (C++11/14/17).
It does not repeat language fundamentals, object-oriented basics, or pre-C++20 material.
Core C++20 language features
You will learn all major C++20 language additions, including:
consteval and constinit
Designated initializers
Lambda improvements, including usage in unevaluated contexts
Modern enum enhancements
The three-way comparison operator (<=>) and defaulted comparisons
These features are explained in terms of design intent, correct usage, and real-world implications.
Modules — a new compilation and reuse model
C++20 introduces modules, fundamentally changing how C++ code is structured and reused.
This course covers:
Why modules were introduced
How they differ from header-based designs
How to define, export, and import modules
Build-time, dependency, and architectural implications
Practical limitations and current tooling realities
Ranges — algorithms redesigned
C++20 ranges are not just syntactic sugar.
You’ll gain a deep understanding of the ranges model, including:
Views and lazy evaluation
Range adaptors and composition
Eliminating iterator boilerplate (begin() / end())
Writing safer, more expressive algorithm pipelines
Performance and correctness considerations
Concepts — constraints done right
Concepts introduce a clean, expressive way to constrain templates.
You’ll learn:
Why concepts replace many SFINAE patterns
Concepts vs enable_if
Writing meaningful constraints
Improving compile-time diagnostics
Designing robust generic interfaces
Coroutines — resumable functions and cooperative concurrency
C++20 coroutines introduce a new execution model based on suspendable and resumable functions.
This course explains:
Coroutine mechanics and execution flow
Promise types, awaitables, and suspension points
How coroutines enable asynchronous and cooperative concurrency
How coroutines relate to threads and executors
When coroutines are appropriate — and when they are not
C++20 concurrency & synchronization utilities
In addition to language features, this course provides in-depth coverage of new C++20 concurrency facilities, including:
std::jthread and cooperative cancellation
Stop tokens and structured thread lifetime management
Modern synchronization primitives introduced or enhanced in C++20 such as latch, barrier & semaphore.
Safer, more expressive concurrency patterns enabled by the new library design
This section focuses on why these utilities were added, how they improve correctness, and how they change modern C++ concurrency design.
New and updated C++20 library utilities
You will also explore important C++20 standard library additions, such as:
Formatting facilities (std::format)
New utility types and helper classes such as std::osyncstream, std::source_location, std::span, etc.
Library changes that complement ranges, concepts, and coroutines
Practical usage patterns and limitations
These topics are often skipped or briefly mentioned in other courses — here they are treated as first-class C++20 features.
Update [12-Dec-2024] Added content on new C++20 library features & classes
Update [07-Dec-2024] Added concurrency support videos
Update [26-Nov-2024] Added quiz for all sections
Update [09-Nov-2024] Added more videos with examples of views in Ranges section
Course Content
- 13 section(s)
- 153 lecture(s)
- Section 1 Introduction to C++20
- Section 2 Core Language Changes
- Section 3 Lambda Expressions & Templates
- Section 4 More Core Language Changes
- Section 5 Quiz
- Section 6 Text Formatting Library
- Section 7 Concepts
- Section 8 Modules
- Section 9 Three-way Comparison
- Section 10 Ranges
- Section 11 Coroutines
- Section 12 Concurrency
- Section 13 More Additions to Standard Library
What You’ll Learn
- Learn about the new C++20 language standard features, Migrate existing C++ codebase to C++20, Use coroutines to write concurrent code, Use modules instead of headers to modularize software, Use ranges library to simplify working with containers & algorithms, Use concepts to apply constraints on algorithms & classes
Skills covered in this course
Reviews
-
SSergio Ruiz
yes
-
HHenry Lee
Excellent, clear explanation.
-
AArjun bajpai
The course is to the point and explanation is very crisp!
-
JJulian Nicholls
I am enjoying the content, which is accurate and well explained. Some of the code is not quite right (at least on my Mac clang compiler). An example of that is std::strong_ordering has no default constructor, making the code presented in that lecture uncompilable.