I have a 2 questions.

I have this code:

[code]
import std.stdio;

struct Test {
public:
        this(int i = 0) {
                writeln("Test CTor.");
        }

        this(this) {
                writeln("Test Copy CTor");
        }

        ~this() {
                writeln("Test DTor");
        }
}

Test[] _arr;

void copy_save(Test t) {
        _arr ~= t;
}

void by_ref_save(ref Test t) {
        _arr ~= t;
}

[/code]

Why get i with

[code]
void main() {
        Test t = 42;

        by_ref_save(t);
}
[/code]

this output:

Test CTor.
Test Copy CTor
Test DTor

?

Why t is copied?

And the same if i have this:

[code]
void main() {
        Test t = 42;

        copy_save(t);
}
[/code]

t is already a clone. Why it is copied again?

Thanks in advance. :)

Reply via email to