~= call copy ctor?
Namespace
rswhite4 at googlemail.com
Thu Jul 19 05:27:45 PDT 2012
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. :)
More information about the Digitalmars-d-learn
mailing list