The All-in-One Guide to C++20

The All-in-One Guide to C++20

Gain insights into C++20's flagship features: concepts, modules, range library, and coroutines. Delve into standard library updates, concurrency, example code, and practical case studies.

Intermediate

180 Lessons

13h

Certificate of Completion

Gain insights into C++20's flagship features: concepts, modules, range library, and coroutines. Delve into standard library updates, concurrency, example code, and practical case studies.

AI-POWERED

Explanations

AI-POWERED

Explanations

This course includes

175 Playgrounds
22 Quizzes

This course includes

175 Playgrounds
22 Quizzes

Course Overview

This course is your complete guide to the latest version of C++: C++20. You will run through the flagship features of C++20 but also every minor addition to C++. Initially, you will learn the details of the new standard and most notably, you will focus on the big four: concepts, modules, range library, and coroutines. You will also cover the additions to the standard library and concurrency in detail. To get the information to sink in, each chapter includes tons of example code for you to get a vivid id...Show More

What You'll Learn

Writing more generic programs using concepts

Overcoming the deficiency of legacy headers and macros with modules

Using algorithms that operate directly on containers

Writing asynchronous programs that are highly valuable in event-driven systems

What You'll Learn

Writing more generic programs using concepts

Show more

Course Content

1.

Introduction

Get familiar with C++20's key features, code conventions, and source code examples.
2.

About C++

Discover the logic behind C++20's evolution and the standardization process.
3.

A Quick Overview of C++20

Examine significant features of C++20 that enhance language efficiency, safety, and concurrency.
7.

Designated Initialization

5 Lessons

Learn how to improve initializing class members directly and identifying narrowing conversions.
8.

New Keywords: consteval and constinit

5 Lessons

Learn how to use C++20's `consteval` and `constinit` for optimized compile-time behavior.
9.

Template Improvements

5 Lessons

Grasp the fundamentals of template enhancements, type safety, and non-type template parameters in C++20.
10.

Lambda Improvements

4 Lessons

Examine the enhanced flexibility, safety, and statelessness of lambda expressions in C++20.
11.

New Attributes in C++20

5 Lessons

Grasp the fundamentals of enhanced attributes in C++20 for optimized and efficient coding.
12.

Further Improvements in Core Language

6 Lessons

Dig deeper into C++20's core language enhancements like volatile, range-based for loops, and virtual constexpr functions.
17.

Calendar and Time Zones

7 Lessons

Work your way through managing time, calendar dates, validation, queries, ordinal dates, and time zones in C++20.
18.

Formatting Library

4 Lessons

Break down the steps to effectively use the C++20 Formatting Library for precise data display.
19.

Further Improvements in Standard Library

3 Lessons

Take a closer look at enhancements in C++20's standard library for better debuggability, readability, and compile-time evaluations.
22.

Semaphores

3 Lessons

Step through semaphores, their role in synchronization, and test your understanding.
23.

Latches and Barriers

4 Lessons

Unpack the core of C++20 latches and barriers for effective thread synchronization.
24.

Cooperative Interruption

3 Lessons

Master the steps to effectively manage threads using cooperative interruption techniques and new wait overloads.
25.

std::jthread

3 Lessons

Grasp the fundamentals of `std::jthread` in C++20 for safer, efficient thread management.
26.

Synchronized Output Streams

5 Lessons

Take a closer look at synchronized output streams in C++20 for thread-safe, atomic outputs.
27.

Case Studies

4 Lessons

Focus on advanced thread synchronization, coroutine variations, and improving generator functionality in C++20.
28.

Summary

1 Lesson

Build on C++20's core features and anticipations for advancements in C++23.
30.

C++23 or Later

4 Lessons

Discover key advancements in C++23, including contracts, reflection, and pattern matching.
31.

Feature Testing of C++

1 Lesson

Lay out a solution for assessing compiler support using C++20 feature testing with `<version>` header.

Course Author

Trusted by 1.4 million developers working at companies

Anthony Walker

@_webarchitect_

Evan Dunbar

ML Engineer

Carlos Matias La Borde

Software Developer

Souvik Kundu

Front-end Developer

Vinay Krishnaiah

Software Developer

Eric Downs

Musician/Entrepeneur

Kenan Eyvazov

DevOps Engineer

Souvik Kundu

Front-end Developer

Eric Downs

Musician/Entrepeneur

Anthony Walker

@_webarchitect_

Evan Dunbar

ML Engineer

Hands-on Learning Powered by AI

See how Educative uses AI to make your learning more immersive than ever before.

Instant Code Feedback

Evaluate and debug your code with the click of a button. Get real-time feedback on test cases, including time and space complexity of your solutions.

AI-Powered Mock Interviews

Adaptive Learning

Explain with AI

AI Code Mentor

FOR TEAMS

Interested in this course for your business or team?

Unlock this course (and 1,000+ more) for your entire org with DevPath