On Friday, 18 August 2017 at 20:39:38 UTC, angel wrote:
On Friday, 18 August 2017 at 02:38:15 UTC, WhatMeForget wrote:
[...]

This actually appears correct ...
The 1-st example:
Each call to makeCalculator() increments a static (i.e. shared among all makeCalculator() instances) variable - context.
In addition, makeCalculator() generates a random variable.
Whereas the delegate merely captures these variables, and the displayed results reflect this.

The 2-nd example:
There is a single call to makeCalculator().
After this call, context == 1, randy == _apparently 2_.
Now the delegate, as has already been said, merely captures these values, so consecutive calls do not change the result.

Thanks. So,
auto calculator = makeCalculator();
is the actual call of the delegate? "Delegate is function pointer with context"
But what is
...calculator(0));

Or maybe another approach would be to ask, what type is the compiler replacing auto with.




Reply via email to