[Issue 19872] Copy constructor: Order of declaration yields different results with rvalue constructor
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Tue May 14 16:04:55 UTC 2019
https://issues.dlang.org/show_bug.cgi?id=19872
--- Comment #3 from Atila Neves <atila.neves at gmail.com> ---
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...
--
More information about the Digitalmars-d-bugs
mailing list