Room 3 

10:20 - 11:20 


Talk (60 min)

C++ Coroutines from scratch

You've heard about this new feature in C++20, Coroutines, but it's the first time you have encountered this term? Then this talk is what you're looking for. We start from the beginning with just "normal" functions. Next, we introduce Coroutines.


Using them, we explore the various customization points C++ offers. We look at what the new keywords co_await, co_yield, and
co_return are for.

Sadly, we also have to talk about how to write a generator for a coroutine since there is no STL part for that in C++20.

Another distinction we make is between cooperative and preemptive multitasking, opening the door for another beauty of
Coroutines, why we don't need locks.

By the end of this talk, you've learned what coroutines are and where you can use them.

Andreas Fertig

Andreas Fertig, CEO of Unique Code GmbH, is an experienced trainer and lecturer for C++ for standards 11 to 20.

Andreas is involved in the C++ standardization committee, in which the new standards are developed. At international conferences, he presents how code can be written better. He publishes specialist articles, e.g., for iX magazine, and has published several textbooks on C++.

With C++ Insights (, Andreas has created an internationally recognized tool that enables users to look behind the scenes of C++ and thus understand constructs even better.

Before working as a trainer and consultant, he worked for Philips Medizin Systeme GmbH for ten years as a C++ software developer and architect focusing on embedded systems.

You can find Andreas online at