On 2/18/15 8:59 AM, "Nordlöw" wrote:
On Wednesday, 18 February 2015 at 13:53:17 UTC, Tobias Pankrath wrote:
All the data members except distMap have reference semantics.
I thought AAs had reference semantics.
Me too, but the indeed have value semantics. See for example:
unittest
{
string[int] x;
auto y = x;
x[0] = "zero";
assert(x != y);
}
This is a well known problem.
An UNINITIALIZED AA has not yet been allocated, and so it's reference is
null.
But once initialized, it DOES have reference semantics:
string[int] x;
x[0] = "zero";
auto y = x;
x[1] = "one";
assert(x == y);
And to anticipate your question, no there is no way (yet) to create an
empty but initialized AA.
-Steve