On Friday, 6 May 2022 at 18:04:13 UTC, JG wrote:
```d
//...
struct Adder {
    int a;
    int opCall(int b) { return a+b; }
}
auto adder(int a) {
    auto ret = Adder.init;
    ret.a=a;
    return ret;
}

void main() {
    auto g = adder(5);
    g(5).writeln; // 10
    auto d = toDelegate!(int, int)(g);
    d(5).writeln; // 10
// ...
}
```

The value returned by the delegate structure in the above line is 10. Its parameter is 5, but if you do it to 21, you will get 42. So it doesn't have the ability to delegate Adder.

In summary, the sum function isn't executing. Instead, its value gets double.

SDB@79


Reply via email to