Registration includes:
Free attendance at the Using std::cpp 2023 event on April 27 and 28s for the first 20 registered
Coroutines are one of the most significant language additions in C++20. It is a powerful but also quite complex feature. It allows us to run many concurrent coroutines with no overhead. The coroutine framework is open-ended, meaning that library authors may develop coroutine libraries exposing various high-level semantics.
Unfortunately, there is no coroutine support library in C++20. C++23 will only provide `std::generator`, and some more types are expected to come only with C++26. This is the reason why we not only need to understand the coroutine framework (both language and library parts) and how to use coroutine tools but also learn how to write such utilities by ourselves.
A software architect, principal engineer, and security champion with over 20 years of experience designing, writing, and maintaining C++ code for fun and living. A trainer with over 10 years of C++ teaching experience, consultant, conference speaker, and evangelist. His main areas of interest and expertise are Modern C++, code performance, low latency, safety, and maintainability. Mateusz worked at Intel for 13 years, and now he is a Principal Software Engineer and the head of the C++ Competency Center at EPAM Systems. He is also a founder of Train IT, which provides dedicated C++ trainings and consulting services to corporations worldwide. Mateusz is a contributor and an active voting member of the ISO C++ Committee (WG21), where, together with the best C++ experts in the world, he shapes the future of the C++ language.
During the one-day workshop, we will talk in detail about coroutine machinery and its suspend and customization points.
We will learn the differences between a coroutine return type, coroutine promise type, coroutine traits, coroutine handle, an awaiter, and an awaitable.
We will implement synchronous and asynchronous tasks in eager and lazy ways and discuss the essential differences. After that, we will «teach» some common and custom C++ types on how to become awaitables, and discuss the potential issues and solutions with different approaches.
We will also develop custom generators and learn how to connect them to the C++ range adaptor objects processing pipeline. Moreover, we will have to learn how to deal with coroutines from regular functions like `main()` as well as why and how to improve our implementations with the coroutine symmetric control transfer. Additionally, on the way to achieving our goals, we will see a lot of C++20 concepts and constraints in action, do some exercises with C++20 ranges and views, and will use new concurrency tools provided with C++20.
To attend the workshop you should be current with the C++ language and have some recent experience with writing simple C++ templates.
A laptop with a web browser and access to the Internet.
Date:
April 26, 2023
Format:
Face to face
Type of course:
Workshop
Ponte en contacto con nosotros para resolver cualquier duda que te pueda surgir respecto a nuestra formación
91 624 40 66 ó
91 624 40 69
¡Llámanos!
¿Necesitas ayuda?
Ponte en contacto con nosotros para resolver cualquier duda que te pueda surgir respecto a nuestra formación
91 624 40 66 ó
91 624 40 69
¡Llámanos!
¿Necesitas ayuda?
Ponte en contacto con nosotros para resolver cualquier duda que te pueda surgir respecto a nuestra formación
91 624 40 66 ó
91 624 40 69
¡Llámanos!
¿Necesitas ayuda?
Ponte en contacto con nosotros para resolver cualquier duda que te pueda surgir respecto a nuestra formación
91 624 40 66 ó
91 624 40 69
¡Llámanos!
¿Necesitas ayuda?