I do not understand copy constructors
Tejas
notrealemail at gmail.com
Thu Aug 12 12:22:22 UTC 2021
On Thursday, 12 August 2021 at 12:19:56 UTC, Tejas wrote:
> On Thursday, 12 August 2021 at 11:54:22 UTC, Learner wrote:
>> [...]
>
> Just add ```inout``` inside ```this(ref inout/*notice the
> inout*/ Foo other) inout/*notice the inout*/```
>
> Example code:
> ```d
> struct Foo {
> this(ref inout Foo other) inout {
> foreach(i, v; other.tupleof)
> this.tupleof[i] = v;
> }
>
> @disable this(this);
> int a;
> float b;
> double c;
> }
>
> void main(){
> immutable Foo a;
> const Foo c;
> Foo b = a;//mutable b and immutable a
> const Foo d = c;//const d and const c
> Foo e = c;//mutable e and const c
> immutable Foo f = b;//immutable f and mutable b
> const Foo g = b;//const g and mutable b
> }
>
> ```
Works with ```@safe``` as well
Paul was just trying to make that other answer work, you don't
have to make copy constructors ```@trusted```
More information about the Digitalmars-d-learn
mailing list