<div dir="ltr"><div>Greetings</div><div><br></div><div>I have a question on class destructor method. D documentation for destructors says:</div><div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px">"The garbage col­lec­tor is not guar­an­teed to run the de­struc­tor for all un­ref­er­enced ob­jects. Fur­ther­more, the order in which the garbage col­lec­tor calls de­struc­tors for un­ref­er­ence ob­jects is not spec­i­fied. This means that when the garbage col­lec­tor calls a de­struc­tor for an ob­ject of a class that has mem­bers that are ref­er­ences to garbage col­lected ob­jects, those ref­er­ences may no longer be valid. This means that de­struc­tors can­not ref­er­ence sub ob­jects."<br>


<br><br></blockquote>Now I have a class A and it refers to subobject B. But B may or may not have other objects referring to it. As a result, an object of A is GCed, but subobject B may or may not be getting garbage collected.<div>


<br></div><div>In this scenario, am I allowed to make a reference to subobject B from the destructor of A? Is there a way to find out if B is garbage collected or not?</div><div><br></div><div>Regards</div><div>- Puneet</div>


<div><br></div></div>