Why do you want to use destroy?
The destroy method always calls a dtor of the objects, where I can destroy some object's variables in that order that I need, I think. And this is very good for me, because I have a full control of the object's destroying stage. But if I use the GC, I have no garanties that the dtors will be called, therefore some of my methods will not be called too. In this case it would be better to disable automatically garbage collection in my D app, elsewise once app will be failed (manual destroying idiom).

On another hand if I use only GC (automatically destroying idiom), I have to disable "destroy" method and all dtors of the objects, so that nobody can call "destroy" method. Otherwise app will be failed once again.

Two idioms are existing in one app at the same time have more possiblities for D programmers to make hard errors in their code,
and it is confusing me sometimes.

For example, .Net (C#) have no dtors and "destroy" methods. It is a very good idiom, because no confusions occur.

Reply via email to