Am Fri, 11 Aug 2017 17:10:14 +0000
schrieb bitwise <bitwise....@gmail.com>:
> Ok thanks.
> I don't understand why you would ever want to call __dtor
> then...is it possible to have only __dtor without also having
> __xdtor? Like, if I want to call a struct's destructor, do I have
> to check for both, or can I just always check for, and call
I think it was simply that all the special methods needed a
symbol name, so this() was called __ctor and ~this() was
called __dtor. It was never supposed to cover field
destruction, mixed in destructors or inheritance in classes.
User code was not expected to call these directly anyways.
Not very long ago __xdtor and __xpostblit were introduced
that wrap up the entire finalization and copy operation.
__dtor will remain as the 1:1 representation of the ~this()