On Wednesday, 22 March 2017 at 13:19:32 UTC, Nicholas Wilson
wrote:
On Wednesday, 22 March 2017 at 08:57:34 UTC, ANtlord wrote:
You still have the buffer (the class has to go somewhere!), but
it is implicit (you can't refer to it directly only through the
class reference) and so is the destructor call, as opposed to
the emplace + explicit buffer combo. In the latter case the
class destructor will not be called automatically so you must
do it yourself with `destroy`.
My bad. It appears I need to clarify. I mean the case that I
create object without delaying. I mean simple construction.
scope myObj = MyClass(1);
Answering own question:
In this case object is allocated using stack (according
documention
https://wiki.dlang.org/Memory_Management#Allocating_Class_Instances_On_The_Stack). Function `destroy` used for cleanup object from heap (according documention https://wiki.dlang.org/Memory_Management#Explicit_Class_Instance_Allocation).