Delegate type inferred as pure
qznc
qznc at go.to
Mon Jan 28 02:44:21 PST 2013
On Monday, 28 January 2013 at 03:16:24 UTC, cal wrote:
> This fails:
>
> void main() {
> int z;
> typeof((int a){return z;}) dg;
> dg = (int a) {return z;};
> }
>
> Error: cannot implicitly convert expression (__lambda2) of type
> int delegate(int a) nothrow @safe to int delegate(int a) pure
> nothrow @safe
>
> But I can't make the delegate pure:
> dg = (int a) pure {return z;};
> because it references z.
>
> Is the 'typeof((int a){return z;})' getting it wrong here?
Do you really need the type? You could just use "auto".
auto dg = (int a) {return z;};
More information about the Digitalmars-d-learn
mailing list