~= 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