On Sunday, 5 August 2018 at 20:10:49 UTC, Kamil Koczurek wrote:
Is there a way to keep track of objects without owning them?
That is, could I have a smart pointer that behaves somewhat
like this:
WeakPtr!Class wptr = getSomeInstance();
auto obj = wptr.peek; //[1]
if(obj !is null) {
obj.stuff();
}
[1]: If wptr points to something that is still reachable from
somewhere else (and wasn't yet marked for collection by GC),
.peek would return a normal reference of type Class. OTOH, when
no active reference is present it should return null.
Not sure if there's anything in the language or standard library,
but there this:
https://github.com/w0rp/dstruct/blob/master/source/dstruct/weak_reference.d
Which admittedly I have not tested.