On Wednesday, 7 October 2015 at 15:13:40 UTC, Jonathan M Davis wrote:
the GC heap, which is unnecessarily limiting, particularly since in many cases, it's perfectly okay to let objects that might normally be destroy deterministically to be destroyed at the GC's leisure.

This is a costly (in terms of collection) and unreliable approach to resource managment, so it ought to be removed and replaced with something more robust with less overhead.

speculation on my part. Regardless, if we have a proper ref-counting mechanism for classes (built-in or not doesn't necessarily matter - it just needs to work), then the folks that need deterministic destruction with polymorphism get it.

Proper reference counting generally requires a lot of programmer attention if you want to get what C++ offers.

1. There is a need to add support for weak pointers so you can avoid circular references, this leads to double indirection.

2. There is a need to add support aliasing pointers (pointers to members) that increase the ownership refcount to prevent premature destruction if you retain a pointer to a member.

3. For multi threading you need to have atomics both on the counter and on the pointer (coming in C++17). This is also needed for cache-objects IMO.


Reply via email to