digitalmars.D.bugs - [Issue 14466] New: destructive move
- via Digitalmars-d-bugs (27/27) Apr 19 2015 https://issues.dlang.org/show_bug.cgi?id=14466
https://issues.dlang.org/show_bug.cgi?id=14466 Issue ID: 14466 Summary: destructive move Product: D Version: unspecified Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: DMD Assignee: nobody puremagic.com Reporter: code dawg.eu Currently the moved from object has to be reinitialized in order to avoid double freeing in it's destructor. Both operations reinitialization and destroying the moved from object are superfluous, if we had a mean to tell the compiler not to destroy a particular object. https://github.com/D-Programming-Language/phobos/blob/41d1162619039e8e535060b920ff54cc2c44ebbb/std/algorithm/mutation.d#L1015 A destructive move intrinsic would turn an object into an rvalue, disable destruction of the moved from object, and disallow any further usage of the moved from object. The object must be unaliased to make destructive move safe. Destructively moving anything but named variables (such as fields or single array elements) would be prohibited as it adds compiler complexity or runtime overhead. --
Apr 19 2015