Allocating delegate on heap?
Frits van Bommel
fvbommel at REMwOVExCAPSs.nl
Mon Feb 19 04:59:13 PST 2007
Kirk McDonald wrote:
> Frits van Bommel wrote:
>> Kirk McDonald wrote:
>>> [test.d]
>>> import std.stdio;
>>>
>>> void main() {
>>> auto dg = new void delegate();
>>> }
>>>
>>> $ dmd test.d
>>> test.d(4): Error: new can only create structs, dynamic arrays or
>>> class objects, not void delegate()'s
>>
>> That error message is wrong, by the way. It may not work for
>> delegates, but it works just fine for ints.
>>
>> Does anyone know the particular reason delegates are disallowed here?
>> Since I knew it worked for things like ints, I assumed it worked for
>> all types. I hadn't actually ever tried it though, so I was a bit
>> surprised by this thread...
>
> In my opinion, it /should/ work, but I just go by what the compiler
> tells me. :-)
I agree, that's why I asked if there was any particular reason it didn't
:). It seems like a very silly restriction to me.
> Even if this did work, the point about keeping local references to
> GC-controlled data remains.
I didn't comment on that, did I?
More information about the Digitalmars-d-learn
mailing list