How are extra copy constructor parameters used?
Paul Backus
snarwin at gmail.com
Thu Dec 30 02:23:12 UTC 2021
On Thursday, 30 December 2021 at 02:04:30 UTC, Ali Çehreli wrote:
> On 12/29/21 5:14 PM, Paul Backus wrote:
>
>> Therefore, when you write your own copy constructors, you
>> should always use `inout` if possible, so that
>> compiler-generated copy constructors will be able to copy
>> instances of your struct that appear as members of other
>> structs.
>
> Excellent point. I noticed a typo in the documentation:
>
> struct A
> {
> this(ref return scope inout A rhs) immutable {}
> }
>
> That 'immutable' should be 'inout', right?
I think 'immutable' is correct here, since the usage examples
look like this:
A r1;
const(A) r2;
immutable(A) r3;
// All call the same copy constructor because `inout` acts
like a wildcard
immutable(A) a = r1;
immutable(A) b = r2;
immutable(A) c = r3;
More information about the Digitalmars-d-learn
mailing list