Example: @nogc void stuff() { A.destroy(); //Call destructors that is marked with @nogc due to being in context } Granted there is a risk of not calling all the destructors, but I think that responsibility lies on the programmer when designing the class.