d future or plans for d3

Froglegs lugtug at gmail.com
Tue Dec 20 03:17:31 PST 2011


> The class will still have a vptr. The vtable will contain only 
> the type info.

No way to disable type info(like in most C++ compilers you can 
disable RTTI)? I get that GC might want it, but if I disable GC 
why would I want type info?

I saw that D is planning to make the standard containers into 
classes with final methods, why do this instead of using structs 
if it bloats each instance of the container?


> Some aspects of D will _always_ require a GC or they won't 
> work. Array concatenation would be a prime example. I believe 
> that delegates are another major example. I think that scoped 
> delegates avoid the problem, but any that require closures do 
> not. Other things be done but become risky - e.g. slicing 
> arrays (the GC normally owns the memory such that all dynamic 
> arrays are slices and none of them own their memory, so slicing 
> manually managed memory gets dicey).

The array concatenation requiring GC I get, but why does a 
delegate require it?

This link says D allocates closures on the heap

http://en.wikipedia.org/wiki/Anonymous_function#D

I don't really get why, C++ lambda works well(aside from broken 
lack of template lambda's) and do not require heap usage, even 
binding it to std::function can generally avoid it if it doesn't 
exceed the  SBO size







More information about the Digitalmars-d mailing list