Generic and fundamental language design issue

Tommi tommitissari at hotmail.com
Sun Nov 4 11:18:36 PST 2012


On Sunday, 4 November 2012 at 18:14:36 UTC, Dmitry Olshansky 
wrote:
>
> extern(C):
> int blah(void* ptr);
>
> void func(T)()
> {
>       auto t = <allocate T from heap or stack?>
>       blah(&t); //now what?
>       ...
> }
>
> If blah doesn't store pointer somewhere inside you are fine 
> with stack. If it does then not even GC heap will help you.


In a perfect world, I think, the compiler would see that blah 
stores ptr and therefore would (implicitly) allocate t on the 
heap. The deallocation of the memory for t would be handled 
either by garbage collector or by some kind of implicit reference 
counting.

I guess with extern C functions none of the above is doable.


More information about the Digitalmars-d mailing list