Multiple destructors
    Alex Biscotti 
    skyswood at gmail.com
       
    Fri May 26 09:07:07 UTC 2023
    
    
  
Hello everyone! While researching the phobos library, I 
discovered that a class can have multiple destructors if the 
destructors are added via mixin injection. Accordingly, the 
question is whether a description of such feature should be added 
to the documentation, since the current description is a bit 
confusing - ["There can be only one destructor per 
class"](https://dlang.org/spec/class.html#destructors)?
Here's a code demo of what I'm talking about:
```d
import std;
mixin template AddNewDtor()
{
     ~this()
     {
         writeln("Mixin dtor");
     }
}
class Foo
{
     ~this()
     {
         writeln("Class dtor");
     }
     mixin AddNewDtor;
}
void main()
{
     {
         auto s = scoped!Foo;
     	// prints `Mixin dtor`
         // prints `Class dtor`
     }
}
```
    
    
More information about the Digitalmars-d-learn
mailing list