On Friday, 17 November 2017 at 05:08:23 UTC, pham wrote:
struct DelegateList(Args...)
{
public:
alias DelegateHandler = void delegate(Args args) nothrow;
DelegateHandler[] items;
void opCall(Args args) nothrow
{
foreach (i; items)
i(args);
}
}
DelegateList!(string, int) list; // Compile OK so far
DelegateList!(string, int*) list2; // Compile OK so far
DelegateList!(string, ref int) list3; // Compile error -> How
to make it work?
Thanks
Pham
The only way I know of is using a template which behaves like a
reference.
Which can be done with nullableRef I suppose. Haven't actually
tried it.
import std.typecons : NullableRef, nullableRef;
DelegateList!(NullableRef!int)(nullableRef(some_int));