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