class destructors must be @disabled?

Steven Schveighoffer schveiguy at gmail.com
Wed May 18 18:35:00 UTC 2022


On 5/18/22 2:02 PM, Ali Çehreli wrote:

> Of course, we still should and do have the power to shape our programs 
> any way we want but I think '@disable ~this();' should be added to 
> classes as a general rule unless the programmer knows it will work 
> otherwise.
> 
> What do you think?

No. Class destructors are for cleaning up non-GC resources. As long as 
you stick to those, you can safely run them.

Structs that get put into classes have to run their destructors 
properly, otherwise, you will have horrible inconsistencies.

For instance, I would not want to disable the destruction of a 
RefCounted struct inside a class.

You can use the GC.inFinalizer to check if you are concerned about using 
the GC in your struct dtors.

-Steve


More information about the Digitalmars-d-learn mailing list