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. :)