D's Destructors are What Scott Meyers Warned Us About
12345swordy
alexanderheistermann at gmail.com
Wed May 23 17:29:11 UTC 2018
On Wednesday, 23 May 2018 at 15:43:31 UTC, Steven Schveighoffer
wrote:
> On 5/23/18 9:12 AM, Steven Schveighoffer wrote:
>> On 5/22/18 9:59 PM, sarn wrote:
>
>>> (Unfortunately destroy() currently isn't zero-overhead for
>>> plain old data structs because it's based on RTTI, but at
>>> least it works.)
>>
>> Hm.. that should be fixed. I don't see why we can't just do =
>> T.init, we should at least be optimizing to this for small
>> enough structs.
>
> Coincidentally, this JUST changed due to a different reason:
> https://github.com/dlang/druntime/pull/2178
>
>> Please file an enhancement request.
>
> I still think it could be better, so I added a further issue:
> https://issues.dlang.org/show_bug.cgi?id=18899
>
> -Steve
The destroy function for class/structs badly need an overhaul.
Even more so for class, as (IMO) it should be responsibility of
the class designer when it comes to deinitializing (The exception
being that creating the class exclusively for the GC to use of
course), as finalize function which destroy calls is external, in
which information such as attributes is lost
More information about the Digitalmars-d
mailing list