On Monday, 2 December 2013 at 13:42:48 UTC, Dfr wrote:
Hi
I searched through various D documentation sources and did not
found anything except 'std.copy', but it's only for slices.
Is there such feature in standart library ? Or some easy way to
clone for example map of slices of maps or an object with few
structs inside ?
I rolled my own generalized dup:
https://github.com/patefacio/d-help/blob/master/d-help/opmix/dup.d
I have since changed my philosophy to allow sharing more often
than not - but it can be scary still so dup has advantages.
Here is an example usage. I hope one day something similar makes
it into phobos.
import std.stdio;
import opmix.dup;
void main() {
auto x = [
"foo" : [ 1,2,3.3 ],
"moo" : [ 1,2,3.2 ],
];
auto y = x.gdup;
writeln(y, " and ", x);
x["foo"][0]++;
writeln(y, " and ", x);
}
-------------------------------
["moo":[1, 2, 3.2], "foo":[1, 2, 3.3]] and ["foo":[1, 2, 3.3],
"moo":[1, 2, 3.2]]
["moo":[1, 2, 3.2], "foo":[1, 2, 3.3]] and ["foo":[2, 2, 3.3],
"moo":[1, 2, 3.2]]