We already have `emplace` to create an object but there is not function to destroy the object. Yes, we have `destroy` but it is "to reclaim non-memory resources without compromising memory safety" (as Andrei said). So I'd like to have a `destuct` function destroying its argument just like as if it goes out of scope and, optionally, resetting object memory to it's initial state. The function is implemented here: https://github.com/D-Programming-Language/phobos/pull/929
Also note, as we have no such function currently one can easily consider that `destroy` is such function and use it thinking it works this way. And it is very dangerous, see Issue 9139 for details.
The PR was rejected, closing. https://github.com/dlang/phobos/pull/929#issuecomment-11167033