DIP 1014

Stanislav Blinov stanislav.blinov at gmail.com
Wed Oct 3 17:58:17 UTC 2018


On Wednesday, 3 October 2018 at 08:21:38 UTC, Manu wrote:

> Okay, so copy elision is working... but moves otherwise are 
> not? That's still not what we've been peddling all these years. 
> A whole lot of design surface area is dedicated to implicit 
> move semantics... and they don't work? What does it do? 
> postblit unnecessarily?

No. The problem is that the language is under-specified. It is 
built on the *assumption* that no one ever should create 
self-referencing data. But it does not enforce that. Which 
eventually leads to someone trying to make such data and then run 
into a wall, or worse, a heisenbug.

Thing is, there isn't anything wrong with self-referencing data 
per se. It's that the language plumbing should either disallow it 
wholesale (i.e. Rust) or allow a graceful way of handling it. 
Neither is present in D. The latter could be added though, that's 
what the DIP is about.


More information about the Digitalmars-d mailing list