On 3/9/20 9:23 AM, mark wrote:
I have this struct:
struct Deb {
string name;
...
Unit[string] tags; // set of tags
Deb copy() const {
Deb deb;
...
foreach (key, value; tags) // XXX
deb.tags[key] = value;
return deb;
}
void clear() {
name = "";
...
tags.clear;
}
....
}
I am populating an AA with these structs:
Deb[string] debForName;
I'm using this approach (pseudo-code):
Deb deb;
foreach (datum; data) {
populateDeb(datum, deb);
debForName[deb.name] = deb.copy; // YYY
deb.clear;
}
(1) XXX Is there a nicer way to copy an AA?
aa.dup. However, this isn't going to work in a const member function
(though technically there shouldn't be anything wrong with it).
(2) YYY Is there a nicer way to copy a struct? Use a copy constructor or
implement a dup or idup?
I would name it dup instead of copy for consistency with D. A copy
constructor is pretty heavy for a struct to do a complete duplication of
the AA. You should have to opt-in to that.
-Steve