C++20 – The Latest C++ Standard C++20
Introduces game-changing new features
Concepts & constrained templates, Modules, Coroutines, Ranges Library, …
enable with g++ -std=c++20 or clang++ -std=c++20 or cl.exe /std:c++latest
- All C++20 core language features with examples (by Oleksandr Koval)
- What's new in C++20 in
Tony Tables
- C++ 20 – cppreference (language and library reference)
- ISO C++20 (N4861) (Standard as HTML)
Related Articles
A – C
E – L
S
- Standard Library Associative Containers
- Standard Library Element-Wise Range Modifications
- Standard Library Existence Queries
- Standard Library Finding Algorithms
- Standard Library min/max Algorithms
- Standard Library Range Comparison Algorithms
- Standard Library Range Utilities
- Standard Library Removal Algorithms
- Standard Library Sequence Reordering Algorithms
- Standard Library Sequence Views
- std::span / gsl::span
- std::vector
T
Videos
- C++20:
operator <=>
(C++ Weekly) - C++20:
for
init-statements (C++ Weekly) - C++20: Designated Initializers (C++ Weekly)
- C++20: Default Bit-field Member Initializers (C++ Weekly)
- C++20: Aggregates With User Defined Constructors (C++ Weekly)
- C++20: Conditionally
explicit
Conversions (C++ Weekly) - C++20:
using enum
(C++ Weekly) - C++20:
[[likely]]
and[[unlikely]]
With Practical use Case (C++ Weekly) - C++20: Multiple Destructors?! How and Why (C++ Weekly)
- C++20: Why Deprecate The Comma Operator? (C++ Weekly)
- Better CTAD for C++20 (Timur Doumler, 2019)
- Universal Function Call Syntax in C++20 (Devon Richards, 2021)
Lambdas
Compile Time
- Concepts in C++20 (CopperSpice C++)
- C++20's constexpr std::vector and std::string (C++ Weekly)
- C++20:
constexpr
virtual
Members (C++ Weekly) - C++20:
constexpr
Algorithms (C++ Weekly) - C++20:
constexpr
new
Support (C++ Weekly) - C++20: New
consteval
Keyword (C++ Weekly) - C++20:
is_constant_evaluated()
(C++ Weekly) - C++20: Design By Introspection (concepts + if constexpr) (C++ Weekly)
- C++20: From SFINAE To Concepts (C++ Weekly)
- C++20:
constinit
(C++ Weekly) - Policy-based design in C++20 (Goran Arandjelović, 2018)
- C++20: Uniform Container Erasure (C++ Weekly)
- C++20:
std::string
starts_with
andends_with
(C++ Weekly) - C++20:
std::shift_left
andstd::shift_right
(C++ Weekly) - C++20:
std::bit_cast
(C++ Weekly) - C++20:
std::to_array
(C++ Weekly) - C++20:
std::source_location
(C++ Weekly) - C++20:
std::to_pointer
(C++ Weekly) - C++20:
std::bind_front
(C++ Weekly) - C++20:
lerp
,midpoint
And Why They Are Necessary (C++ Weekly) - C++20:
contains
Members (C++ Weekly) - C++20:
jthread
andstop_token
(C++ Weekly) - C++20: Safe Integer Comparisons (C++ Weekly)
- C++20: Bit Manipulation Functions (C++ Weekly)
- C++20: (High Precision) Mathematical Constants (C++ Weekly)
- The C++20 Synchronization Library (Bryce Lelbach, 2019)
Coroutines
- From Functions to Coroutines (Rainer Grimm, 2020)
- Converting a State Machine to a C++ 20 Coroutine (Steve Downey, 2021)
- Coroutine TS a new way of thinking (Andreas Reischuck, 2018)
- C++ Coroutines - a negative overhead abstraction (Gor Nishanov, 2015)
- Using C++20 coroutines for asynchronous parsers (Andreas Reischuck)