Go 1.5
Ola Fosheim Grøstad via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Mon Sep 21 05:04:09 PDT 2015
On Monday, 21 September 2015 at 11:01:27 UTC, ZombineDev wrote:
> I prefer library-defined smart pointers than language magic,
> because you can easily modify them to fit your needs. What D
> needs is a way to enforce that the user can't get unmanaged
> references to the underlying object managed by the smart
> pointer.
That's ok. I've done that in my own prototype library by having a
"movingptr!T" returned by doing "move(someuniqueptr)" and
"borrowptr!T" returned by "borrow(...)". But checking is limited
to runtime asserts in destructors in debug builds.
It is ok as a runtime hack... but not a competitive solution.
> The killer way to implement this in D is to NOT add complexity
> in the compiler (and to change the whole language to some
> imaginable perfect correct memory management system), but to
> add away for the library writers to write extensible CTFE
> checkers that enforce the smart pointer invariants at
> compile-time.
That is most likely even more work than creating a language
solution?
More information about the Digitalmars-d-announce
mailing list