grauzone wrote: > ... > cloned = clone(yourobject);
Hi again. There are two things on my side: 1. Compiler refuses to clone private attributes. I have tried gdc/gdmd/dmd_v1 in Linux. 2. I have implemented an example. But some part not implemented. ----------------- code ----------------------- T clone(T)(T oldobj) { auto newobj = new T(); if (oldobj is null) { return newobj; } foreach (int i, _; oldobj.tupleof) { auto elem = oldobj.tupleof[i]; static if (is(typeof(elem): char[]*)) {/* if (elem !is null) { char[] tmp; tmp = (*elem).dup; newobj.tupleof[i] = &tmp; } else { newobj.tupleof[i] = null; }*/ NotImplemented_PleaseHelpMe; } else static if (is(typeof(elem) T2 : T2*)) { if (elem !is null) { newobj.tupleof[i] = new T2; *newobj.tupleof[i] = *elem; } else { newobj.tupleof[i] = null; } } else static if (is(typeof(elem) == class)) { if (elem !is null) { newobj.tupleof[i] = clone(elem); } else { newobj.tupleof[i] = null; } } else { newobj.tupleof[i] = elem; } } return newobj; } ----------------- code -----------------------