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...

--

Reply via email to