On Monday, 17 August 2020 at 09:59:21 UTC, novice3 wrote:
On Monday, 17 August 2020 at 09:45:55 UTC, novice3 wrote:
access violation occur.

reduced code https://run.dlang.io/is/U58t9R

The wrapper parameters don't inherit the storage classes from the wrapped function. Try using std.traits.Parameters instead: https://run.dlang.io/is/wTyJWD.

```
import std.traits : Parameters;

void test(out int x) { x = 42; }

void call (alias fn)(Parameters!fn args) { fn(args); }

void main()
{
    int a;

    a = 111;
    test(a);
    assert(a == 42);

    a = 222;
    call!test(a);
    assert(a == 42);
}
```

Reply via email to