On Wednesday, May 23, 2018 17:29:11 12345swordy via Digitalmars-d wrote: > 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
Regardless of what issues destroy may currently have, the entire reason that it exists is to destroy objects - and class objects in particular. So, if it doesn't currently work properly for that purpose, it needs to be fixed. - Jonathan M Davis