In che modo D gestisce la proprietà degli oggetti? Per esempio ho bisogno di esprimere il seguente:Riferimenti deboli o puntatori
1.) Allocate an object
2.) Give out references/pointers
3.) If the initially allocated object is deleted,
all references/pointers should become inaccessible.
In C++
questo è possibile con std::shared_ptr
+ std::weak_ptr
. Questo è anche possibile in D?
Vedere https://dlang.org/spec/garbage.html per comprendere meglio come controllare la durata degli oggetti. –
@key_ Sei sicuro di aver pubblicato il link corretto? Non riesco a trovare nulla relativo alla gestione del tempo di vita. –
Dovrai implementare un riferimento sigillato quindi mantenere puntatori ai puntatori ogni volta che ne passi uno. Quegli indicatori vorranno essere consapevoli della propria vita per rimuovere se stessi dalla lista ... c'è una buona quantità di spese generali coinvolte. I riferimenti deboli stessi sono semplici: basta creare un puntatore che il GC non esegue la scansione o non aumentare il tuo conto, ma invalidarli quando l'oggetto viene eliminato è più difficile. –