destroy
fn
void destroy(bool initialize = true, T)(ref T obj) if (is(T == struct))Destroys the given object and optionally resets to initial state. It's used to _destroy an object, calling its destructor or finalizer so it no longer references any other objects. It does not initiate a GC cycle or free any GC memory. If initialize is supplied false, the object is considered invalid after destruction, and should not be referenced.
fn
void destroy(bool initialize = true, T)(T obj) if (is(T == class))ditto
fn
void destroy(bool initialize = true, T)(T obj) if (is(T == interface))ditto
fn
void destroy(bool initialize = true, T)(ref T obj) if (__traits(isStaticArray, T))ditto
fn
void destroy(bool initialize = true, T)(ref T obj) if (!is(T == struct) && !is(T == interface) && !is(T == class) && !__traits(isStaticArray, T))ditto