https://issues.dlang.org/show_bug.cgi?id=19872
--- Comment #3 from Atila Neves <[email protected]> --- I added a comment in the discussion but will add it here as well: I missed this discussion originally. The reason one one wants to have: ```d struct Foo { this(ref Foo); this(Foo); } ``` is simple: C++ interop. I made it so that the dpp translations actually enabled D code to call a C++ move constructor by overloading on this. More importantly, D should be able to do what C++ does without needing rvalue references. So the equivalent of this should be possible: ----------------------- struct Foo { Foo(const Foo& foo); // copy ctor Foo(Foo&& foo); // move ctor }; ----------------------- As you can imagine, any and all types that have been updated post C++11 that had copy constructors now have move constructors, so... --
