[Issue 14466] New: destructive move
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Sun Apr 19 16:31:37 PDT 2015
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 at puremagic.com
Reporter: code at 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.
--
More information about the Digitalmars-d-bugs
mailing list