40 Years Of Evolution from Functions to Coroutines
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 …