An issue with lazy delegates
Stewart Gordon
smjg_1998 at yahoo.com
Mon Jan 9 05:33:52 PST 2012
On 05/01/2012 05:26, Andrej Mitrovic wrote:
<snip>
> The first call doesn't do anything because the delegate is wrapped
> inside of another delegate. I want this template to be versatile
> enough to be used by both lazy expressions and delegate literals, but
> I don't know how.
<snip>
If you have a delegate you want to use as a lazy expression, you can make the lazy
argument a call to it
onFailThrow!Exception({ to!int(x); }());
Of course, Peter's solution enables you to omit the () and just pass the delegate in, but
it does mean that you can't lazily evaluate an expression to a delegate, unless you wrap
it in a delegate literal.
Stewart.
More information about the Digitalmars-d-learn
mailing list