40 Years Of Evolution from Functions to Coroutines
https://cppcon.org/ https://github.com/CppCon/CppCon2020
The evolution of a callable stands for the evolution of C++. Here are the main evolution steps.
It all started with a function. Additionally, C++98 supports objects that behave like functions. These function-like objects are called function objects, and can have state.
C++11 added lambda expressions to the C++ standard. Lambda expressions behave like data and support in-place invocation and capturing of state. Lambdas can be generic in C++14, constant expressions in C++17, or templates in C++20.
C++20 generalizes the idea of something callable. Functions in C++20 are pausable and resumable. These generalized functions are known as coroutines and are the means of choice to program asynchronously.
Each step in this long evolution is way more than just syntactic step. Each step empowers new and more powerful ways to solve challenging programming tasks.
Rainer works as a software architect, team lead, and instructor since 1999. In 2002, he created a further education round at his company. He gives seminars since 2002. Rainer’s first seminars were about proprietary management software, but seminars for Python and C++ followed immediately. In his spare time, Rainer likes to write articles about C++, Python, and Haskell. He also likes to speak at conferences. Rainer publishes weekly on his English Modernes Cpp and the German blog, hosted by Heise Developer. Since 2016 he is an independent instructor giving seminars about modern C++ and Python. Rainer published several books in various languages to modern C++ and concurrency, in particular. Due to his profession, Rainer always searches for the best way to teach modern C++.
Streamed & Edited by Digital Medium Ltd - events.digital-medium.co.uk events@digital-medium.co.uk
