Thread overview
struct Foo may not define both a rvalue constructor and a copy constructor
Oct 16, 2019
drug
Oct 16, 2019
rikki cattermole
Oct 16, 2019
drug
October 16, 2019
struct Foo
{
    this(ref const(Foo) other) {}
    this(const(Foo) other) {}
}

I'm trying to update dmd version and starting from 2.086 my code doesn't compile due to the error above. What is the reason of that? Is it temporarily situation?
October 17, 2019
On 17/10/2019 4:29 AM, drug wrote:
> struct Foo
> {
>      this(ref const(Foo) other) {}
>      this(const(Foo) other) {}
> }
> 
> I'm trying to update dmd version and starting from 2.086 my code doesn't compile due to the error above. What is the reason of that?

Copy constructors were added (sort of like postblit).

https://dlang.org/spec/struct.html#struct-copy-constructor

> Is it temporarily situation?

No.
October 16, 2019
On 10/16/19 6:40 PM, rikki cattermole wrote:
> On 17/10/2019 4:29 AM, drug wrote:
>> struct Foo
>> {
>>      this(ref const(Foo) other) {}
>>      this(const(Foo) other) {}
>> }
>>
>> I'm trying to update dmd version and starting from 2.086 my code doesn't compile due to the error above. What is the reason of that?
> 
> Copy constructors were added (sort of like postblit).
> 
> https://dlang.org/spec/struct.html#struct-copy-constructor
> 
>> Is it temporarily situation?
> 
> No.

My question is why the struct may not define both a rvalue ctor and a copy ctor?