Why don't Function Lambdas Cast to Delegate?

Steven Schveighoffer via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Nov 21 08:27:22 PST 2016


On 11/21/16 11:24 AM, Q. Schroll wrote:
> Why don't lambdas cast to a delegate if they are of type R
> function(Args)? I don't see any reason to that; a lambda should be a
> delegate type by default, and a function only as a special
> guarantee/optimization. It just makes them cumbersome to use with
> toDelegate.
> Probably there is a good reason why R function(Args) does not implicitly
> cast to R delegate(Args); I can imagine something internally (memory
> layout etc.) causes that. I'd just like to know.

The ABI for function calls is different than the ABI for delegate calls. 
I believe this is a necessary limitation due to ABIs on some platforms, 
but I'm not 100% sure. It could just be a legacy issue.

-Steve


More information about the Digitalmars-d-learn mailing list