A maxon::Delegate is used to define a callback function.
A function that provides the callback simply defines a maxon::Delegate argument. The maxon::Delegate class template defines both the return value and argument types of the callback functions.
maxon::ValueReceiver is a template for a generic delegate function.
Within a function the maxon::Delegate argument can be used like an ordinary function pointer.
There are multiple ways to define the actual callback. It is possible to define the lambda directly, use a lambda object, use a maxon::Delegate object or just use a simple function pointer.