Close-up image of programmer working at his desk in office

Workshop

Introduction to C++ Coroutines

Registration includes:

  • Attendance to the workshop with coffee break and cocktail lunch
  • Free attendance at the Using std::cpp 2023 event on April 27 and 28s for the first 20 registered

Coroutines

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.

Trainer

MATEUSZ PUSZ

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.

Meeting point for C++ developers and as exchange forum of ideas and experiences around the use of the C++ programming language
Using std::cpp 2023 Event

What will you learn?

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.

Experience required

To attend the workshop you should be current with the C++ language and have some recent experience with writing simple C++ templates.

Environment

A laptop with a web browser and access to the Internet.

Introduction to C++ Coroutines

Date:
April 26, 2023

Format:
Face to face

Type of course:
Workshop

Schedule:
9.00 – 18.30

Price:
320 €

    Déjanos tus datos de contacto para poder facilitarte el programa de Jornadas de Estudio PROMs y PREM

      Déjanos tus datos de contacto para poder facilitarte el programa de estudios del bootcamp IA aplicada a la Imagen Médica

        Déjanos tus datos de contacto para poder facilitarte el Programa de la segunda edición de Actualización de Derecho Laboral

          Déjanos tus datos de contacto para poder facilitarte el Programa de Actualización de Derecho Laboral

            Déjanos tus datos de contacto para poder facilitarte el programa de estudios del Postgrado en Compliance

              Déjanos tus datos de contacto para poder facilitarte el programa de estudios del Curso Inteligencia Artificial & Ciencia de Datos

                Déjanos tus datos de contacto para poder facilitarte el programa de estudios del bootcamp en Analítica de Datos en Cloud

                  Déjanos tus datos de contacto para poder facilitarte el programa de estudios del bootcamp Devops&IaC

                    Déjanos tus datos de contacto para poder facilitarte el programa de estudios del bootcamp Data Science

                    Resolvemos tus dudas

                    Contacto

                    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?

                      Resolvemos tus dudas

                      Contacto

                      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?

                        Resolvemos tus dudas

                        Contacto

                        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?




                          He leído y acepto la Política de Privacidad.

                          Resolvemos tus dudas

                          Contacto

                          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?




                            He leído y acepto la Política de Privacidad.

                            Logo Fundación Universidad Carlos III
                            Resumen de privacidad

                            Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.