On Friday, 13 August 2021 at 21:34:29 UTC, Steven Schveighoffer wrote:
But for constructors it's not the same. Essentially because constructors have different rules for what they can do with their inputs (the inout `this` parameter can be assigned to for the member's first assignment).

What I was trying to say (poorly) is that inside the inout copy ctor, you can actually call the const `A` copy constructor with an input of the other `inout A`. You just can't call it on the member (or assign it to the member), because that would allow some bad things to happen in some cases.

Thanks; the special treatment of `this` is the part I was missing.

As far as I can tell there is no mention in the language spec of how this works. Probably worth documenting.

Reply via email to