C++ 20
Learn & implement the new features of C++20
Understand & implement the new C++20 features
Learn about the changes & updates to existing C++ features
Course Prerequisites
Note: This course is still in draft mode and is 50% complete.
C++20 is said to be the next revolutionary standard after C++11. It has improved existing features, such as lambda expressions, templates, enums, etc, and has added a host of new features.
The most important new features are the big four - concepts, coroutines, modules & ranges. Concepts is a new way to apply constraints to your template arguments. Coroutines help us write functions that can be interrupted & resumed, all without additional threads.
Modules are a new way to modularize a C++ application. No more messy header files. You can expose or hide your code in modules with full control.
Ranges is another important feature added in C++20. It allows you to work with containers and algorithms easily without having to deal directly with iterators.
Learn about all these features in this course and more.
Welcome
Designated Initialization - Aggregate Types
Designated Initialization - Examples
Designated Initialization - More Examples
Init- Statement in Range-Based For Loop - I
Init- Statement in Range-Based For Loop - II
char8_t & std:u8string - I
char8_t & std:u8string - II
Structured Bindings Changes
constexpr Changes
Immediate Functions - conseval
Compile-time Initialization - constinit
Conditionally Explicit Constructor - I
Conditionally Explicit Constructor - II
Conditionally Explicit Constructor - III
Non-Type Template Parameteres
Lambda Expressions - Implicit this Capture
Lambda Expressions - Template Parameters - I
Lambda Expressions - Template Parameters - II
Lambda Expressions - Unevaluated Context
[nodiscard] Attribute
New C++20 Attributes
using enum Declaration
Motivation
Basics
Examples
requires Usage
Abbreviated Templates
Requirement Types - I
Requirement Types - II
Custom Concepts
Standard Library Concepts
Build Process Overview
Module Basics
Naming Modules
Module Compilation
Declaration & Definition Separation
Submodules
Partition Modules
Header Units
Module Private Marker
Umar Lone