skinny delegates
Steven Schveighoffer
schveiguy at gmail.com
Thu Aug 2 14:11:03 UTC 2018
On 7/30/18 5:02 PM, Steven Schveighoffer wrote:
> Does it make sense? Would it be feasible for the language to do this?
> The type system already casts the delegate pointer to a void *, so it
> can't make any assumptions, but this is a slight break of the type system.
One possibility to avoid typesystem breakage is to internally treat a
delegate structure like this:
struct Delegate(RT, PARAMS...)
{
RT function(PARAMS params) funcptr;
union
{
void *ptr;
immutable ubyte[(void*).sizeof] context;
}
}
Whereby the compiler is informed that the context could just be a bunch
of bytes.
-Steve
More information about the Digitalmars-d
mailing list