

The Ranges Library in C++20: More Details
Working with the Standard Template Library (STL) is much more comfortable and powerful thanks to the…

Check Types with Concepts
Concepts are a powerful and elegant tool to check at compile time if a type fulfills. Thanks to static_assert,…

Check Types with Concepts – The Motivation
static_assert allows you to check at compile time if a type T fulfills the Concept: static_assert(Concept<T>).
Before…

Using Requires Expression in C++20 as a Standalone Feature
In my last post "Defining Concepts with Requires Expressions", I exemplified how you can use requires…

Defining Concepts with Requires Expressions
In my last post, "Define Concepts", I defined the concepts Integral, SignedIntegral, and UnsigendIntegral…

Define Concepts
There are two ways to define a concept: You can combine existing concepts and compile-time predicates,…

C++20 Modules: Private Module Fragment and Header Units
In the last weeks, I learned something new about modules in C++20: private modules fragments and header…

Automatically Resuming a Job with Coroutines on a Separate Thread
In my last post "Starting Jobs with Coroutines", I applied co_await to start a job. In this post, I improve…

Starting Jobs with Coroutines
C++20 has three new keywords to make a coroutine out of a function: co_return, co_yield, and co_await.…

A Generic Data Stream with Coroutines in C++20
In my last post in this mini-series on coroutines from the practical perspective, I presented the workflow…