Types of lambda args

H. S. Teoh hsteoh at quickfur.ath.cx
Mon Aug 17 04:30:08 UTC 2020


On Mon, Aug 17, 2020 at 12:20:24AM +0000, Cecil Ward via Digitalmars-d-learn wrote:
> In a lambda, how do we know what types the arguments are? In something
> like
>     (x) => x * x

It's implemented as a template, whose argument types are inferred based
on usage context.


> - there I just don’t get it at all. Can you write
>     (uint x) => x * x

Of course you can.


> I’m lost.
[...]

If you're ever unsure of what the inferred type(s) are, you can do
replace the lambda with something like this:

	(x) { pragma(msg, typeof(x)); return x*x }

which will print out the inferred type when the compiler instantiates
the lambda.


T

-- 
Customer support: the art of getting your clients to pay for your own incompetence.


More information about the Digitalmars-d-learn mailing list