On Friday, 27 May 2016 at 09:02:17 UTC, Johan Engelen wrote:
That language guarantee prevents optimization of the initialization (in this case, the optimized result would be no initialization at all). So a breaking language spec change would be needed. Is this pursued by anyone? Perhaps only relax the spec when the struct S overrides opEquals ?

(Once the optimization is allowed, I think it will be a fun project for me to implement it in LDC. But please keep the discussion clean by not discussing how a compiler should make use of this language change, how to implement it, etc. Thanks!)

If opEquals and opCmp are overridden then I don't see why voids in initialization can't work since how you are comparing it would determine equality and not a bitwise compare...


Hmmm had a longer reply involving changes to a new struct type with a few changes...

Reply via email to