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