On 03/18/2010 05:43 PM, Paul D. Anderson wrote:
If I'm implementing a struct and want to provide for duplication, is there a standard way to implement this?Here's an example: //------------------------------- struct S { // members of the struct -- three integer values int a; int b; int c; // here's a copy constructor this(S s) { this.a = s.a; this.b = s.b; this.c = s.c; } // here's the dup property S dup() { S s; result.a = this.a; result.b = this.b; result.c = this.c; return s; } // here's opAssign for S void opAssign(S s) { this.a = s.a; this.b = s.b; this.c = s.c; } } // end struct S // and here's a copy function S copy(S s) { S t; t.a = s.a; t.b = s.b; t.c = s.c; return t; } //------------------------------- Which of these three calls is "better" (more efficient, more intuitive, more consistent...)? S s; // the original struct S t = s.dup; // copied via dup S u = S(s); // copied via copy constructor S v = s; // copied via opAssign S w = copy(s); // copied via copy function Or is this a distinction without a difference? Paul
this(this) is the copy constructor, I think. Try using that :)
