GC question
Ola Fosheim Grøstad via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Feb 1 03:10:30 PST 2017
On Wednesday, 1 February 2017 at 09:50:42 UTC, osa1 wrote:
> Thanks for the answer. Could you elaborate on the lacklustre
> part? It's fine if I have to do manual memory management, but I
> don't want any leaks. Ideally I'd have a precise GC + RAII
> style resource management when needed.
Rust, Go, Java, Swift etc have a single memory management scheme
which is used by libraries and mostly enforced by the compiler.
In C++ you tend to go with unique ownership and occasional shared
ownership with the ability to have weak pointers and swap out
objects without updating pointer, and there is an easy transition
form old ad-hoc ownership to shared (the reference counter is in
a separate object). It is not enforced by the compiler, but C++
is moving towards having dedicated tools for checking correctness.
In D the goal is to have safety enforced by the compiler, but it
isn't quite there yet and what is on the map for leak free
resource management seems a simple reference counting mechanism
(simpler than swift?) with refcount embedded in objects (like
intrusive_ptr in Boost except the compiler is intended to be
better at optimizing unnecessary updates of the reference count).
More information about the Digitalmars-d-learn
mailing list