Why don't Function Lambdas Cast to Delegate?

Rene Zwanenburg via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Nov 21 08:40:59 PST 2016


On Monday, 21 November 2016 at 16:24:38 UTC, 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.

A delegate has the hidden context pointer as parameter in 
addition to the 'visible' parameters. That causes functions and 
delegates with the same declared params to look different on the 
ABI level.


More information about the Digitalmars-d-learn mailing list